aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-08-30 00:39:45 +0900
committernsfisis <nsfisis@gmail.com>2025-08-30 00:39:45 +0900
commit194e87a88290a4b3025436709e1f3064aecd00cd (patch)
tree17b7a78ed9f0cb767b9caf8b4f98b5dc1b4c6055 /tests
parentf89dab5c45395f432d9b25abfba4ecbad0e3ce03 (diff)
downloadducc-194e87a88290a4b3025436709e1f3064aecd00cd.tar.gz
ducc-194e87a88290a4b3025436709e1f3064aecd00cd.tar.zst
ducc-194e87a88290a4b3025436709e1f3064aecd00cd.zip
feat: check invalid #elif* and #endif
Diffstat (limited to 'tests')
-rw-r--r--tests/106.sh50
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/106.sh b/tests/106.sh
new file mode 100644
index 0000000..2a61a33
--- /dev/null
+++ b/tests/106.sh
@@ -0,0 +1,50 @@
+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