Author: bernhard
Date: Wed Nov  2 11:07:06 2005
New Revision: 9716

Modified:
   trunk/t/pmc/nci.t
Log:
Add a PIR test for 'nci_it'.

Test PASM with pasm_output_is(), not output_is().


Modified: trunk/t/pmc/nci.t
==============================================================================
--- trunk/t/pmc/nci.t   (original)
+++ trunk/t/pmc/nci.t   Wed Nov  2 11:07:06 2005
@@ -4,7 +4,7 @@
 
 =head1 NAME
 
-t/pmc/nci.t - Native Call Interface
+t/pmc/nci.t - test the Native Call Interface
 
 =head1 SYNOPSIS
 
@@ -23,8 +23,8 @@ Most tests are skipped when the F<libnci
 
 =cut
 
-use Parrot::Test    tests => 59;
-use Parrot::Config;
+use Parrot::Test    tests => 60;
+use Parrot::Config qw(%PConfig);
 
 SKIP: {
 unless ( -e "runtime/parrot/dynext/libnci_test$PConfig{load_ext}" ) {
@@ -357,7 +357,7 @@ libnci_test was successfully loaded
 OUTPUT
 }
 
-output_is(<<'CODE', <<'OUTPUT', "nci_dd - PASM");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_dd - PASM");
   loadlib P1, "libnci_test"
   print "loaded\n"
   dlfunc P0, P1, "nci_dd", "dd"
@@ -429,7 +429,7 @@ libnci_test$PConfig{load_ext} was succes
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_fff");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_fff");
   loadlib P1, "libnci_test"
   print "loaded\n"
   dlfunc P0, P1, "nci_fff", "fff"
@@ -453,7 +453,7 @@ ok 1
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_isc");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_isc");
   loadlib P1, "libnci_test"
   print "loaded\n"
   dlfunc P0, P1, "nci_isc", "isc"
@@ -477,7 +477,7 @@ ok 1
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_ssc");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_ssc");
   loadlib P1, "libnci_test"
   print "loaded\n"
   dlfunc P0, P1, "nci_ssc", "ssc"
@@ -501,7 +501,7 @@ ok 1
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_csc");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_csc");
   loadlib P1, "libnci_test"
   print "loaded\n"
   dlfunc P0, P1, "nci_csc", "csc"
@@ -525,7 +525,7 @@ ok 1
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_it");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_it");
   loadlib P1, "libnci_test"
   printerr "loaded\n"
   dlfunc P0, P1, "nci_it", "it"
@@ -551,7 +551,38 @@ ok 2
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_tt");
+pir_output_is(<<'CODE', <<'OUTPUT', "nci_it");
+
+.include "datatypes.pasm"
+
+.sub test :main
+  loadlib P1, "libnci_test"
+  printerr "loaded\n"
+  .local pmc nci_it
+  nci_it = dlfunc P1, "nci_it", "it"
+  printerr "dlfunced\n"
+  ( I5 ) = nci_it( "ko" )
+  ne I5, 2, nok_1
+  printerr "ok "
+  printerr I5
+  printerr "\n"
+  end
+nok_1: printerr "nok 1\n"
+  printerr I5
+  printerr "\n"
+  end
+nok_2: printerr "nok 2\n"
+.end
+
+CODE
+loaded
+dlfunced
+ok
+ok 2
+OUTPUT
+
+
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_tt");
   loadlib P1, "libnci_test"
   print "loaded\n"
   dlfunc P0, P1, "nci_tt", "tt"
@@ -575,7 +606,7 @@ ok worked
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_dd - stress test");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_dd - stress test");
   loadlib P1, "libnci_test"
   print "loaded\n"
   set I10, 10000
@@ -604,7 +635,7 @@ ok 1
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_dd - clone");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_dd - clone");
   loadlib P1, "libnci_test"
   print "loaded\n"
   dlfunc P0, P1, "nci_dd", "dd"
@@ -633,7 +664,7 @@ ok 2
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_iiii");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_iiii");
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_iiii", "iiii"
   set I5, 10
@@ -651,7 +682,7 @@ CODE
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_i4i");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_i4i");
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_i4i", "i4i"
   new P5, .Integer
@@ -668,7 +699,7 @@ CODE
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_ii3");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_ii3");
 .include "datatypes.pasm"
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_ii3", "ii3"
@@ -691,7 +722,7 @@ CODE
 4711
 OUTPUT
 
-output_is(<<'CODE', <<'OUTPUT', "nci_tb");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_tb");
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_tb", "tb"
   set S5, "ko\n"
@@ -704,7 +735,7 @@ CODE
 ok worked
 OUTPUT
 
-output_is(<<'CODE', <<'OUTPUT', "nci_tB");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_tB");
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_tB", "tB"
   set S5, "ko\n"
@@ -718,7 +749,7 @@ ok done
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_pi - struct with ints");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_pi - struct with ints");
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_pi", "pi"
   # this test function returns a struct { int[2]; char }
