diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-07-20 01:07:40 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-08-15 10:04:26 +0900 |
| commit | 274e212c16bb354532e4a955e594a159cef61665 (patch) | |
| tree | 04acf78078538cd17bd698d8eaf4463d7c79bf99 /tests | |
| parent | 82c99e92032b8101443671604de7137ba7257cd0 (diff) | |
| download | ducc-274e212c16bb354532e4a955e594a159cef61665.tar.gz ducc-274e212c16bb354532e4a955e594a159cef61665.tar.zst ducc-274e212c16bb354532e4a955e594a159cef61665.zip | |
feat: partially implement #include directive
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/055.sh | 22 | ||||
| -rw-r--r-- | tests/056.sh | 30 | ||||
| -rw-r--r-- | tests/057.sh | 13 | ||||
| -rw-r--r-- | tests/058.sh | 25 |
4 files changed, 90 insertions, 0 deletions
diff --git a/tests/055.sh b/tests/055.sh new file mode 100644 index 0000000..d5e65f3 --- /dev/null +++ b/tests/055.sh @@ -0,0 +1,22 @@ +set -e + +cat <<'EOF' > expected +8 +EOF + +cat <<'EOF' > header.h +int add(int a, int b) { + return a + b; +} + +int printf(const char*, ...); +EOF + +bash ../../test_diff.sh <<'EOF' +#include "header.h" + +int main() { + printf("%d\n", add(5, 3)); + return 0; +} +EOF diff --git a/tests/056.sh b/tests/056.sh new file mode 100644 index 0000000..7bad4c0 --- /dev/null +++ b/tests/056.sh @@ -0,0 +1,30 @@ +set -e + +cat <<'EOF' > expected +12 +EOF + +cat <<'EOF' > math.h +int multiply(int a, int b) { + return a * b; +} +EOF + +cat <<'EOF' > calc.h +#include "math.h" + +int calculate(int x) { + return multiply(x, 2); +} + +int printf(const char*, ...); +EOF + +bash ../../test_diff.sh <<'EOF' +#include "calc.h" + +int main() { + printf("%d\n", calculate(6)); + return 0; +} +EOF diff --git a/tests/057.sh b/tests/057.sh new file mode 100644 index 0000000..6d1265f --- /dev/null +++ b/tests/057.sh @@ -0,0 +1,13 @@ +set -e + +cat <<'EOF' > expected +cannot open include file: nonexistent.h +EOF + +bash ../../test_compile_error.sh <<'EOF' +#include "nonexistent.h" + +int main() { + return 0; +} +EOF diff --git a/tests/058.sh b/tests/058.sh new file mode 100644 index 0000000..3be7ad1 --- /dev/null +++ b/tests/058.sh @@ -0,0 +1,25 @@ +set -e + +cat <<'EOF' > expected +include depth limit exceeded +EOF + +# Create circular include files +cat <<'EOF' > a.h +#include "b.h" +int a() { return 1; } +EOF + +cat <<'EOF' > b.h +#include "a.h" +int b() { return 2; } +EOF + +bash ../../test_compile_error.sh <<'EOF' +#include "a.h" + +int main() { + a() + b(); + return 0; +} +EOF |
