-
Notifications
You must be signed in to change notification settings - Fork 138
/
basic.t
109 lines (88 loc) · 1.73 KB
/
basic.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#! perl -w
use Parrot::Test tests => 14;
# It would be very embarrassing if these didn't work...
output_is(<<'CODE', '', "noop, end");
noop
end
CODE
output_is(<<'CODE', '1', "print 1");
print 1
end
CODE
output_is(<<'CODE', 'Parrot flies', "print string");
print 'Parrot flies'
end
CODE
output_is(<<'CODE', 'Parrot flies', "print double-quoted string");
print "Parrot flies"
end
CODE
output_is(<<'CODE', 'Parrot flies', "print double-quoted string, tabs");
print "Parrot\tflies"
end
CODE
output_is(<<'CODE', q('Parrot' flies), "print double-quoted string, nested single");
print "'Parrot' flies"
end
CODE
output_is(<<'CODE', q("Parrot" flies), "print single-quoted string, nested double");
print '"Parrot" flies'
end
CODE
output_is(<<'CODE', q(Parrot flies), "print string with embedded hex escape");
print "Parrot\x20flies"
end
CODE
output_is(<<'CODE', <<OUTPUT, "print string with embedded newline");
print "Parrot flies\n"
end
CODE
Parrot flies
OUTPUT
output_is( <<'CODE', '42', "branch_ic" );
set I4, 42
branch HERE
set I4, 1234
HERE:
print I4
end
CODE
output_is(<<'CODE', <<'OUTPUT', "bsr_i");
print "start\n"
bsr LAB1
print "done\n"
end
LAB1: print "lab 1\n"
ret
CODE
start
lab 1
done
OUTPUT
output_is(<<'CODE', <<'OUTPUT', "set_addr");
set_addr I1, FOO
jump I1
print "Jump failed\n"
end
FOO: print "Jump succeeded\n"
end
CODE
Jump succeeded
OUTPUT
output_is(<<'CODE', <<'OUTPUT', "multiple labels");
if 0,FOO
if 1,BAR
print "not "
FOO:
BAR:
print "ok 1\n"
end
CODE
ok 1
OUTPUT
output_is(<<'CODE', 32, "Predeclared opcodes");
set_i_ic I0,32
print I0
end
CODE
1; # HONK