Commit | Line | Data |
3e61d65a |
1 | BEGIN { |
2 | chdir 't' if -d 't'; |
3 | @INC = '../lib'; |
4 | require Config; import Config; |
5 | if ($Config{'extensions'} !~ /\bXS\/APItest\b/) { |
6 | print "1..0 # Skip: XS::APItest was not built\n"; |
7 | exit 0; |
8 | } |
9 | } |
10 | |
deec275f |
11 | use Test::More tests => 11; |
3e61d65a |
12 | |
13 | BEGIN { use_ok('XS::APItest') }; |
14 | |
15 | ######################### |
16 | |
17 | my $ldok = have_long_double(); |
18 | |
19 | # first some IO redirection |
20 | ok open(my $oldout, ">&STDOUT"), "saving STDOUT"; |
21 | ok open(STDOUT, '>', "foo.out"),"redirecting STDOUT"; |
22 | |
23 | # Allow for it to be removed |
24 | END { unlink "foo.out"; }; |
25 | |
26 | select STDOUT; $| = 1; # make unbuffered |
27 | |
28 | # Run the printf tests |
29 | print_double(5); |
3e61d65a |
30 | print_int(3); |
3e61d65a |
31 | print_long(4); |
32 | print_float(4); |
33 | print_long_double() if $ldok; # val=7 hardwired |
34 | |
35 | # Now redirect STDOUT and read from the file |
36 | ok open(STDOUT, ">&", $oldout), "restore STDOUT"; |
37 | ok open(my $foo, "<foo.out"), "open foo.out"; |
38 | print "# Test output by reading from file\n"; |
39 | # now test the output |
40 | my @output = map { chomp; $_ } <$foo>; |
41 | close $foo; |
deec275f |
42 | ok @output >= 4, "captured at least four output lines"; |
3e61d65a |
43 | |
44 | is($output[0], "5.000", "print_double"); |
29e130bc |
45 | is($output[1], "3", "print_int"); |
46 | is($output[2], "4", "print_long"); |
47 | is($output[3], "4.000", "print_float"); |
3e61d65a |
48 | |
49 | SKIP: { |
50 | skip "No long doubles", 1 unless $ldok; |
29e130bc |
51 | is($output[4], "7.000", "print_long_double"); |
3e61d65a |
52 | } |
53 | |