summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorNick Ing-Simmons <nik@tiuk.ti.com>2003-01-22 08:32:59 +0000
committerNick Ing-Simmons <nik@tiuk.ti.com>2003-01-22 08:32:59 +0000
commit9d9116831508c6c9cd81c32834701af14b7647a4 (patch)
tree4fcba7957460e652d6459b8cc77e9846d2d87165 /ext
parent58a5b889b12ec12d156c83f9a9db3ca70e64bbcb (diff)
downloadperl-9d9116831508c6c9cd81c32834701af14b7647a4.tar.gz
Tweak APItest for new semantics of printf.
Now printf() is always real printf() and not #define'd to PerlIO_stdoutf() so PerlIO_flush() when STDOUT is redirected back to original file does not affect stdout unless we are using :stdio as implementation. So things printf()ed XS side are not written to file (and turn up at end of test). So add an XS function which does fflush(stdout), modify .pm file to export it and .t file to call it. p4raw-id: //depot/perlio@18547
Diffstat (limited to 'ext')
-rw-r--r--ext/XS/APItest/APItest.pm4
-rw-r--r--ext/XS/APItest/APItest.xs5
-rw-r--r--ext/XS/APItest/t/printf.t4
3 files changed, 10 insertions, 3 deletions
diff --git a/ext/XS/APItest/APItest.pm b/ext/XS/APItest/APItest.pm
index bd8463bd80..581fa38240 100644
--- a/ext/XS/APItest/APItest.pm
+++ b/ext/XS/APItest/APItest.pm
@@ -13,10 +13,10 @@ use base qw/ DynaLoader Exporter /;
# Export everything since these functions are only used by a test script
our @EXPORT = qw( print_double print_int print_long
- print_float print_long_double have_long_double
+ print_float print_long_double have_long_double print_flush
);
-our $VERSION = '0.01';
+our $VERSION = '0.02';
bootstrap XS::APItest $VERSION;
diff --git a/ext/XS/APItest/APItest.xs b/ext/XS/APItest/APItest.xs
index d5c6b5271c..b141252bd7 100644
--- a/ext/XS/APItest/APItest.xs
+++ b/ext/XS/APItest/APItest.xs
@@ -53,3 +53,8 @@ print_float(val)
float val
CODE:
printf("%5.3f\n",val);
+
+void
+print_flush()
+ CODE:
+ fflush(stdout);
diff --git a/ext/XS/APItest/t/printf.t b/ext/XS/APItest/t/printf.t
index 91f328cd5c..ef2769e8fa 100644
--- a/ext/XS/APItest/t/printf.t
+++ b/ext/XS/APItest/t/printf.t
@@ -33,10 +33,12 @@ print_long(4);
print_float(4);
print_long_double() if $ldok; # val=7 hardwired
+print_flush();
+
# Now redirect STDOUT and read from the file
ok open(STDOUT, ">&", $oldout), "restore STDOUT";
ok open(my $foo, "<foo.out"), "open foo.out";
-print "# Test output by reading from file\n";
+#print "# Test output by reading from file\n";
# now test the output
my @output = map { chomp; $_ } <$foo>;
close $foo;