diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-05-03 11:22:25 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-05-03 11:22:25 +0900 |
| commit | ef07eff322a31ce0164283b531606e2827a64ded (patch) | |
| tree | 3a5120716daa8843f626a1ecc4c849e3dd503cc1 /tests | |
| parent | 441a78966e5fa230290dec0f96651fe88f45c36b (diff) | |
| download | P4Dcc-ef07eff322a31ce0164283b531606e2827a64ded.tar.gz P4Dcc-ef07eff322a31ce0164283b531606e2827a64ded.tar.zst P4Dcc-ef07eff322a31ce0164283b531606e2827a64ded.zip | |
add tests
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/001.sh | 14 | ||||
| -rw-r--r-- | tests/all.sh | 16 | ||||
| -rw-r--r-- | tests/run.sh | 18 |
3 files changed, 48 insertions, 0 deletions
diff --git a/tests/001.sh b/tests/001.sh new file mode 100644 index 0000000..9245cf6 --- /dev/null +++ b/tests/001.sh @@ -0,0 +1,14 @@ +cat <<'EOF' > main.c +int main() { + return 42; +} +EOF + +"$p4dcc" < main.c > main.s +gcc -o a.out main.s +set +e +./a.out +exit_code=$? +set -e + +test $exit_code -eq 42 diff --git a/tests/all.sh b/tests/all.sh new file mode 100644 index 0000000..4ff3688 --- /dev/null +++ b/tests/all.sh @@ -0,0 +1,16 @@ +set -e + +export p4dcc="../../../p4dcc" + +rm -rf tests/tmp +mkdir -p tests/tmp +for i in $(seq 1 999); do + testcase=$(printf '%03d' $i) + test_file="tests/$testcase.sh" + if [[ -f "$test_file" ]]; then + bash tests/run.sh "$testcase" + else + echo "All tests passed." + exit + fi +done diff --git a/tests/run.sh b/tests/run.sh new file mode 100644 index 0000000..d92cc29 --- /dev/null +++ b/tests/run.sh @@ -0,0 +1,18 @@ +set -e + +export p4dcc="../../../p4dcc" + +export testcase=$1 +export tmp_dir="tests/tmp/$testcase" + +test_file="tests/$testcase.sh" + +if [[ ! -f "$test_file" ]]; then + echo "no test $testcase" >&2 + exit 1 +fi + +echo "$test_file" +mkdir -p "$tmp_dir" +cd "$tmp_dir" +bash "../../../$test_file" |
