From 80811671d439e4953961e3bcbe7ce09a34c96d2a Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Sun, 30 Mar 2014 12:55:32 +0800 Subject: [PATCH] Add tests for previous fixes Add tests for the fixes made in commits 76cb1144ef91924c53c57ea71e6f67ce73ce1cc6, a465b7f58fdea15caa1bfb81ff5e985c94c4df4a, 0f522fb32a635dafce30f3ce3ff2cb15bcec809e, 82969f045c99b4d1ef833de35117c17b326b46c0 and 673befd2d7745a90c1c4fcb6d2f0e266c04f8c97. --- tests/tests2/58_function_redefinition.c | 9 +++++++++ tests/tests2/58_function_redefinition.expect | 1 + tests/tests2/59_function_array.c | 1 + tests/tests2/59_function_array.expect | 1 + tests/tests2/60_enum_redefinition.c | 4 ++++ tests/tests2/60_enum_redefinition.expect | 1 + tests/tests2/61_undefined_enum.c | 1 + tests/tests2/61_undefined_enum.expect | 1 + tests/tests2/62_enumerator_redefinition.c | 4 ++++ tests/tests2/62_enumerator_redefinition.expect | 1 + tests/tests2/Makefile | 7 ++++++- 11 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 tests/tests2/58_function_redefinition.c create mode 100644 tests/tests2/58_function_redefinition.expect create mode 100644 tests/tests2/59_function_array.c create mode 100644 tests/tests2/59_function_array.expect create mode 100644 tests/tests2/60_enum_redefinition.c create mode 100644 tests/tests2/60_enum_redefinition.expect create mode 100644 tests/tests2/61_undefined_enum.c create mode 100644 tests/tests2/61_undefined_enum.expect create mode 100644 tests/tests2/62_enumerator_redefinition.c create mode 100644 tests/tests2/62_enumerator_redefinition.expect diff --git a/tests/tests2/58_function_redefinition.c b/tests/tests2/58_function_redefinition.c new file mode 100644 index 00000000..33f16eea --- /dev/null +++ b/tests/tests2/58_function_redefinition.c @@ -0,0 +1,9 @@ +int f(void) +{ + return 0; +} + +int f(void) +{ + return 1; +} diff --git a/tests/tests2/58_function_redefinition.expect b/tests/tests2/58_function_redefinition.expect new file mode 100644 index 00000000..a95a3f01 --- /dev/null +++ b/tests/tests2/58_function_redefinition.expect @@ -0,0 +1 @@ +58_function_redefinition.c:7: error: redefinition of 'f' diff --git a/tests/tests2/59_function_array.c b/tests/tests2/59_function_array.c new file mode 100644 index 00000000..9fcc12de --- /dev/null +++ b/tests/tests2/59_function_array.c @@ -0,0 +1 @@ +int (*fct)[42](int x); diff --git a/tests/tests2/59_function_array.expect b/tests/tests2/59_function_array.expect new file mode 100644 index 00000000..bf62c6eb --- /dev/null +++ b/tests/tests2/59_function_array.expect @@ -0,0 +1 @@ +59_function_array.c:1: error: declaration of an array of functions diff --git a/tests/tests2/60_enum_redefinition.c b/tests/tests2/60_enum_redefinition.c new file mode 100644 index 00000000..2601560f --- /dev/null +++ b/tests/tests2/60_enum_redefinition.c @@ -0,0 +1,4 @@ +enum color {RED, GREEN, BLUE}; +enum color {R, G, B}; + +enum color c; diff --git a/tests/tests2/60_enum_redefinition.expect b/tests/tests2/60_enum_redefinition.expect new file mode 100644 index 00000000..5cb41bc6 --- /dev/null +++ b/tests/tests2/60_enum_redefinition.expect @@ -0,0 +1 @@ +60_enum_redefinition.c:2: error: struct/union/enum already defined diff --git a/tests/tests2/61_undefined_enum.c b/tests/tests2/61_undefined_enum.c new file mode 100644 index 00000000..bc7c6eaf --- /dev/null +++ b/tests/tests2/61_undefined_enum.c @@ -0,0 +1 @@ +enum rgb c = 42; diff --git a/tests/tests2/61_undefined_enum.expect b/tests/tests2/61_undefined_enum.expect new file mode 100644 index 00000000..7ccdeca2 --- /dev/null +++ b/tests/tests2/61_undefined_enum.expect @@ -0,0 +1 @@ +61_undefined_enum.c:1: error: unknown struct/union/enum diff --git a/tests/tests2/62_enumerator_redefinition.c b/tests/tests2/62_enumerator_redefinition.c new file mode 100644 index 00000000..3da85ae2 --- /dev/null +++ b/tests/tests2/62_enumerator_redefinition.c @@ -0,0 +1,4 @@ +enum color {RED, GREEN, BLUE}; +enum rgb {RED, G, B}; + +enum color c = RED; diff --git a/tests/tests2/62_enumerator_redefinition.expect b/tests/tests2/62_enumerator_redefinition.expect new file mode 100644 index 00000000..3d0e879d --- /dev/null +++ b/tests/tests2/62_enumerator_redefinition.expect @@ -0,0 +1 @@ +62_enumerator_redefinition.c:2: error: redefinition of enumerator 'RED' diff --git a/tests/tests2/Makefile b/tests/tests2/Makefile index c1bf5e67..fa564f93 100644 --- a/tests/tests2/Makefile +++ b/tests/tests2/Makefile @@ -69,7 +69,12 @@ TESTS = \ 54_goto.test \ 55_lshift_type.test \ 56_btype_excess-1.test \ - 57_btype_excess-2.test + 57_btype_excess-2.test \ + 58_function_redefinition.test \ + 59_function_array.test \ + 60_enum_redefinition.test \ + 61_undefined_enum.test \ + 62_enumerator_redefinition.test # 30_hanoi.test -- seg fault in the code, gcc as well # 34_array_assignment.test -- array assignment is not in C standard