aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/050.sh
blob: 295ac2db2c3d9f6179fcf9f8c642c94190a24747 (plain)
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
set -e

cat <<'EOF' > expected
hello, world
EOF

cat <<'EOF' > main.c
int printf();
int main() {
    printf("hello, world\n");
    return 0;
}
EOF

"$ducc" - < main.c > main.s
if [[ $? -ne 0 ]]; then
    cat main.s >&2
    exit 1
fi
gcc -Wl,-z,noexecstack -o a.out main.s
./a.out "$@" > output
exit_code=$?

if [[ $exit_code -ne 0 ]]; then
    echo "invalid exit code: $exit_code" >&2
    exit 1
fi

diff -u expected output