diff options
Diffstat (limited to 'tests/t0010-language-names.sh')
| -rwxr-xr-x | tests/t0010-language-names.sh | 38 |
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 |
