diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/001.sh | 18 | ||||
| -rw-r--r-- | tests/002.sh | 18 | ||||
| -rw-r--r-- | tests/003.sh | 18 | ||||
| -rw-r--r-- | tests/test_exit_code.sh | 17 |
4 files changed, 20 insertions, 51 deletions
diff --git a/tests/001.sh b/tests/001.sh index a81f2c3..00e0aca 100644 --- a/tests/001.sh +++ b/tests/001.sh @@ -1,21 +1,5 @@ -cat <<'EOF' > main.c +bash ../../test_exit_code.sh 42 <<'EOF' int main() { return 42; } EOF - -"$p4dcc" < 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 -exit_code=$? - -expected=42 - -if [[ ! $exit_code -eq $expected ]]; then - echo "expected $expected, but $exit_code" >&2 - exit 1 -fi diff --git a/tests/002.sh b/tests/002.sh index 9dbbb21..ee54213 100644 --- a/tests/002.sh +++ b/tests/002.sh @@ -1,21 +1,5 @@ -cat <<'EOF' > main.c +bash ../../test_exit_code.sh 21 <<'EOF' int main() { return 5+20-4; } EOF - -"$p4dcc" < 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 -exit_code=$? - -expected=21 - -if [[ ! $exit_code -eq $expected ]]; then - echo "expected $expected, but $exit_code" >&2 - exit 1 -fi diff --git a/tests/003.sh b/tests/003.sh index 77a3886..4fa0b42 100644 --- a/tests/003.sh +++ b/tests/003.sh @@ -1,21 +1,5 @@ -cat <<'EOF' > main.c +bash ../../test_exit_code.sh 26 <<'EOF' int main() { return 2*3+4*5; } EOF - -"$p4dcc" < 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 -exit_code=$? - -expected=26 - -if [[ ! $exit_code -eq $expected ]]; then - echo "expected $expected, but $exit_code" >&2 - exit 1 -fi diff --git a/tests/test_exit_code.sh b/tests/test_exit_code.sh new file mode 100644 index 0000000..f69e862 --- /dev/null +++ b/tests/test_exit_code.sh @@ -0,0 +1,17 @@ +cat > main.c + +"$p4dcc" < 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 +exit_code=$? + +expected=$1 + +if [[ ! $exit_code -eq $expected ]]; then + echo "expected $expected, but $exit_code" >&2 + exit 1 +fi |
