This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
function to parse isolated label
[perl5.git] / ext / XS-APItest / t / labelconst.t
1 use warnings;
2 use strict;
3
4 use Test::More tests => 18;
5
6 BEGIN { $^H |= 0x20000; }
7
8 my $t;
9
10 $t = "";
11 eval q{
12         use XS::APItest qw(labelconst);
13         $t .= "a";
14         $t .= labelconst b:;
15         $t .= "c";
16 };
17 is $@, "";
18 is $t, "abc";
19
20 $t = "";
21 eval q{
22         use XS::APItest qw(labelconst);
23         $t .= "a";
24         $t .= "b" . labelconst FOO: . "c";
25         $t .= "d";
26 };
27 is $@, "";
28 is $t, "abFOOcd";
29
30 $t = "";
31 eval q{
32         use XS::APItest qw(labelconst);
33         $t .= "a";
34         $t .= labelconst FOO :;
35         $t .= "b";
36 };
37 is $@, "";
38 is $t, "aFOOb";
39
40 $t = "";
41 eval q{
42         use XS::APItest qw(labelconst);
43         $t .= "a";
44         $t .= labelconst F_1B:;
45         $t .= "b";
46 };
47 is $@, "";
48 is $t, "aF_1Bb";
49
50 $t = "";
51 eval q{
52         use XS::APItest qw(labelconst);
53         $t .= "a";
54         $t .= labelconst _AB:;
55         $t .= "b";
56 };
57 is $@, "";
58 is $t, "a_ABb";
59
60 $t = "";
61 eval q{
62         use XS::APItest qw(labelconst);
63         no warnings;
64         $t .= "a";
65         $t .= labelconst 1AB:;
66         $t .= "b";
67 };
68 isnt $@, "";
69 is $t, "";
70
71 $t = "";
72 eval q{
73         use XS::APItest qw(labelconst);
74         $t .= "a";
75         $t .= labelconst :;
76         $t .= "b";
77 };
78 isnt $@, "";
79 is $t, "";
80
81 $t = "";
82 eval q{
83         use XS::APItest qw(labelconst);
84         $t .= "a";
85         $t .= labelconst ;
86         $t .= "b";
87 };
88 isnt $@, "";
89 is $t, "";
90
91 $t = "";
92 $t = do("t/labelconst.aux");
93 is $@, "";
94 is $t, "FOOBARBAZQUUX";
95
96 1;