@@ -752,7 +783,7 @@ CODE
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_pi - struct with floats");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_pi - struct with floats");
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_pi", "pi"
   # this test function returns a struct { float[2]; double }
@@ -820,7 +851,7 @@ CODE
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_pi - char*");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_pi - char*");
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_pi", "pi"
   # this test function returns a struct { char*; int }
@@ -849,7 +880,7 @@ hello
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_pi - nested struct *");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_pi - nested struct *");
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_pi", "pi"
   # this test function returns a struct { char; x->{int, double} }
@@ -905,7 +936,7 @@ CODE
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_pi - nested struct * w named access");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_pi - nested struct * w named 
access");
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_pi", "pi"
   set_args "(0)", 8
@@ -976,7 +1007,7 @@ CODE
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_pi - func_ptr* with signature");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_pi - func_ptr* with signature");
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_pi", "pi"
   # this test function returns a struct { int (*f)(char *) }
@@ -1008,7 +1039,7 @@ hello call_back
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_pi - nested struct aligned");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_pi - nested struct aligned");
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_pi", "pi"
   # this test function returns a struct { int; {int; int} int }
@@ -1064,7 +1095,7 @@ CODE
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_pi - nested struct unaligned");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_pi - nested struct unaligned");
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_pi", "pi"
   # this test function returns a struct { char; {char; int} char }
@@ -1120,7 +1151,7 @@ CODE
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_pi - nested, unaligned, named");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_pi - nested, unaligned, named");
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_pi", "pi"
   # this test function returns a struct { char; {char; int} char }
@@ -1207,7 +1238,6 @@ pir_output_is( << 'CODE', << "OUTPUT", "
   print I0
 NOT_LOADED:
   print "\n"
-  end
 .end
 CODE
 libnci_test was successfully loaded
@@ -1215,7 +1245,7 @@ libnci_test was successfully loaded
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_ip");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_ip");
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_ip", "ip"
   # this test function wants a struct
@@ -1263,7 +1293,7 @@ hello from Parrot
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_vP");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_vP");
   loadlib P1, "libnci_test"
   dlfunc P0, P1, "nci_vP", "vP"
   new P5, .String
@@ -1282,7 +1312,7 @@ OUTPUT
 
 # Tests with callback functions
 
-output_is(<<'CODE', <<'OUTPUT', "nci_cb_C1 - PASM");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_cb_C1 - PASM");
 
   # we need a flag if the call_back is already done
   new P10, .Integer
@@ -1417,7 +1447,7 @@ the callback has run
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_cb_C2 - PASM");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_cb_C2 - PASM");
   # we need a flag if the call_back is already done
   new P10, .Integer
   store_global "cb_done", P10
@@ -1564,7 +1594,7 @@ external data: 99
 the callback has run
 OUTPUT
 
-output_is(<<'CODE', <<'OUTPUT', "nci_cb_D1 - PASM");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_cb_D1 - PASM");
 
   # we need a flag if the call_back is already done
   new P10, .Integer
@@ -1624,7 +1654,7 @@ done.
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', "nci_cb_D2 - PASM");
+pasm_output_is(<<'CODE', <<'OUTPUT', "nci_cb_D2 - PASM");
   # we need a flag if the call_back is already done
   new P10, .Integer
   store_global "cb_done", P10
@@ -1946,7 +1976,7 @@ external data: 11111111
 external data: 111111111
 OUTPUT
 
-output_is(<<'CODE', <<'OUTPUT', 'nci_pip - array of structs');
+pasm_output_is(<<'CODE', <<'OUTPUT', 'nci_pip - array of structs');
 
 .include "datatypes.pasm"
   new P3, .OrderedHash
@@ -2019,7 +2049,7 @@ H: 430
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', 'nci_i33 - out parameters and return values');
+pasm_output_is(<<'CODE', <<'OUTPUT', 'nci_i33 - out parameters and return 
values');
 
 .include "datatypes.pasm"
   new P2, .Integer
@@ -2049,7 +2079,7 @@ Sum: 12
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', 'nci_vpii - nested structs');
+pasm_output_is(<<'CODE', <<'OUTPUT', 'nci_vpii - nested structs');
 
 .include "datatypes.pasm"
   new  P8, .OrderedHash
@@ -2110,7 +2140,7 @@ Y: 2
 OUTPUT
 
 
-output_is(<<'CODE', <<'OUTPUT', 'nci_piiii - nested array in a struct');
+pasm_output_is(<<'CODE', <<'OUTPUT', 'nci_piiii - nested array in a struct');
 .include "datatypes.pasm"
 
   loadlib P1, "libnci_test"
@@ -2354,7 +2384,7 @@ libnci_test was successfully loaded
 'non_existing' is not defined
 OUTPUT
 
-output_is( << 'CODE', << 'OUTPUT', "loading same library twice" );
+pasm_output_is( << 'CODE', << 'OUTPUT', "loading same library twice" );
       loadlib P1, "libnci_test"
       if P1, OK1
       print "not "

Reply via email to