summaryrefslogtreecommitdiff
path: root/tests/t0010-language-names.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/t0010-language-names.sh')
-rwxr-xr-xtests/t0010-language-names.sh38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/t0010-language-names.sh b/tests/t0010-language-names.sh
new file mode 100755
index 0000000..83d4325
--- /dev/null
+++ b/tests/t0010-language-names.sh
@@ -0,0 +1,38 @@
+#!/bin/sh
+set -eu
+dir="${TMPDIR-/tmp}/mcpu-cpp-languages-$$"
+mkdir -p "$dir"
+trap 'rm -rf "$dir"' EXIT HUP INT TERM
+
+cat > "$dir/ok.c" <<'EOT'
+#lang "diff"
+#endlang
+#lang "DIFT"
+#endlang
+#lang "Alg"
+#endlang
+#lang "aS"
+#endlang
+#lang "AvM"
+#endlang
+#lang "acs"
+#endlang
+EOT
+"$MCPU_CPP" --no-config "$dir/ok.c" -o "$dir/ok.out"
+grep '^#lang "diff"$' "$dir/ok.out" >/dev/null
+grep '^#lang "DIFT"$' "$dir/ok.out" >/dev/null
+grep '^#lang "Alg"$' "$dir/ok.out" >/dev/null
+grep '^#lang "aS"$' "$dir/ok.out" >/dev/null
+grep '^#lang "AvM"$' "$dir/ok.out" >/dev/null
+grep '^#lang "acs"$' "$dir/ok.out" >/dev/null
+
+for lang in 0 c vasm unknown
+do
+ printf '#lang "%s"\n#endlang\n' "$lang" > "$dir/bad.c"
+ if "$MCPU_CPP" --no-config "$dir/bad.c" -o "$dir/bad.out" 2> "$dir/bad.err"
+ then
+ echo "#lang \"$lang\" unexpectedly accepted" >&2
+ exit 1
+ fi
+ grep "unknown language '$lang'" "$dir/bad.err" >/dev/null
+done