From 835b5ba3d6594a60963af89b0487f89afe6e19f1 Mon Sep 17 00:00:00 2001 From: bloodstalker Date: Tue, 14 Jul 2020 20:00:12 +0430 Subject: wip-tests --- test/declrefexpr.cpp | 8 ++++---- test/fielddecl.cpp | 6 +++--- test/function.cpp | 6 +++--- test/test_list.md | 32 ++++++++++++++++---------------- test/vardecl.cpp | 8 ++++---- testscript/main.py | 43 ++++++++++++++++++++++++++++--------------- 6 files changed, 58 insertions(+), 45 deletions(-) diff --git a/test/declrefexpr.cpp b/test/declrefexpr.cpp index c184577..b2a617d 100644 --- a/test/declrefexpr.cpp +++ b/test/declrefexpr.cpp @@ -4,7 +4,7 @@ namespace declrefexpr_ns{ class testClass { public: testClass() = default; - int a; + int testa; private: }; @@ -12,9 +12,9 @@ private: int __attribute__((weak)) main(int argc, char *argv[]) { int a; - int b; + int testb; declrefexpr_ns::testClass tc; - tc.a = 10; + tc.testa = 10; - return a + b; + return a + testb; } diff --git a/test/fielddecl.cpp b/test/fielddecl.cpp index 6646afd..82f5d1f 100644 --- a/test/fielddecl.cpp +++ b/test/fielddecl.cpp @@ -4,12 +4,12 @@ namespace fielddecl_ns{ struct testStruct { int fieldone; - float fieldtwo; + float testfieldtwo; int fieldmacro; }; union testUnion { - int fieldone; + int testfieldone; bool fieldtwo; }; @@ -18,7 +18,7 @@ public: testClass(void); virtual ~testClass(); - void myMethod(void); + void testMethod(void); private: int an_arg; diff --git a/test/function.cpp b/test/function.cpp index 83878e7..bb0f228 100644 --- a/test/function.cpp +++ b/test/function.cpp @@ -1,6 +1,6 @@ namespace function_ns{ -void MyFunc(void) { return; } +void testMyFunc(void) { return; } class yolo { public: @@ -8,7 +8,7 @@ public: yolo(int a) : a(a) {} virtual ~yolo(); - void yolofunc(void) { return; } + void testyolofunc(void) { return; } private: int a; @@ -16,5 +16,5 @@ private: #define MFunc macroedFunc -void MFunc(void) { return; } +void testFunc(void) { return; } } // namespace diff --git a/test/test_list.md b/test/test_list.md index e39ea5e..39b2f02 100644 --- a/test/test_list.md +++ b/test/test_list.md @@ -1,22 +1,22 @@ ## Test List -- [x] function declaration -- [x] field declratation -- [x] cxx method declaration -- [x] variable declaration -- [x] class declaration -- [x] struct declaration -- [x] union declaration/definition -- [x] named declaration/definition -- [x] declaration reference expression -- [x] call expression -- [x] cxx member call expression -- [x] cxx record declaration -- [] macro definition -- [] header inclusion directive +- [x] function declaration +- [x] field declratation +- [x] cxx method declaration +- [x] variable declaration +- [x] class declaration +- [x] struct declaration +- [x] union declaration/definition +- [x] named declaration/definition +- [x] declaration reference expression +- [x] call expression +- [x] cxx member call expression +- [x] cxx record declaration +- [] macro definition +- [] header inclusion directive ## Cross Test List -* macro expansion behaviour -* overload +- macro expansion behaviour +- overload diff --git a/test/vardecl.cpp b/test/vardecl.cpp index 3f17a21..8bce877 100644 --- a/test/vardecl.cpp +++ b/test/vardecl.cpp @@ -1,21 +1,21 @@ namespace vardecl_ns{ -int a; +int gtesta; int testFunction(int a, int b); int testFunction(int a, int b) { return a + b; } class testClass { public: - testClass(int a) : a(a) {} + testClass(int a) : testa(a) {} virtual ~testClass(); void cxxMethod(double a) {} private: - int a; + int testa; }; #define vardeclmacro varDeclMacroExpanded -int vardeclmacro; +int testvardeclmacro; }; // namespace diff --git a/testscript/main.py b/testscript/main.py index 285f993..90b7737 100755 --- a/testscript/main.py +++ b/testscript/main.py @@ -9,6 +9,20 @@ import re test_files = ["/home/bloodstalker/extra/cgrep/cgrep.cpp"] +test_files_2 = [ + "./test/function.cpp", + "./test/fielddecl.cpp", + "./test/cxxmethoddecl.cpp", + "./test/vardecl.cpp", + "./test/classdecl.cpp", + "./test/structdecl.cpp", + "./test/uniondecdef.cpp", + "./test/nameddecldef.cpp", + "./test/declrefexpr.cpp", + "./test/callexpr.cpp", + "./test/cxxmembercallexpr.cpp", + ] + cgrep_test_args = [ "-A 1 -B 1 --func --var --regex n[aA]m", "-A 1 -B 1 --func --var --awk --regex n[aA]m", @@ -25,18 +39,17 @@ cgrep_test_args = [ "--dir ./ --regex run --func",] cgrep_test_args_2 = [ - "--regex test --func", - "--regex test --fielddecl", - "--regex test --memfunc", - "--regex test --var", - "--regex test --class", - "--regex test --struct", - "--regex test --union", - "--regex test --nameddecl", - "--regex test --declrefexpr", - "--regex test --call", - "--regex test --cxxcall", - "--regex test --", + "--func --regex test", + "--cxxfield --regex test", + "--memfunc --regex test", + "--var --regex test", + "--class --regex test", + "--struct --regex test", + "--union --regex test", + "--nameddecl --regex test", + "--declrefexpr --regex test", + "--call --regex test", + "--cxxcall --regex test", ] class Argparser(object): @@ -81,11 +94,11 @@ def main(): llvm_version = re.findall("[0-9]*\.[0-9]*\.[0-9]*", call_from_shell_list(["llvm-config", "--version"]).stdout.decode("utf-8")) # buld the magic sause. we dont wanna get stddef.h not found. clang_builtin_headers = "--extra-arg=-I" + llvm_libdir.stdout.decode("utf-8")[:-1] + "/clang/" + llvm_version[0] + "/include" - for cgrep_test_arg in cgrep_test_args: + for cgrep_test_arg, cgrep_test_files in zip(cgrep_test_args_2, test_files_2): arg_list = cgrep_test_arg.split() arg_list.insert(0, cgrep_exe) - arg_list.append(clang_builtin_headers) - arg_list.append(test_files[0]) + arg_list.insert(1, clang_builtin_headers) + arg_list.append(cgrep_test_files) print(arg_list) ret = call_from_shell_list(arg_list) print("ret:", ret.stdout.decode("utf-8"), end="") -- cgit v1.2.3