#!/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