diff options
Diffstat (limited to 'tests/t0031-stringification.sh')
| -rwxr-xr-x | tests/t0031-stringification.sh | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/t0031-stringification.sh b/tests/t0031-stringification.sh new file mode 100755 index 0000000..213d787 --- /dev/null +++ b/tests/t0031-stringification.sh @@ -0,0 +1,50 @@ +#!/bin/sh +set -eu +src="${TMPDIR-/tmp}/mcpu-cpp-stringify-$$.c" +out="${TMPDIR-/tmp}/mcpu-cpp-stringify-$$.out" +dump="${TMPDIR-/tmp}/mcpu-cpp-stringify-$$.dump" +trap 'rm -f "$src" "$out" "$dump"' EXIT HUP INT TERM + +cat > "$src" <<'EOT' +#define A 7 +#define STR(X) #X +#define WSTR(X) # X +#define XSTR(X) STR(X) +#define MIX(X) #X | X +#define BAD(X, Y) X + Y +#define HASH(X) "#" X +#define EMPTY(X) <X> +STR(A) +WSTR(alpha) +XSTR(A) +STR( a + b ) +STR(Привет мир) +STR("a\\b") +STR() +STR(BAD(1)) +MIX(A) +HASH(A) +EMPTY() +#lang "diff" +#define DSTR(X) #X +DSTR(y' + z) +#endlang +EOT + +"$MCPU_CPP" --no-config "$src" -o "$out" + +grep -Fx '"A"' "$out" >/dev/null +grep -Fx '"alpha"' "$out" >/dev/null +grep -Fx '"7"' "$out" >/dev/null +grep -Fx '"a + b"' "$out" >/dev/null +grep -Fx '"Привет мир"' "$out" >/dev/null +grep -Fx '"\"a\\\\b\""' "$out" >/dev/null +grep -Fx '""' "$out" >/dev/null +grep -Fx '"BAD(1)"' "$out" >/dev/null +grep -Fx '"A" | 7' "$out" >/dev/null +grep -Fx '"#" 7' "$out" >/dev/null +grep -Fx '<>' "$out" >/dev/null +grep -Fx '"y'"'"' + z"' "$out" >/dev/null + +"$MCPU_CPP" --no-config -dM "$src" > "$dump" +grep -Fx '#define STR(X) #X' "$dump" >/dev/null |
