[svn:mod_parrot] r292 - in mod_parrot/trunk/t: . 00-parrot legacy lib response/TestAPI

[email protected]
Newsgroups perl.cvs.mod_parrot
Message-ID <[email protected]>
Author: jhorwitz
Date: Sat Dec 22 09:09:06 2007
New Revision: 292

Added:
   mod_parrot/trunk/t/00-parrot/
   mod_parrot/trunk/t/00-parrot/00nci.t
      - copied unchanged from r280, /mod_parrot/trunk/t/00nci.t
   mod_parrot/trunk/t/legacy/
   mod_parrot/trunk/t/legacy/02AccessHandler.t
      - copied unchanged from r280, /mod_parrot/trunk/t/02AccessHandler.t
   mod_parrot/trunk/t/legacy/03AuthenHandler.t
      - copied unchanged from r280, /mod_parrot/trunk/t/03AuthenHandler.t
   mod_parrot/trunk/t/legacy/04AuthzHandler.t
      - copied unchanged from r280, /mod_parrot/trunk/t/04AuthzHandler.t
Removed:
   mod_parrot/trunk/t/00nci.t
   mod_parrot/trunk/t/01RequestRec.t
   mod_parrot/trunk/t/02AccessHandler.t
   mod_parrot/trunk/t/03AuthenHandler.t
   mod_parrot/trunk/t/04AuthzHandler.t
Modified:
   mod_parrot/trunk/t/lib/handlers.pir
   mod_parrot/trunk/t/response/TestAPI/request_rec.pir

Log:
migrate request_rec tests to server side and clean up deprecated test handlers
reorganize test directory structure


Modified: mod_parrot/trunk/t/lib/handlers.pir
==============================================================================
--- mod_parrot/trunk/t/lib/handlers.pir	(original)
+++ mod_parrot/trunk/t/lib/handlers.pir	Sat Dec 22 09:09:06 2007
@@ -1,96 +1,15 @@
 # $Id$
 
