1
+ #!/usr/bin/wsjcpp-safe-scripting
2
+
3
+ # log_info rootdir
4
+ # log_info script_filename
5
+
6
+ make_dir "./unit-tests.wsjcpp"
7
+ make_dir "./unit-tests.wsjcpp/src"
8
+
9
+ var user_class_name
10
+ set_value user_class_name arg1
11
+ normalize_class_name user_class_name
12
+ var class_name
13
+ set_value class_name "UnitTest"
14
+ concat class_name user_class_name
15
+
16
+ var base_filename
17
+ convert_CamelCase_to_snake_case class_name base_filename
18
+ # log_info base_filename
19
+
20
+ var filename_cpp
21
+ concat filename_cpp "./unit-tests.wsjcpp/src/" base_filename ".cpp"
22
+
23
+ var filename_h
24
+ concat filename_h "./unit-tests.wsjcpp/src/" base_filename ".h"
25
+
26
+ var ifndef_header
27
+ set_value ifndef_header base_filename
28
+ concat ifndef_header "_H"
29
+
30
+ to_upper_case ifndef_header
31
+
32
+ var content_header
33
+ concat content_header "#ifndef " ifndef_header "
34
+ #define " ifndef_header "
35
+
36
+ #include <wsjcpp_unit_tests.h>
37
+
38
+ class " class_name " : public WsjcppUnitTestBase {
39
+ public:
40
+ " class_name "();
41
+ virtual bool doBeforeTest() override;
42
+ virtual void executeTest() override;
43
+ virtual bool doAfterTest() override;
44
+ };
45
+
46
+ #endif // " ifndef_header
47
+
48
+
49
+ var content_source
50
+ concat content_source "
51
+ #include \"" base_filename ".h\"
52
+ #include <wsjcpp_core.h>
53
+
54
+ // ---------------------------------------------------------------------
55
+ // " class_name "
56
+
57
+ REGISTRY_WSJCPP_UNIT_TEST(" class_name ")
58
+
59
+ " class_name "::" class_name "()
60
+ : WsjcppUnitTestBase(\"" class_name "\") {
61
+ }
62
+
63
+ // ---------------------------------------------------------------------
64
+
65
+ bool " class_name "::doBeforeTest() {
66
+ // nothing
67
+ return true;
68
+ }
69
+
70
+ // ---------------------------------------------------------------------
71
+
72
+ void " class_name "::executeTest() {
73
+ compare(\"Not implemented\", true, false);
74
+ // TODO unit test source code here
75
+ }
76
+
77
+ // ---------------------------------------------------------------------
78
+
79
+ bool " class_name "::doAfterTest() {
80
+ // nothing
81
+ return true;
82
+ }
83
+
84
+ "
85
+
86
+ var file_source
87
+ concat file_source "src/" filename_cpp
88
+
89
+ write_file filename_h content_header
90
+ write_file filename_cpp content_source
91
+
92
+ log_info "
93
+ ======
94
+ Generated class:
95
+ - " class_name "
96
+ Generated files:
97
+ - " filename_h "
98
+ - " filename_cpp "
99
+ ======
100
+ "
101
+
102
+ wsjcpp_yml_unit_test_add user_class_name filename_h
103
+ wsjcpp_yml_unit_test_add user_class_name filename_cpp
0 commit comments