[svn:parrot] r38069 - in trunk: config/gen/call_list src t/pmc
cotto at svn.parrot.org
cotto at svn.parrot.org
Sun Apr 12 00:43:35 UTC 2009
Author: cotto
Date: Sun Apr 12 00:43:34 2009
New Revision: 38069
URL: https://trac.parrot.org/parrot/changeset/38069
Log:
[NCI] add a test (plus supporting stuff) for multiple out params
The test passes on jitcapable=0. jitcapable is currently known to be broken in this case.
Modified:
trunk/config/gen/call_list/misc.in
trunk/src/nci_test.c
trunk/t/pmc/nci.t
Modified: trunk/config/gen/call_list/misc.in
==============================================================================
--- trunk/config/gen/call_list/misc.in Sun Apr 12 00:18:59 2009 (r38068)
+++ trunk/config/gen/call_list/misc.in Sun Apr 12 00:43:34 2009 (r38069)
@@ -389,6 +389,7 @@
# Testing Pointer PMC use
v V
+v VVV
# Testing SQLite
i tV
Modified: trunk/src/nci_test.c
==============================================================================
--- trunk/src/nci_test.c Sun Apr 12 00:18:59 2009 (r38068)
+++ trunk/src/nci_test.c Sun Apr 12 00:43:34 2009 (r38069)
@@ -108,6 +108,7 @@
PARROT_EXPORT char * nci_ttt(char *, char *);
PARROT_EXPORT void nci_vfff(float, float, float);
PARROT_EXPORT void nci_vV(const char **);
+PARROT_EXPORT void nci_vVVV(const char **, const char **, const char **);
/* Declarations for callback tests */
@@ -1170,6 +1171,25 @@
*ptr = "Hello bright new world\n";
}
+/*
+
+=item C<PARROT_EXPORT float
+nci_fff(float l1, float l2)>
+
+Returns the result of C<l1> / C<l2>.
+
+=cut
+
+*/
+
+PARROT_EXPORT void
+nci_vVVV(const char **ptr1, const char **ptr2, const char **ptr3)
+{
+ *ptr1 = "Hello bright new world!\n";
+ *ptr2 = "It is a beautiful day!\n";
+ *ptr3 = "Go suck a lemon.\n";
+}
+
#ifdef TEST
char l2 = 4;
Modified: trunk/t/pmc/nci.t
==============================================================================
--- trunk/t/pmc/nci.t Sun Apr 12 00:18:59 2009 (r38068)
+++ trunk/t/pmc/nci.t Sun Apr 12 00:43:34 2009 (r38069)
@@ -6,7 +6,7 @@
use warnings;
use lib qw( . lib ../lib ../../lib );
use Test::More;
-use Parrot::Test tests => 69;
+use Parrot::Test tests => 70;
use Parrot::Config qw(%PConfig);
=head1 NAME
@@ -2726,6 +2726,34 @@
Hello bright new world
OUTPUT
+pir_output_is( << 'CODE', << 'OUTPUT', "nci_vVV - multiple char** out parameters" );
+.sub test :main
+ .local string library_name
+ library_name = 'libnci_test'
+ .local pmc libnci_test
+ libnci_test = loadlib library_name
+
+ .local pmc nci_vVVV
+ nci_vVVV = dlfunc libnci_test, "nci_vVVV", "vVVV"
+
+ .local pmc char_s_s1, char_s_s2, char_s_s3
+ char_s_s1 = new ['Pointer']
+ char_s_s2 = new ['Pointer']
+ char_s_s3 = new ['Pointer']
+ nci_vVVV(char_s_s1, char_s_s2, char_s_s3)
+ $S1 = char_s_s1
+ print $S1
+ $S1 = char_s_s2
+ print $S1
+ $S1 = char_s_s3
+ print $S1
+.end
+CODE
+Hello bright new world!
+It is a beautiful day!
+Go suck a lemon.
+OUTPUT
+
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
More information about the parrot-commits
mailing list