xref: /openbsd-src/gnu/usr.bin/perl/ext/XS-APItest/t/looprest.t (revision 5759b3d249badf144a6240f7eec4dcf9df003e6b)
1898184e3Ssthenuse warnings;
2898184e3Ssthenuse strict;
3898184e3Ssthen
4898184e3Ssthenuse Test::More tests => 14;
5898184e3Ssthen
6898184e3SsthenBEGIN { $^H |= 0x20000; }
7898184e3Ssthen
8898184e3Ssthenmy $t;
9898184e3Ssthen
10898184e3Ssthen$t = "";
11898184e3Sstheneval q{
12898184e3Ssthen	use XS::APItest qw(looprest);
13898184e3Ssthen	do {
14898184e3Ssthen		$t .= "a";
15898184e3Ssthen		looprest
16898184e3Ssthen		$t .= "b";
17898184e3Ssthen		last unless length($t) < 5;
18898184e3Ssthen		$t .= "c";
19898184e3Ssthen	};
20898184e3Ssthen	$t .= "d";
21898184e3Ssthen};
22898184e3Ssthenis $@, "";
23898184e3Ssthenis $t, "abcbcbd";
24898184e3Ssthen
25898184e3Ssthen$t = "";
26898184e3Sstheneval q{
27898184e3Ssthen	use XS::APItest qw(looprest);
28898184e3Ssthen	$t .= "a";
29898184e3Ssthen	looprest
30898184e3Ssthen	$t .= "b";
31898184e3Ssthen	last unless length($t) < 5;
32898184e3Ssthen	$t .= "c";
33898184e3Ssthen};
34898184e3Ssthenis $@, "";
35898184e3Ssthenis $t, "abcbcb";
36898184e3Ssthen
37898184e3Ssthen$t = "";
38898184e3Sstheneval q[
39898184e3Ssthen	use XS::APItest qw(looprest);
40898184e3Ssthen	do {
41898184e3Ssthen		$t .= "a";
42898184e3Ssthen		looprest
43898184e3Ssthen		$t .= "b";
44898184e3Ssthen		last unless length($t) < 5;
45898184e3Ssthen		$t .= "c";
46898184e3Ssthen];
47898184e3Ssthenisnt $@, "";
48898184e3Ssthenis $t, "";
49898184e3Ssthen
50898184e3Ssthen$t = "";
51898184e3Sstheneval q[
52898184e3Ssthen	use XS::APItest qw(looprest);
53898184e3Ssthen	$t .= "a";
54898184e3Ssthen	looprest
55898184e3Ssthen	$t .= "b";
56898184e3Ssthen	last unless length($t) < 5;
57898184e3Ssthen	$t .= "c";
58898184e3Ssthen	};
59898184e3Ssthen];
60898184e3Ssthenisnt $@, "";
61898184e3Ssthenis $t, "";
62898184e3Ssthen
63898184e3Ssthen$t = "";
64898184e3Sstheneval q{
65898184e3Ssthen	use XS::APItest qw(looprest);
66898184e3Ssthen	my $x = "a";
67898184e3Ssthen	$t .= $x;
68898184e3Ssthen	do {
69*5759b3d2Safresh1		no warnings "shadow";
70898184e3Ssthen		$t .= $x;
71898184e3Ssthen		my $x = "b";
72898184e3Ssthen		$t .= $x;
73898184e3Ssthen		looprest
74898184e3Ssthen		$t .= $x;
75898184e3Ssthen		my $x = "c";
76898184e3Ssthen		$t .= $x;
77898184e3Ssthen		last unless length($t) < 7;
78898184e3Ssthen		$t .= $x;
79898184e3Ssthen		my $x = "d";
80898184e3Ssthen		$t .= $x;
81898184e3Ssthen	};
82898184e3Ssthen	$t .= $x;
83898184e3Ssthen};
84898184e3Ssthenis $@, "";
85898184e3Ssthenis $t, "aabbccdbca";
86898184e3Ssthen
87898184e3Ssthen$t = "";
88898184e3Sstheneval q{
89898184e3Ssthen	use XS::APItest qw(looprest);
90898184e3Ssthen	do {
91898184e3Ssthen		{ $t .= "a"; }
92898184e3Ssthen		looprest
93898184e3Ssthen		{ $t .= "b"; }
94898184e3Ssthen		last unless length($t) < 5;
95898184e3Ssthen		{ $t .= "c"; }
96898184e3Ssthen	};
97898184e3Ssthen	$t .= "d";
98898184e3Ssthen};
99898184e3Ssthenis $@, "";
100898184e3Ssthenis $t, "abcbcbd";
101898184e3Ssthen
102898184e3Ssthen$t = "";
103898184e3Sstheneval q{
104898184e3Ssthen	use XS::APItest qw(looprest);
105898184e3Ssthen	{ $t .= "a"; }
106898184e3Ssthen	looprest
107898184e3Ssthen	{ $t .= "b"; }
108898184e3Ssthen	last unless length($t) < 5;
109898184e3Ssthen	{ $t .= "c"; }
110898184e3Ssthen};
111898184e3Ssthenis $@, "";
112898184e3Ssthenis $t, "abcbcb";
113898184e3Ssthen
114898184e3Ssthen1;
115