summaryrefslogtreecommitdiff
path: root/tests/run_example_transpile.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run_example_transpile.sh')
-rwxr-xr-xtests/run_example_transpile.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/run_example_transpile.sh b/tests/run_example_transpile.sh
new file mode 100755
index 0000000..c08a3ea
--- /dev/null
+++ b/tests/run_example_transpile.sh
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+ZC="./zc"
+EXAMPLES_DIR="examples"
+FAIL_COUNT=0
+PASS_COUNT=0
+
+echo "Running Example Transpilation Tests..."
+
+while IFS= read -r file; do
+ echo -n "Transpiling $file... "
+
+ OUTPUT=$($ZC transpile "$file" 2>&1)
+ EXIT_CODE=$?
+
+ if [ $EXIT_CODE -eq 0 ]; then
+ echo "PASS"
+ PASS_COUNT=$((PASS_COUNT + 1))
+ [ -f "out.c" ] && rm "out.c"
+ [ -f "a.out" ] && rm "a.out"
+ else
+ echo "FAIL"
+ echo "$OUTPUT"
+ FAIL_COUNT=$((FAIL_COUNT + 1))
+ fi
+
+done < <(find "$EXAMPLES_DIR" -name "*.zc")
+
+echo "----------------------------------------"
+echo "Summary:"
+echo "-> Passed: $PASS_COUNT"
+echo "-> Failed: $FAIL_COUNT"
+echo "----------------------------------------"
+
+if [ $FAIL_COUNT -ne 0 ]; then
+ exit 1
+fi
+
+exit 0