-.namespace [ 'ModParrot::Test::content_type' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    r.'content_type'('text/plain')
-    r.'puts'("testing\n")
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::puts' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    r.'puts'("Testing 123\n")
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::write' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    $P0 = new 'String'
-    $P0 = "Testing 123\n"
-    r.'write'($P0, 12)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::args' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-    .local string args
-
-    args = r.'args'( )
-    r.'puts'(args)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::hostname' ]
+.namespace [ 'ModParrot::Test::HelloWorld' ]
 
 .sub handler
     .param pmc r
     .local pmc ap_const
-    .local string hostname
-
-    hostname = r.'hostname'( )
-    r.'puts'(hostname)
 
     ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
     $I0 = ap_const['OK']
 
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::log_rerror' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-    .local int level
-
-    # use EMERG to make sure the log gets through
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    level = ap_const['APLOG_EMERG']
-
-    r.'log_rerror'('test', 0, level, 'testing')
-
-    $I0 = ap_const['OK']
+    r.'puts'('Hello World')
 
     .return($I0)
 .end
@@ -172,427 +91,3 @@
 authz_done:
     .return($I0)
 .end
-
-.namespace [ 'ModParrot::Test::HelloWorld' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    r.'puts'('Hello World')
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::auth_type' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    $S0 = r.'auth_type'( )
-    r.'puts'($S0)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::auth_name' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    $S0 = r.'auth_name'( )
-    r.'puts'($S0)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::the_request' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    $S0 = r.'the_request'( )
-    r.'puts'($S0)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::protocol' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    $S0 = r.'protocol'( )
-    r.'puts'($S0)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::status_line' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    $S0 = r.'status_line'( )
-    r.'puts'($S0)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::range' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    $S0 = r.'range'( )
-    r.'puts'($S0)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::handler' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    $S0 = r.'handler'( )
-    r.'puts'($S0)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::content_encoding' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    $S0 = r.'content_encoding'( )
-    r.'puts'($S0)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::vlist_validator' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    $S0 = r.'vlist_validator'( )
-    r.'puts'($S0)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::unparsed_uri' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    $S0 = r.'unparsed_uri'( )
-    r.'puts'($S0)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::uri' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    $S0 = r.'uri'( )
-    r.'puts'($S0)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::path_info' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    $S0 = r.'path_info'( )
-    r.'puts'($S0)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::assbackwards' ]
- 
-.sub handler
-    .param pmc r
-    .local pmc ap_const
- 
-    $I0 = r.'assbackwards'( )
-    r.'putc'($I0)
- 
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
- 
-    .return($I0)
-.end
- 
-.namespace [ 'ModParrot::Test::proxyreq' ]
- 
-.sub handler
-    .param pmc r
-    .local pmc ap_const
- 
-    $I0 = r.'proxyreq'( )
-    r.'putc'($I0)
- 
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
- 
-    .return($I0)
-.end
- 
-.namespace [ 'ModParrot::Test::header_only' ]
- 
-.sub handler
-    .param pmc r
-    .local pmc ap_const
- 
-    $I0 = r.'header_only'( )
-    r.'putc'($I0)
- 
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
- 
-    .return($I0)
-.end
- 
-.namespace [ 'ModParrot::Test::proto_num' ]
- 
-.sub handler
-    .param pmc r
-    .local pmc ap_const
- 
-    $I0 = r.'proto_num'( )
-    r.'putc'($I0)
- 
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
- 
-    .return($I0)
-.end
- 
-.namespace [ 'ModParrot::Test::method_number' ]
- 
-.sub handler
-    .param pmc r
-    .local pmc ap_const
- 
-    $I0 = r.'method_number'( )
-    r.'putc'($I0)
- 
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
- 
-    .return($I0)
-.end
- 
-.namespace [ 'ModParrot::Test::chunked' ]
- 
-.sub handler
-    .param pmc r
-    .local pmc ap_const
- 
-    $I0 = r.'chunked'( )
-    r.'putc'($I0)
- 
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
- 
-    .return($I0)
-.end
- 
-.namespace [ 'ModParrot::Test::read_body' ]
- 
-.sub handler
-    .param pmc r
-    .local pmc ap_const
- 
-    $I0 = r.'read_body'( )
-    r.'putc'($I0)
- 
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
- 
-    .return($I0)
-.end
- 
-.namespace [ 'ModParrot::Test::read_chunked' ]
- 
-.sub handler
-    .param pmc r
-    .local pmc ap_const
- 
-    $I0 = r.'read_chunked'( )
-    r.'putc'($I0)
- 
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
- 
-    .return($I0)
-.end
- 
-.namespace [ 'ModParrot::Test::no_cache' ]
- 
-.sub handler
-    .param pmc r
-    .local pmc ap_const
- 
-    $I0 = r.'no_cache'( )
-    r.'putc'($I0)
- 
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
- 
-    .return($I0)
-.end
- 
-.namespace [ 'ModParrot::Test::no_local_copy' ]
- 
-.sub handler
-    .param pmc r
-    .local pmc ap_const
- 
-    $I0 = r.'no_local_copy'( )
-    r.'putc'($I0)
- 
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
- 
-    .return($I0)
-.end
- 
-.namespace [ 'ModParrot::Test::used_path_info' ]
- 
-.sub handler
-    .param pmc r
-    .local pmc ap_const
- 
-    $I0 = r.'used_path_info'( )
-    r.'putc'($I0)
- 
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
- 
-    .return($I0)
-.end
- 
-.namespace [ 'ModParrot::Test::eos_sent' ]
- 
-.sub handler
-    .param pmc r
-    .local pmc ap_const
- 
-    $I0 = r.'eos_sent'( )
-    r.'putc'($I0)
- 
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
- 
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::notes' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    $P0 = r.'notes'( )
-    $P0.'set'('foo', 'bar')
-    $S0 = $P0.'get'('foo')
-    r.'puts'($S0)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::pmc_notes' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    $P0 = new String
-    $P0 = 'testing 123'
-    r.'pmc_notes'('test', $P0)
-    $P1 = r.'pmc_notes'('test')
-    $S0 = $P1
-    r.'puts'($S0)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end
-
-.namespace [ 'ModParrot::Test::status' ]
-
-.sub handler
-    .param pmc r
-    .local pmc ap_const
-
-    r.'status'(201)
-
-    ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
-    $I0 = ap_const['OK']
-
-    .return($I0)
-.end

Modified: mod_parrot/trunk/t/response/TestAPI/request_rec.pir
==============================================================================
--- mod_parrot/trunk/t/response/TestAPI/request_rec.pir	(original)
+++ mod_parrot/trunk/t/response/TestAPI/request_rec.pir	Sat Dec 22 09:09:06 2007
@@ -9,113 +9,157 @@
 
     ap_const = get_root_global [ 'Apache'; 'Constants' ], 'ap_constants'
 
-    r.'puts'("1..16\n")
+    r.'puts'("1..27\n")
 
+  # XXX this should be fatal on failure
   START_1:
     $S0 = typeof r
     if $S0 == "Apache;RequestRec" goto OK_1
+  NOT_OK_1:
     r.'puts'("not ")
   OK_1:
     r.'puts'("ok 1 - object\n")
 
+  # XXX this should be fatal on failure
   START_2:
   OK_2:
     r.'puts'("ok 2 - puts()\n")
 
   START_3:
+    push_eh NOT_OK_3
     $I0 = r.'write'("testing 123\n", 12)
+    pop_eh
     if $I0 == 12 goto OK_3
+  NOT_OK_3:
     r.'puts'("not ")
   OK_3:
     r.'puts'("ok 3 - write()\n")
 
   START_4:
+    push_eh NOT_OK_4
     $S0 = r.'content_type'()
+    pop_eh
     # text/html is mod_parrot's default content type
     if $S0 == "text/html" goto OK_4
+  NOT_OK_4:
     r.'puts'("not ")
   OK_4:
     r.'puts'("ok 4 - content_type get\n")
 
   START_5:
+    push_eh NOT_OK_5
     r.'content_type'("text/html")
+    pop_eh
+    goto OK_5
+  NOT_OK_5:
+    r.'puts'("not ")
   OK_5:
     r.'puts'("ok 5 - content_type set\n")
 
   START_6:
+    push_eh NOT_OK_6
     r.'args'("testing")
     $S0 = r.'args'()
+    pop_eh
     if $S0 == "testing" goto OK_6
+  NOT_OK_6:
     r.'puts'("not ")
   OK_6:
     r.'puts'("ok 6 - args()\n")
     
   START_7:
+    push_eh NOT_OK_7
     r.'path_info'("/my/test/path")
     $S0 = r.'path_info'()
+    pop_eh
     if $S0 == "/my/test/path" goto OK_7
+  NOT_OK_7:
     r.'puts'("not ")
   OK_7:
     r.'puts'("ok 7 - pathinfo()\n")
     
   START_8:
+    push_eh NOT_OK_8
     r.'hostname'("modparrot.example.com")
     $S0 = r.'hostname'()
+    pop_eh
     if $S0 == "modparrot.example.com" goto OK_8
+  NOT_OK_8:
     r.'puts'("not ")
   OK_8:
     r.'puts'("ok 8 - hostname()\n")
     
   START_9:
     $I0 = ap_const['APLOG_EMERG']
+    push_eh NOT_OK_9
     r.'log_rerror'("test", 0, $I0, "mod_parrot test log")
+    pop_eh
+    goto OK_9
+  NOT_OK_9:
+    r.'puts'("not ")
   OK_9:
     r.'puts'("ok 9 - log_rerror()\n")
 
   START_10:
+    push_eh NOT_OK_10
     # save original status -- we need it for the test client!
     $I0 = r.'status'()
     r.'status'(123)
     $I1 = r.'status'()
+    pop_eh
     if $I1 == 123 goto OK_10
+    pop_eh
+  NOT_OK_10:
     r.'puts'("not ")
   OK_10:
     r.'puts'("ok 10 - status()\n")
     r.'status'($I0)
 
   START_11:
+    push_eh NOT_OK_11
     $P0 = r.'notes'()
     $P0.'set'("modparrot_test", "test note")
     $P0 = r.'notes'()
     $S0 = $P0.'get'("modparrot_test")
+    pop_eh
     if $S0 == "test note" goto OK_11
+  NOT_OK_11:
     r.'puts'("not ")
   OK_11:
     r.'puts'("ok 11 - notes()\n")
 
   START_12:
+    push_eh NOT_OK_12
     r.'uri'("/my/test/uri")
     $S0 = r.'uri'()
+    pop_eh
     if $S0 == "/my/test/uri" goto OK_12
+  NOT_OK_12:
     r.'puts'("not ")
   OK_12:
     r.'puts'("ok 12 - uri()\n")
 
   START_13:
+    push_eh NOT_OK_13
     # save original handler
     $S0 = r.'handler'()
     r.'handler'("test-handler")
     $S1 = r.'handler'()
+    pop_eh
     if $S1 == "test-handler" goto OK_13
+  NOT_OK_13:
     r.'puts'("not ")
   OK_13:
     r.'puts'("ok 13 - handler()\n")
     r.'handler'($S0)
 
   START_14:
+    push_eh NOT_OK_14
     r.'user'("testuser")
     $S0 = r.'user'()
+    pop_eh
     if $S0 == "testuser" goto OK_14
+  NOT_OK_14:
     r.'puts'("not ")
   OK_14:
     r.'puts'("ok 14 - user()\n")
@@ -123,9 +167,12 @@
   START_15:
     $P0 = new 'String'
     $P0 = "test PMC note"
+    push_eh NOT_OK_15
     r.'pmc_notes'('modparrot_test_pmcnote_string', 'test PMC note')
     $P1 = r.'pmc_notes'('modparrot_test_pmcnote_string')
+    pop_eh
     if $P1 == 'test PMC note' goto OK_15
+  NOT_OK_15:
     r.'puts'("not ")
   OK_15:
     r.'puts'("ok 15 - pmc_notes() string value\n")
@@ -135,14 +182,150 @@
     $P1 = new 'String'
     $P1 = "test PMC note in a hash"
     $P0['test'] = $P1
+    push_eh NOT_OK_16
     r.'pmc_notes'('modparrot_test_pmcnote_hash', $P0)
     $P1 = r.'pmc_notes'('modparrot_test_pmcnote_hash')
+    pop_eh
     $P2 = $P1['test']
     if $P2 == 'test PMC note in a hash' goto OK_16
+  NOT_OK_16:
     r.'puts'("not ")
   OK_16:
     r.'puts'("ok 16 - pmc_notes() hash value\n")
 
+  START_17:
+    push_eh NOT_OK_17
+    r.'filename'("/my/test/file")
+    $S0 = r.'filename'()
+    pop_eh
+    if $S0 == "/my/test/file" goto OK_17
+  NOT_OK_17:
+    r.'puts'("not ")
+  OK_17:
+    r.'puts'("ok 17 - filename()\n")
+
+  START_18:
+    push_eh NOT_OK_18
+    r.'canonical_filename'("/my/test/file")
+    $S0 = r.'canonical_filename'()
+    pop_eh
+    if $S0 == "/my/test/file" goto OK_18
+  NOT_OK_18:
+    r.'puts'("not ")
+  OK_18:
+    r.'puts'("ok 18 - canonical_filename()\n")
+
+  START_19:
+    push_eh NOT_OK_19
+    $S0 = r.'auth_type'()
+    pop_eh
+    if $S0 == "" goto OK_19
+  NOT_OK_19:
+    r.'puts'("not ")
+  OK_19:
+    r.'puts'("ok 19 - auth_type()\n")
+
+  START_20:
+    push_eh NOT_OK_20
+    $S0 = r.'auth_name'()
+    pop_eh
+    if $S0 == "" goto OK_20
+  NOT_OK_20:
+    r.'puts'("not ")
+  OK_20:
+    r.'puts'("ok 20 - auth_name()\n")
+
+  START_21:
+    push_eh NOT_OK_21
+    $S0 = r.'the_request'()
+    pop_eh
+    goto OK_21
+  NOT_OK_21:
+    r.'puts'("not ")
+  OK_21:
+    r.'puts'("ok 21 - the_request()\n")
+
+  START_22:
+    push_eh NOT_OK_22
+    $S0 = r.'protocol'()
+    pop_eh
+    goto OK_22
+  NOT_OK_22:
+    r.'puts'("not ")
+  OK_22:
+    r.'puts'("ok 22 - protocol()\n")
+
+  START_23:
+    push_eh NOT_OK_23
+    r.'status_line'("200 mod_parrot test")
+    $S0 = r.'status_line'()
+    pop_eh
+    if $S0 == "200 mod_parrot test" goto OK_23
+  NOT_OK_23:
+    r.'puts'("not ")
+  OK_23:
+    r.'puts'("ok 23 - status_line()\n")
+
+  START_24:
+    push_eh NOT_OK_24
+    r.'content_encoding'("application/x-httpd-test")
+    $S0 = r.'content_encoding'()
+    pop_eh
+    if $S0 == "application/x-httpd-test" goto OK_24
+  NOT_OK_24:
+    r.'puts'("not ")
+  OK_24:
+    r.'puts'("ok 24 - status_line()\n")
+
+  START_25:
+    push_eh NOT_OK_25
+    r.'range'("bytes 123-455/456")
+    $S0 = r.'range'()
+    pop_eh
+    if $S0 == "bytes 123-455/456" goto OK_25
+  NOT_OK_25:
+    r.'puts'("not ")
+  OK_25:
+    r.'puts'("ok 25 - range()\n")
+
+  START_26:
+    push_eh NOT_OK_26
+    r.'vlist_validator'("foo")
+    $S0 = r.'vlist_validator'()
+    pop_eh
+    if $S0 == "foo" goto OK_26
+  NOT_OK_26:
+    r.'puts'("not ")
+  OK_26:
+    r.'puts'("ok 26 - vlist_validator()\n")
+
+  START_27:
+    push_eh NOT_OK_27
+    r.'unparsed_uri'("/my/unparsed/test/uri")
+    $S0 = r.'unparsed_uri'()
+    pop_eh
+    if $S0 == "/my/unparsed/test/uri" goto OK_27
+  NOT_OK_27:
+    r.'puts'("not ")
+  OK_27:
+    r.'puts'("ok 27 - unparsed_uri()\n")
+
+    # STILL TODO (not tested in original client-side tests)
+    # assbackwards
+    # proxyreq
+    # header_only
+    # proto_num
+    # method_number
+    # chunked
+    # read_body
+    # read_chunked
+    # no_cache
+    # no_local_copy
+    # used_path_info
+    # eos_sent
+    # others, i'm sure
+
     $I0 = ap_const['OK']
     .return($I0)
+
 .end
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.