From c2db3a1b19fb89eaa12009fa4ffb70a7be6acc0f Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 9 Jun 2015 01:37:54 +0300 Subject: Add new tests 2, 3, 4. --- test/Makefile | 11 +- test/test1-01.txt | 16 +-- test/test2-01.txt | 55 ++++++++++ test/test2-02.txt | 1 + test/test2.c | 4 + test/test3-01.txt | 99 ++++++++++++++++++ test/test3-02.txt | 1 + test/test3.c | 4 + test/test4-01.txt | 302 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ test/test4-02.txt | 4 + test/test4.c | 23 +++++ 11 files changed, 510 insertions(+), 10 deletions(-) create mode 100644 test/test2-01.txt create mode 100644 test/test2-02.txt create mode 100644 test/test2.c create mode 100644 test/test3-01.txt create mode 100644 test/test3-02.txt create mode 100644 test/test3.c create mode 100644 test/test4-01.txt create mode 100644 test/test4-02.txt create mode 100644 test/test4.c diff --git a/test/Makefile b/test/Makefile index 0acb4e2..40a48fc 100644 --- a/test/Makefile +++ b/test/Makefile @@ -1,4 +1,4 @@ -.PHONY: test1 test2 crashtest1 crashtest2 all crashes clean +.PHONY: test1 test2 test3 test4 crashtest1 crashtest2 all crashes clean .NOTPARALLEL: all allcrash CC := gcc-5 @@ -7,7 +7,7 @@ CXX := g++-5 PLUGIN = ../build/src/.libs/astdumper.so CMD = ${CXX} -fplugin=${PLUGIN} -fplugin-arg-astdumper-command=${1} ${2} -o a.out 2>${3} -all: test1 test2 clean +all: test1 test2 test3 test4 clean crashes: crashtest1 crashtest2 clean clean: @@ -20,6 +20,13 @@ test1: $(call CMD,dumpunsupported,test1.c,test1-04.txt) test2: $(call CMD,dump,test2.c,test2-01.txt) + $(call CMD,findargs,test2.c,test2-02.txt) +test3: + $(call CMD,dump,test3.c,test3-01.txt) + $(call CMD,findargs,test3.c,test3-02.txt) +test4: + $(call CMD,dump,test4.c,test4-01.txt) + $(call CMD,findargs,test4.c,test4-02.txt) crashtest1: $(call CMD,dump,crashtest1.h,crashtest1-01.txt) diff --git a/test/test1-01.txt b/test/test1-01.txt index 23a429a..f61f596 100644 --- a/test/test1-01.txt +++ b/test/test1-01.txt @@ -10,7 +10,7 @@ function_decl func3 test1.c 7:6 identifier_node nonnull - purpose tree_list - value integer_cst 1 - value - tree_list - value + tree_list - chain integer_cst 2 - value tree_list - arg types pointer_type - value @@ -22,7 +22,7 @@ function_decl func3 test1.c 7:6 integer_cst 32 - type size integer_cst -2147483648 - min value integer_cst 2147483647 - max value - tree_list - arg types + tree_list - chain pointer_type - value integer_type - nested type - precisionBits: 8 @@ -33,7 +33,7 @@ function_decl func3 test1.c 7:6 integer_cst 8 - type size integer_cst -128 - min value integer_cst 127 - max value - tree_list - arg types + tree_list - chain void_type - value type_decl void 0:0 - type name - isAutogenerated: 1 @@ -266,7 +266,7 @@ function_decl fun test1.c 21:6 integer_cst 32 - type size integer_cst -2147483648 - min value integer_cst 2147483647 - max value - tree_list - arg types + tree_list - chain integer_type - value - precisionBits: 32 - signed @@ -275,7 +275,7 @@ function_decl fun test1.c 21:6 integer_cst 32 - type size integer_cst -2147483648 - min value integer_cst 2147483647 - max value - tree_list - arg types + tree_list - chain void_type - value type_decl void 0:0 - type name - isAutogenerated: 1 @@ -406,7 +406,7 @@ function_decl fun1 test1.c 29:5 integer_cst 32 - type size integer_cst -2147483648 - min value integer_cst 2147483647 - max value - tree_list - arg types + tree_list - chain pointer_type - value pointer_type - nested type pointer_type - nested type @@ -418,7 +418,7 @@ function_decl fun1 test1.c 29:5 integer_cst 32 - type size integer_cst -2147483648 - min value integer_cst 2147483647 - max value - tree_list - arg types + tree_list - chain void_type - value type_decl void 0:0 - type name - isAutogenerated: 1 @@ -636,7 +636,7 @@ function_decl fun2 test1.c 38:6 integer_cst 8 - type size integer_cst -128 - min value integer_cst 127 - max value - tree_list - arg types + tree_list - chain void_type - value type_decl void 0:0 - type name - isAutogenerated: 1 diff --git a/test/test2-01.txt b/test/test2-01.txt new file mode 100644 index 0000000..022c463 --- /dev/null +++ b/test/test2-01.txt @@ -0,0 +1,55 @@ +function_decl main test2.c 1:5 +- isPublic: 1 + function_type - function type + integer_type - function return type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + tree_list - arg types + void_type - value + type_decl void 0:0 - type name + - isAutogenerated: 1 + result_decl test2.c 1:14 - function result + - isAutogenerated: 1 + integer_type - result type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 32 - decl size + statement_list - code + return_expr - statement + init_expr - operand + result_decl test2.c 1:14 - operand + - isAutogenerated: 1 + integer_type - result type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 32 - decl size + integer_cst 123 - operand + return_expr - statement + init_expr - operand + result_decl test2.c 1:14 - operand + - isAutogenerated: 1 + integer_type - result type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 32 - decl size + integer_cst 0 - operand diff --git a/test/test2-02.txt b/test/test2-02.txt new file mode 100644 index 0000000..cf52aff --- /dev/null +++ b/test/test2-02.txt @@ -0,0 +1 @@ +main: \ No newline at end of file diff --git a/test/test2.c b/test/test2.c new file mode 100644 index 0000000..33f6936 --- /dev/null +++ b/test/test2.c @@ -0,0 +1,4 @@ +int main(void) +{ + return 123; +} diff --git a/test/test3-01.txt b/test/test3-01.txt new file mode 100644 index 0000000..e286027 --- /dev/null +++ b/test/test3-01.txt @@ -0,0 +1,99 @@ +function_decl main test3.c 1:5 +- isPublic: 1 + function_type - function type + integer_type - function return type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + tree_list - arg types + integer_type - value + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + tree_list - chain + pointer_type - value + pointer_type - nested type + integer_type - nested type + - precisionBits: 8 + - isChar: 1 + - signed + type_decl char 0:0 - type name + - isAutogenerated: 1 + integer_cst 8 - type size + integer_cst -128 - min value + integer_cst 127 - max value + tree_list - chain + void_type - value + type_decl void 0:0 - type name + - isAutogenerated: 1 + result_decl test3.c 1:31 - function result + - isAutogenerated: 1 + integer_type - result type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 32 - decl size + parm_decl argc test3.c 1:14 - argument + integer_type - decl type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 32 - parm size + parm_decl argv test3.c 1:27 - argument + pointer_type - decl type + pointer_type - nested type + integer_type - nested type + - precisionBits: 8 + - isChar: 1 + - signed + type_decl char 0:0 - type name + - isAutogenerated: 1 + integer_cst 8 - type size + integer_cst -128 - min value + integer_cst 127 - max value + integer_cst 64 - parm size + statement_list - code + return_expr - statement + init_expr - operand + result_decl test3.c 1:31 - operand + - isAutogenerated: 1 + integer_type - result type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 32 - decl size + integer_cst 123 - operand + return_expr - statement + init_expr - operand + result_decl test3.c 1:31 - operand + - isAutogenerated: 1 + integer_type - result type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 32 - decl size + integer_cst 0 - operand diff --git a/test/test3-02.txt b/test/test3-02.txt new file mode 100644 index 0000000..0b2a1dd --- /dev/null +++ b/test/test3-02.txt @@ -0,0 +1 @@ +main: integer_type argc, pointer_type argv, \ No newline at end of file diff --git a/test/test3.c b/test/test3.c new file mode 100644 index 0000000..20e0636 --- /dev/null +++ b/test/test3.c @@ -0,0 +1,4 @@ +int main(int argc, char **argv) +{ + return 123; +} diff --git a/test/test4-01.txt b/test/test4-01.txt new file mode 100644 index 0000000..7a133f4 --- /dev/null +++ b/test/test4-01.txt @@ -0,0 +1,302 @@ +function_decl main test4.c 1:5 +- isPublic: 1 + function_type - function type + integer_type - function return type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + tree_list - arg types + void_type - value + type_decl void 0:0 - type name + - isAutogenerated: 1 + result_decl test4.c 1:14 - function result + - isAutogenerated: 1 + integer_type - result type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 32 - decl size + statement_list - code + return_expr - statement + init_expr - operand + result_decl test4.c 1:14 - operand + - isAutogenerated: 1 + integer_type - result type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 32 - decl size + integer_cst 0 - operand + return_expr - statement + init_expr - operand + result_decl test4.c 1:14 - operand + - isAutogenerated: 1 + integer_type - result type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 32 - decl size + integer_cst 0 - operand +function_decl func4_1 test4.c 10:6 +- isPublic: 1 + function_type - function type + void_type - function return type + type_decl void 0:0 - type name + - isAutogenerated: 1 + tree_list - arg types + integer_type - value + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + tree_list - chain + pointer_type - value + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + tree_list - chain + pointer_type - value + integer_type - nested type + - precisionBits: 8 + - isChar: 1 + - signed + type_decl char 0:0 - type name + - isAutogenerated: 1 + integer_cst 8 - type size + integer_cst -128 - min value + integer_cst 127 - max value + tree_list - chain + void_type - value + type_decl void 0:0 - type name + - isAutogenerated: 1 + result_decl test4.c 10:36 - function result + - isAutogenerated: 1 + void_type - result type + type_decl void 0:0 - type name + - isAutogenerated: 1 + parm_decl a test4.c 10:18 - argument + integer_type - decl type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 32 - parm size + parm_decl b test4.c 10:26 - argument + pointer_type - decl type + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 64 - parm size + parm_decl c test4.c 10:35 - argument + pointer_type - decl type + integer_type - nested type + - precisionBits: 8 + - isChar: 1 + - signed + type_decl char 0:0 - type name + - isAutogenerated: 1 + integer_cst 8 - type size + integer_cst -128 - min value + integer_cst 127 - max value + integer_cst 64 - parm size + return_expr - code +function_decl func4_2 test4.c 15:6 +- isPublic: 1 + function_type - function type + void_type - function return type + type_decl void 0:0 - type name + - isAutogenerated: 1 + tree_list - attribute + identifier_node nonnull - purpose + tree_list - value + integer_cst 2 - value + tree_list - arg types + integer_type - value + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + tree_list - chain + pointer_type - value + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + tree_list - chain + pointer_type - value + integer_type - nested type + - precisionBits: 8 + - isChar: 1 + - signed + type_decl char 0:0 - type name + - isAutogenerated: 1 + integer_cst 8 - type size + integer_cst -128 - min value + integer_cst 127 - max value + tree_list - chain + void_type - value + type_decl void 0:0 - type name + - isAutogenerated: 1 + result_decl test4.c 15:36 - function result + - isAutogenerated: 1 + void_type - result type + type_decl void 0:0 - type name + - isAutogenerated: 1 + parm_decl a test4.c 15:18 - argument + integer_type - decl type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 32 - parm size + parm_decl b test4.c 15:26 - argument + pointer_type - decl type + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 64 - parm size + parm_decl c test4.c 15:35 - argument + pointer_type - decl type + integer_type - nested type + - precisionBits: 8 + - isChar: 1 + - signed + type_decl char 0:0 - type name + - isAutogenerated: 1 + integer_cst 8 - type size + integer_cst -128 - min value + integer_cst 127 - max value + integer_cst 64 - parm size + return_expr - code +function_decl func4_3 test4.c 20:6 +- isPublic: 1 + function_type - function type + void_type - function return type + type_decl void 0:0 - type name + - isAutogenerated: 1 + tree_list - attribute + identifier_node nonnull - purpose + tree_list - value + integer_cst 2 - value + tree_list - chain + integer_cst 3 - value + tree_list - arg types + integer_type - value + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + tree_list - chain + pointer_type - value + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + tree_list - chain + pointer_type - value + integer_type - nested type + - precisionBits: 8 + - isChar: 1 + - signed + type_decl char 0:0 - type name + - isAutogenerated: 1 + integer_cst 8 - type size + integer_cst -128 - min value + integer_cst 127 - max value + tree_list - chain + void_type - value + type_decl void 0:0 - type name + - isAutogenerated: 1 + result_decl test4.c 20:36 - function result + - isAutogenerated: 1 + void_type - result type + type_decl void 0:0 - type name + - isAutogenerated: 1 + parm_decl a test4.c 20:18 - argument + integer_type - decl type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 32 - parm size + parm_decl b test4.c 20:26 - argument + pointer_type - decl type + integer_type - nested type + - precisionBits: 32 + - signed + type_decl int 0:0 - type name + - isAutogenerated: 1 + integer_cst 32 - type size + integer_cst -2147483648 - min value + integer_cst 2147483647 - max value + integer_cst 64 - parm size + parm_decl c test4.c 20:35 - argument + pointer_type - decl type + integer_type - nested type + - precisionBits: 8 + - isChar: 1 + - signed + type_decl char 0:0 - type name + - isAutogenerated: 1 + integer_cst 8 - type size + integer_cst -128 - min value + integer_cst 127 - max value + integer_cst 64 - parm size + return_expr - code diff --git a/test/test4-02.txt b/test/test4-02.txt new file mode 100644 index 0000000..384a8a1 --- /dev/null +++ b/test/test4-02.txt @@ -0,0 +1,4 @@ +main: +func4_1: integer_type a, pointer_type b, pointer_type c, +func4_2: integer_type a, pointer_type b nonnull, pointer_type c, +func4_3: integer_type a, pointer_type b nonnull, pointer_type c nonnull, diff --git a/test/test4.c b/test/test4.c new file mode 100644 index 0000000..9f65d24 --- /dev/null +++ b/test/test4.c @@ -0,0 +1,23 @@ +int main(void) +{ + return 0; +} + +void func4_1(int a, int *b, char *c); +void func4_2(int a, int *b, char *c) __attribute__((nonnull (2))); +void func4_3(int a, int *b, char *c) __attribute__((nonnull (2, 3))); + +void func4_1(int a, int *b, char *c) +{ + return; +} + +void func4_2(int a, int *b, char *c) +{ + return; +} + +void func4_3(int a, int *b, char *c) +{ + return; +} -- cgit v1.2.3-60-g2f50