aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/define_macros.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/define_macros.sh')
-rw-r--r--tests/define_macros.sh92
1 files changed, 92 insertions, 0 deletions
diff --git a/tests/define_macros.sh b/tests/define_macros.sh
new file mode 100644
index 0000000..1b674f1
--- /dev/null
+++ b/tests/define_macros.sh
@@ -0,0 +1,92 @@
+cat <<'EOF' > expected
+EOF
+test_diff <<'EOF'
+#define A 1
+int main() {
+ return 0;
+}
+EOF
+
+cat <<'EOF' > expected
+1,2,3
+EOF
+test_diff <<'EOF'
+int printf();
+
+#define A 1
+#define B 2
+#define C 3
+
+int main() {
+ printf("%d,%d,%d\n", A, B, C);
+ return 0;
+}
+EOF
+
+cat <<'EOF' > expected
+0,0,0,0
+EOF
+test_diff <<'EOF'
+int printf();
+
+#define NULL 0
+#define TK_EOF 0
+#define TY_UNKNOWN 0
+#define AST_UNKNOWN 0
+
+int main() {
+ printf("%d,%d,%d,%d\n", NULL, TK_EOF, TY_UNKNOWN, AST_UNKNOWN);
+ return 0;
+}
+EOF
+
+cat <<'EOF' > expected
+42,123
+EOF
+test_diff <<'EOF'
+int printf();
+
+#define A foo_a
+#define B foo_b
+
+int main() {
+ int foo_a = 42;
+ int foo_b = 123;
+
+ printf("%d,%d\n", A, B);
+
+ return 0;
+}
+EOF
+
+cat <<'EOF' > expected
+123
+EOF
+
+test_diff <<'EOF'
+#define foo() 123
+
+int printf();
+
+int main() {
+ printf("%d\n", foo());
+}
+EOF
+
+cat <<'EOF' > expected
+579
+975
+EOF
+
+test_diff <<'EOF'
+#define foo 123 + 456
+#define bar() 321 + 654
+
+int printf();
+
+int main() {
+ printf("%d\n", foo);
+ printf("%d\n", bar());
+}
+EOF
+