aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/test_conditional_errors.sh
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-09-03 19:03:48 +0900
committernsfisis <nsfisis@gmail.com>2025-09-10 23:51:52 +0900
commit9a2fbf6f4854b1f2cfd5979b91d5b3d7e183d487 (patch)
tree5fc0c3e0c3cd7159119d0560b5061b3545216f35 /tests/test_conditional_errors.sh
parentb447618c33683b947c1fb26f1e7cd9033e20e5cb (diff)
downloadducc-9a2fbf6f4854b1f2cfd5979b91d5b3d7e183d487.tar.gz
ducc-9a2fbf6f4854b1f2cfd5979b91d5b3d7e183d487.tar.zst
ducc-9a2fbf6f4854b1f2cfd5979b91d5b3d7e183d487.zip
test: merge test scripts
Diffstat (limited to 'tests/test_conditional_errors.sh')
-rw-r--r--tests/test_conditional_errors.sh74
1 files changed, 74 insertions, 0 deletions
diff --git a/tests/test_conditional_errors.sh b/tests/test_conditional_errors.sh
new file mode 100644
index 0000000..5a33e8c
--- /dev/null
+++ b/tests/test_conditional_errors.sh
@@ -0,0 +1,74 @@
+cat <<'EOF' > expected
+main.c:2: expected '#endif', but got '<eof>'
+EOF
+test_compile_error <<'EOF'
+#if 0
+EOF
+
+cat <<'EOF' > expected
+main.c:3: expected '#endif', but got '<eof>'
+EOF
+test_compile_error <<'EOF'
+#if 1
+#else
+EOF
+
+cat <<'EOF' > expected
+main.c:3: expected '#endif', but got '<eof>'
+EOF
+test_compile_error <<'EOF'
+#if 1
+#elif 1
+EOF
+
+cat <<'EOF' > expected
+main.c:1: unexpected '#elif'; no corresponding '#if'*
+EOF
+test_compile_error <<'EOF'
+#elif
+#endif
+
+int main() {}
+EOF
+
+cat <<'EOF' > expected
+main.c:1: unexpected '#endif'; no corresponding '#if'*
+EOF
+test_compile_error <<'EOF'
+#endif
+
+int main() {}
+EOF
+
+cat <<'EOF' > expected
+main.c:1: unexpected '#else'; no corresponding '#if'*
+EOF
+test_compile_error <<'EOF'
+#else
+#endif
+
+int main() {}
+EOF
+
+cat <<'EOF' > expected
+main.c:4: expected '#endif', but got '<eof>'
+EOF
+test_compile_error <<'EOF'
+#if 1
+
+int main() {}
+EOF
+
+cat <<'EOF' > a.h
+#if 1
+EOF
+cat <<'EOF' > expected
+./a.h:2: expected '#endif', but got '<eof>'
+EOF
+test_compile_error <<'EOF'
+#include "a.h"
+#endif
+
+int main() {}
+EOF
+