You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by Stas Bekman <st...@stason.org> on 2002/01/28 18:57:12 UTC

[patch] APR::Date funcs

- building APR::Date with apr_date_parse_* functions
- hiding the internal apr_date_checkmask
- adding tests for APR::Date

- moving ap_ht_time to Apache::Time (preparing for the wrapper)

Index: src/modules/perl/modperl_apache_includes.h
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_apache_includes.h,v
retrieving revision 1.8
diff -u -r1.8 modperl_apache_includes.h
--- src/modules/perl/modperl_apache_includes.h	21 Oct 2001 02:25:15 -0000	1.8
+++ src/modules/perl/modperl_apache_includes.h	28 Jan 2002 17:50:54 -0000
@@ -46,6 +46,7 @@
  #include "apr_lock.h"
  #include "apr_strings.h"
  #include "apr_uri.h"
+#include "apr_date.h"
  #include "apr_buckets.h"
  #include "util_filter.h"

Index: xs/maps/apache_functions.map
===================================================================
RCS file: /home/cvs/modperl-2.0/xs/maps/apache_functions.map,v
retrieving revision 1.43
diff -u -r1.43 apache_functions.map
--- xs/maps/apache_functions.map	25 Jan 2002 04:04:22 -0000	1.43
+++ xs/maps/apache_functions.map	28 Jan 2002 17:50:55 -0000
@@ -255,8 +255,10 @@
  -ap_set_string_slot_lower
  -ap_set_deprecated

-MODULE=Apache::Util
+MODULE=Apache::Time
   ap_ht_time
+
+MODULE=Apache::Util
  !ap_rfc1413
   ap_escape_html
   #escape_uri
Index: xs/maps/apr_functions.map
===================================================================
RCS file: /home/cvs/modperl-2.0/xs/maps/apr_functions.map,v
retrieving revision 1.28
diff -u -r1.28 apr_functions.map
--- xs/maps/apr_functions.map	21 Jan 2002 05:41:54 -0000	1.28
+++ xs/maps/apr_functions.map	28 Jan 2002 17:50:55 -0000
@@ -24,8 +24,8 @@
   apr_explode_localtime
   apr_explode_time

-!MODULE=APR::Date
- apr_date_checkmask
+MODULE=APR::Date
+-apr_date_checkmask
   apr_date_parse_http
   apr_date_parse_rfc

--- /dev/null	Thu Jan  1 07:30:00 1970
+++ t/response/TestAPR/date.pm	Tue Jan 29 01:46:46 2002
@@ -0,0 +1,71 @@
+package TestAPR::date;
+
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestUtil;
+use Apache::Const -compile => 'OK';
+
+use APR::Date ();
+
+my @http_dates = (
+    'Sun, 06 Nov 1994 08:49:37 GMT',  # RFC 822, updated by RFC 1123
+    'Sunday, 06-Nov-94 08:49:37 GMT', # RFC 850, obsoleted by RFC 1036
+    'Sun Nov  6 08:49:37 1994',       # ANSI C's asctime() format
+);
+
+my @rfc_dates = (
+    'Sun, 06 Nov 1994 08:49:37 GMT' , # RFC 822, updated by RFC 1123
+    'Sunday, 06-Nov-94 08:49:37 GMT', # RFC 850, obsoleted by RFC 1036
+    'Sun Nov  6 08:49:37 1994',       # ANSI C's asctime() format
+    'Sun, 6 Nov 1994 08:49:37 GMT',   # RFC 822, updated by RFC 1123
+    'Sun, 06 Nov 94 08:49:37 GMT',    # RFC 822
+    'Sun, 6 Nov 94 08:49:37 GMT',     # RFC 822
+    'Sun, 06 Nov 94 8:49:37 GMT',     # Unknown [Elm 70.85]
+    'Sun, 6 Nov 94 8:49:37 GMT',      # Unknown [Elm 70.85]
+    'Sun,  6 Nov 1994 08:49:37 GMT',  # Unknown [Postfix]
+);
+
+my @bogus_dates = (
+    'Sun, 06 Nov 94 08:49 GMT',       # Unknown [drtr@ast.cam.ac.uk]
+    'Sun, 6 Nov 94 08:49 GMT',        # Unknown [drtr@ast.cam.ac.uk]
+);
+
+my $date_msec = 784111777;
+my $bogus_date_msec = 784111740;
+
+sub handler {
+    my $r = shift;
+
+    plan $r, tests => @http_dates + @rfc_dates + @bogus_dates;
+
+    # parse_http
+    for my $date_str (@http_dates) {
+        ok t_cmp($date_msec,
+                 APR::Date::parse_http($date_str),
+                "parse_http: $date_str");
+        #t_debug "testing : parse_http: $date_str";
+    }
+
+    # parse_rfc
+    for my $date_str (@rfc_dates) {
+        ok t_cmp($date_msec,
+                 APR::Date::parse_rfc($date_str),
+                 "parse_rfc: $date_str");
+        #t_debug "testing : parse_rfc: $date_str";
+    }
+
+    # parse_rfc (bogus formats)
+    for my $date_str (@bogus_dates) {
+        ok t_cmp($bogus_date_msec,
+                 APR::Date::parse_rfc($date_str),
+                 "parse_rfc: $date_str");
+        #t_debug "testing : parse_rfc: $date_str";
+    }
+
+    Apache::OK;
+}
+
+1;
+__END__




_____________________________________________________________________
Stas Bekman             JAm_pH      --   Just Another mod_perl Hacker
http://stason.org/      mod_perl Guide   http://perl.apache.org/guide
mailto:stas@stason.org  http://ticketmaster.com http://apacheweek.com
http://singlesheaven.com http://perl.apache.org http://perlmonth.com/


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: [patch] APR::Date funcs

Posted by Doug MacEachern <do...@covalent.net>.
On Tue, 29 Jan 2002, Stas Bekman wrote:

> - building APR::Date with apr_date_parse_* functions
> - hiding the internal apr_date_checkmask
> - adding tests for APR::Date

looks good, +1
 
> - moving ap_ht_time to Apache::Time (preparing for the wrapper)

that's fine, but would rather see it as part of the wrapper commit, as it
isn't really related to these APR::Date changes.



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org