[svn:mod_parrot] r292 - in mod_parrot/trunk/t: . 00-parrot legacy lib response/TestAPI
[email protected] Sat, 22 Dec 2007 09:09:07 -0800 (PST)
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