[svn:parrot] r48575 - trunk/t/pmc
NotFound at svn.parrot.org
NotFound at svn.parrot.org
Fri Aug 20 07:15:32 UTC 2010
Author: NotFound
Date: Fri Aug 20 07:15:32 2010
New Revision: 48575
URL: https://trac.parrot.org/parrot/changeset/48575
Log:
refactor and improve Packfile get_integer_keyed_str test
Modified:
trunk/t/pmc/packfile.t
Modified: trunk/t/pmc/packfile.t
==============================================================================
--- trunk/t/pmc/packfile.t Fri Aug 20 06:25:09 2010 (r48574)
+++ trunk/t/pmc/packfile.t Fri Aug 20 07:15:32 2010 (r48575)
@@ -25,12 +25,12 @@
.sub main :main
.include 'test_more.pir'
- plan(37)
+ plan(42)
'test_new'()
'test_set_string_native'()
'test_get_string'()
'test_set_string'()
- 'test_get_integer'()
+ 'test_get_integer_keyed_str'()
'test_set_integer'()
'test_get_directory'()
'test_load'()
@@ -124,20 +124,61 @@
.return ()
.end
+# Compose the message for the given key
+.sub 'keyed_str_msg'
+ .param string key
+ .local string msg
+ msg = 'get_integer_keyed_str('
+ msg = concat msg, key
+ msg = concat msg, ')'
+ .return(msg)
+.end
+
+# Check the given key in the Packfile pf
+.sub 'do_get_integer_keyed_str'
+ .param pmc pf
+ .param string key
+ .local string msg
+ .local int result
+ msg = 'keyed_str_msg'(key)
+ result = 0
+ push_eh fail
+
+ $I0 = pf[key]
+ result = 1
+ goto end
+ fail:
+ .get_results($P0)
+ pop_eh
+ end:
+ ok(result, msg)
+.end
+
+.sub 'test_get_integer_keyed_str'
+ .local pmc pf, keys
+ .local int nkeys, i
+
+ keys = new ['ResizableStringArray']
+ push keys, 'wordsize'
+ push keys, 'byteorder'
+ push keys, 'fptype'
+ push keys, 'version_major'
+ push keys, 'version_minor'
+ push keys, 'version_patch'
+ push keys, 'bytecode_major'
+ push keys, 'bytecode_minor'
+ nkeys = elements keys
-.sub 'test_get_integer'
- .local pmc pf
push_eh load_error
pf = _pbc()
pop_eh
- $I0 = pf["version_major"]
- ok(1, "get_integer_keyed_str(version_major)")
- $I1 = pf["version_minor"]
- ok(1, "get_integer_keyed_str(version_minor)")
-
- $I2 = pf["version_patch"]
- ok(1, "get_integer_keyed_str(version_patch)")
+ i = 0
+ nextkey:
+ $S0 = keys[i]
+ do_get_integer_keyed_str(pf, $S0)
+ inc i
+ if i < nkeys goto nextkey
# Requesting unknown key should throw exception
push_eh unknown_key
@@ -149,12 +190,20 @@
pop_eh
ok(1, "get_integer_keyed_str handle unknown key properly")
.return ()
+
+ # On load error report a failure for each test
load_error:
.get_results($P0)
pop_eh
- report_load_error($P0, "get_integer_keyed_str(version_major)")
- report_load_error($P0, "get_integer_keyed_str(version_minor)")
- report_load_error($P0, "get_integer_keyed_str(version_patch)")
+
+ i = 0
+ nexterr:
+ $S0 = keys[i]
+ $S0 = keyed_str_msg($S0)
+ report_load_error($P0, $S0)
+ inc i
+ if i < nkeys goto nexterr
+
report_load_error($P0, "get_integer_keyed_str unknown key")
.return()
.end
More information about the parrot-commits
mailing list