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