aboutsummaryrefslogtreecommitdiff
path: root/tests/builtins.sh
blob: c37cc2e4c4a773755f2a451be72f4fa546f95970 (plain) (blame)
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
#!/bin/bash

# Test Builtin functions

. tests/common.sh

set -e

echo -n "- Print: "
assert_stdout_text \
"fn main() { 
    print(10); print(20); 
}" \
"10
20"

assert_stdout_text \
"fn test(a: int) {
    print(100*a);
}
fn main() { 
    test(10);
}" \
"1000"

# We don't print negative values yet, need to fix this
assert_stdout_text \
"fn main() { 
    print(-1);
}" \
"18446744073709551615"

echo " OK"

echo -n "- putc: "
assert_stdout_text \
"fn main() { 
    putc(65);
}" \
"A"

assert_stdout_text \
"fn main(a: int) {
    let i: int = 65;
    for (; i < 65 + 26; i = i + 1)
        putc(i);
}" \
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"

assert_stdout_text \
"fn main() { 
    putc(72);
    putc(101);
    putc(108);
    putc(108);
    putc(111);
    putc(44);
    putc(32);
    putc(87);
    putc(111);
    putc(114);
    putc(108);
    putc(100);
    putc(33);
}" \
"Hello, World!"

echo " OK"