This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Make pad names always UTF8
[perl5.git] / ext / XS-APItest / t / blockasexpr.t
CommitLineData
e53d8f76
Z
1use warnings;
2use strict;
3
4use Test::More tests => 16;
5
6BEGIN { $^H |= 0x20000; }
7
8my $t;
9
10$t = "";
11eval q{
12 use XS::APItest qw(blockasexpr);
13 $t .= "a";
14 $t .= "b" . blockasexpr { "c"; } . "d";
15 $t .= "e";
16};
17is $@, "";
18is $t, "abcde";
19
20$t = "";
21eval q{
22 use XS::APItest qw(blockasexpr);
23 no warnings "void";
24 $t .= "a";
25 $t .= "b" . blockasexpr { "z"; "c"; } . "d";
26 $t .= "e";
27};
28is $@, "";
29is $t, "abcde";
30
31$t = "";
32eval q{
33 use XS::APItest qw(blockasexpr);
34 $t .= "a";
35 $t .= "b" . blockasexpr { if($t eq "a") { "c"; } else { "d"; } } . "e";
36 $t .= "f";
37};
38is $@, "";
39is $t, "abcef";
40
41$t = "";
42eval q{
43 use XS::APItest qw(blockasexpr);
44 $t .= "a";
45 $t .= "b" . blockasexpr { if($t eq "z") { "c"; } else { "d"; } } . "e";
46 $t .= "f";
47};
48is $@, "";
49is $t, "abdef";
50
51$t = "";
52eval q{
53 use XS::APItest qw(blockasexpr);
54 no warnings "void";
55 $t .= "a";
56 $t .= "b" . blockasexpr { { "z"; "c"; } } . "d";
57 $t .= "e";
58};
59is $@, "";
60is $t, "abcde";
61
62$t = "";
63eval q{
64 use XS::APItest qw(blockasexpr);
65 $t .= "a";
66 $t .= blockasexpr {
67 my $t = "z";
68 "b";
69 };
70 $t .= "c";
71};
72is $@, "";
73is $t, "abc";
74
75$t = "";
76eval q{
77 use XS::APItest qw(blockasexpr);
78 my $f = 1.5;
79 $t .= "a(".($f+$f).")";
80 $t .= "b(" . blockasexpr {
81 use integer;
82 $f+$f;
83 } . ")";
84 $t .= "c(".($f+$f).")";
85};
86is $@, "";
87is $t, "a(3)b(2)c(3)";
88
89$t = "";
90eval q{
91 use XS::APItest qw(blockasexpr);
92 our $z = "z";
93 $t .= "a$z";
94 $t .= "b" . blockasexpr {
95 local $z = "y";
96 $z;
97 };
98 $t .= "c$z";
99};
100is $@, "";
101is $t, "azbycz";
102
1031;