aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/include_local.sh
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-10-04 15:33:07 +0900
committernsfisis <nsfisis@gmail.com>2025-10-04 15:33:10 +0900
commit46e79e69ae866df88cb9442a7329c72662ed2db3 (patch)
tree13561c1e7273ed0311da37957e4a82d15b243ba4 /tests/include_local.sh
parent7e11675136edf8136f812c85cd45bc88ba405533 (diff)
downloadducc-46e79e69ae866df88cb9442a7329c72662ed2db3.tar.gz
ducc-46e79e69ae866df88cb9442a7329c72662ed2db3.tar.zst
ducc-46e79e69ae866df88cb9442a7329c72662ed2db3.zip
refactor: rename test files
Diffstat (limited to 'tests/include_local.sh')
-rw-r--r--tests/include_local.sh100
1 files changed, 100 insertions, 0 deletions
diff --git a/tests/include_local.sh b/tests/include_local.sh
new file mode 100644
index 0000000..c9fe755
--- /dev/null
+++ b/tests/include_local.sh
@@ -0,0 +1,100 @@
+cat <<'EOF' > header.h
+int add(int a, int b) {
+ return a + b;
+}
+
+int printf(const char*, ...);
+EOF
+
+cat <<'EOF' > expected
+8
+EOF
+test_diff <<'EOF'
+#include "header.h"
+
+int main() {
+ printf("%d\n", add(5, 3));
+ return 0;
+}
+EOF
+
+mkdir -p foo
+cat <<'EOF' > bar.h
+#include "baz.h"
+EOF
+cat <<'EOF' > baz.h
+#define A 123
+EOF
+cat <<'EOF' > foo/bar.h
+#include "baz.h"
+EOF
+cat <<'EOF' > foo/baz.h
+#define A 456
+EOF
+
+cat <<'EOF' > expected
+123
+456
+EOF
+test_diff <<'EOF'
+int printf(const char*, ...);
+
+int main() {
+#include "bar.h"
+ printf("%d\n", A);
+
+#undef A
+
+#include "foo/bar.h"
+ printf("%d\n", A);
+}
+EOF
+
+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
+
+test_diff <<'EOF'
+#include "calc.h"
+
+int main() {
+ printf("%d\n", calculate(6));
+ return 0;
+}
+EOF
+
+cat <<'EOF' > expected
+42
+EOF
+
+cat <<'EOF' > header.h
+#define A 42
+EOF
+
+test_diff <<'EOF'
+#include "header.h"
+
+int printf();
+
+int main() {
+ printf("%d\n", A);
+ return 0;
+}
+EOF
+