ceedling 0.21.0 → 0.22.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +1 -0
- data/bin/ceedling +3 -5
- data/ceedling-0.21.0.gem +0 -0
- data/ceedling.gemspec +1 -0
- data/lib/ceedling/configurator.rb +7 -1
- data/lib/ceedling/configurator_plugins.rb +21 -21
- data/lib/ceedling/generator_test_runner.rb +3 -46
- data/lib/ceedling/setupinator.rb +1 -0
- data/lib/ceedling/version.rb +4 -4
- data/plugins/module_generator/lib/module_generator.rb +14 -127
- data/plugins/module_generator/module_generator.rake +15 -3
- data/spec/spec_system_helper.rb +1 -1
- data/vendor/c_exception/release/build.info +1 -1
- data/vendor/c_exception/release/version.info +1 -1
- data/vendor/c_exception/vendor/unity/auto/generate_module.rb +202 -146
- data/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +1 -1
- data/vendor/c_exception/vendor/unity/examples/example_1/makefile +1 -1
- data/vendor/c_exception/vendor/unity/examples/example_2/makefile +1 -1
- data/vendor/c_exception/vendor/unity/examples/unity_config.h +11 -19
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +22 -26
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +9 -9
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +15 -6
- data/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +15 -15
- data/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +7 -13
- data/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +6 -6
- data/vendor/c_exception/vendor/unity/extras/fixture/test/template_fixture_tests.c +6 -6
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +36 -29
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +6 -6
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +6 -6
- data/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +6 -6
- data/vendor/c_exception/vendor/unity/release/build.info +1 -1
- data/vendor/c_exception/vendor/unity/release/version.info +1 -1
- data/vendor/c_exception/vendor/unity/src/unity.c +45 -72
- data/vendor/c_exception/vendor/unity/src/unity.h +3 -4
- data/vendor/c_exception/vendor/unity/src/unity_internals.h +71 -109
- data/vendor/c_exception/vendor/unity/test/Makefile +25 -13
- data/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +0 -1
- data/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +0 -1
- data/vendor/c_exception/vendor/unity/test/tests/testparameterized.c +11 -5
- data/vendor/c_exception/vendor/unity/test/tests/testunity.c +32 -29
- data/vendor/cmock/docs/CMock_Summary.md +4 -0
- data/vendor/cmock/lib/cmock_config.rb +7 -2
- data/vendor/cmock/lib/cmock_generator.rb +9 -1
- data/vendor/cmock/release/build.info +1 -1
- data/vendor/cmock/release/version.info +1 -1
- data/vendor/cmock/test/unit/cmock_generator_main_test.rb +7 -0
- data/vendor/cmock/vendor/c_exception/release/build.info +1 -1
- data/vendor/cmock/vendor/c_exception/release/version.info +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_module.rb +202 -146
- data/vendor/cmock/vendor/c_exception/vendor/unity/auto/generate_test_runner.rb +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_1/makefile +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/example_2/makefile +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/examples/unity_config.h +11 -19
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.c +22 -26
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture.h +9 -9
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_internals.h +15 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +15 -15
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/Makefile +7 -13
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/main/AllTests.c +6 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/template_fixture_tests.c +6 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_Test.c +36 -29
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +6 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.c +6 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/extras/fixture/test/unity_output_Spy.h +6 -6
- data/vendor/cmock/vendor/c_exception/vendor/unity/release/build.info +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/release/version.info +1 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.c +45 -72
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity.h +3 -4
- data/vendor/cmock/vendor/c_exception/vendor/unity/src/unity_internals.h +71 -109
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/Makefile +25 -13
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_32.yml +0 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_64.yml +0 -1
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testparameterized.c +11 -5
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/tests/testunity.c +32 -29
- data/vendor/cmock/vendor/unity/auto/generate_module.rb +202 -146
- data/vendor/cmock/vendor/unity/auto/generate_test_runner.rb +1 -1
- data/vendor/cmock/vendor/unity/examples/example_1/makefile +1 -1
- data/vendor/cmock/vendor/unity/examples/example_2/makefile +1 -1
- data/vendor/cmock/vendor/unity/examples/unity_config.h +11 -19
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.c +22 -26
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture.h +9 -9
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_internals.h +15 -6
- data/vendor/cmock/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +15 -15
- data/vendor/cmock/vendor/unity/extras/fixture/test/Makefile +7 -13
- data/vendor/cmock/vendor/unity/extras/fixture/test/main/AllTests.c +6 -6
- data/vendor/cmock/vendor/unity/extras/fixture/test/template_fixture_tests.c +6 -6
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_Test.c +36 -29
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +6 -6
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.c +6 -6
- data/vendor/cmock/vendor/unity/extras/fixture/test/unity_output_Spy.h +6 -6
- data/vendor/cmock/vendor/unity/release/build.info +1 -1
- data/vendor/cmock/vendor/unity/release/version.info +1 -1
- data/vendor/cmock/vendor/unity/src/unity.c +45 -72
- data/vendor/cmock/vendor/unity/src/unity.h +3 -4
- data/vendor/cmock/vendor/unity/src/unity_internals.h +71 -109
- data/vendor/cmock/vendor/unity/test/Makefile +25 -13
- data/vendor/cmock/vendor/unity/test/targets/gcc_32.yml +0 -1
- data/vendor/cmock/vendor/unity/test/targets/gcc_64.yml +0 -1
- data/vendor/cmock/vendor/unity/test/tests/testparameterized.c +11 -5
- data/vendor/cmock/vendor/unity/test/tests/testunity.c +32 -29
- data/vendor/unity/auto/generate_module.rb +202 -146
- data/vendor/unity/auto/generate_test_runner.rb +1 -1
- data/vendor/unity/examples/example_1/makefile +1 -1
- data/vendor/unity/examples/example_2/makefile +1 -1
- data/vendor/unity/examples/unity_config.h +11 -19
- data/vendor/unity/extras/fixture/src/unity_fixture.c +22 -26
- data/vendor/unity/extras/fixture/src/unity_fixture.h +9 -9
- data/vendor/unity/extras/fixture/src/unity_fixture_internals.h +15 -6
- data/vendor/unity/extras/fixture/src/unity_fixture_malloc_overrides.h +15 -15
- data/vendor/unity/extras/fixture/test/Makefile +7 -13
- data/vendor/unity/extras/fixture/test/main/AllTests.c +6 -6
- data/vendor/unity/extras/fixture/test/template_fixture_tests.c +6 -6
- data/vendor/unity/extras/fixture/test/unity_fixture_Test.c +36 -29
- data/vendor/unity/extras/fixture/test/unity_fixture_TestRunner.c +6 -6
- data/vendor/unity/extras/fixture/test/unity_output_Spy.c +6 -6
- data/vendor/unity/extras/fixture/test/unity_output_Spy.h +6 -6
- data/vendor/unity/release/build.info +1 -1
- data/vendor/unity/release/version.info +1 -1
- data/vendor/unity/src/unity.c +45 -72
- data/vendor/unity/src/unity.h +3 -4
- data/vendor/unity/src/unity_internals.h +71 -109
- data/vendor/unity/test/Makefile +25 -13
- data/vendor/unity/test/targets/gcc_32.yml +0 -1
- data/vendor/unity/test/targets/gcc_64.yml +0 -1
- data/vendor/unity/test/tests/testparameterized.c +11 -5
- data/vendor/unity/test/tests/testunity.c +32 -29
- metadata +17 -6
- data/vendor/c_exception/vendor/unity/test/targets/gcc_auto_sizeof.yml +0 -48
- data/vendor/cmock/vendor/c_exception/vendor/unity/test/targets/gcc_auto_sizeof.yml +0 -48
- data/vendor/cmock/vendor/unity/test/targets/gcc_auto_sizeof.yml +0 -48
- data/vendor/unity/test/targets/gcc_auto_sizeof.yml +0 -48
@@ -1,9 +1,15 @@
|
|
1
|
-
CC
|
1
|
+
CC = gcc
|
2
2
|
ifeq ($(shell uname -s), Darwin)
|
3
|
-
CC
|
3
|
+
CC = clang
|
4
|
+
CFLAGS += -std=c99 -pedantic -Wall -Weverything -Werror
|
5
|
+
CFLAGS += -Wno-unknown-warning-option -Wno-switch-enum
|
6
|
+
CFLAGS += -Wno-padded -Wno-double-promotion -Wno-missing-noreturn
|
7
|
+
CFLAGS += -Wno-missing-prototypes
|
8
|
+
endif
|
9
|
+
ifeq ($(shell uname -s), Linux)
|
10
|
+
CFLAGS += -std=c99 -pedantic -Wall -Wextra -Werror
|
4
11
|
endif
|
5
12
|
#DEBUG = -O0 -g
|
6
|
-
CFLAGS += -std=c99 -pedantic -Wall -Wextra -Werror -Wredundant-decls
|
7
13
|
CFLAGS += $(DEBUG)
|
8
14
|
DEFINES = -D UNITY_OUTPUT_CHAR=putcharSpy
|
9
15
|
DEFINES += -D UNITY_SUPPORT_64 -D UNITY_INCLUDE_DOUBLE -D UNITY_NO_WEAK
|
@@ -14,10 +20,9 @@ BUILD_DIR = build
|
|
14
20
|
TARGET = build/testunity-cov.exe
|
15
21
|
|
16
22
|
# To generate coverage, call 'make -s', the default target runs.
|
17
|
-
# To see missing coverage, follow up with 'make uncovered'.
|
18
23
|
# For verbose output of all the tests, run 'make test'.
|
19
24
|
default: coverage
|
20
|
-
.PHONY: default coverage
|
25
|
+
.PHONY: default coverage test clean
|
21
26
|
coverage: $(BUILD_DIR)/testunityRunner.c
|
22
27
|
cd $(BUILD_DIR) && \
|
23
28
|
$(CC) $(CFLAGS) $(DEFINES) $(foreach i,$(SRC), ../$i) $(COV_FLAGS) -o ../$(TARGET)
|
@@ -28,21 +33,28 @@ coverage: $(BUILD_DIR)/testunityRunner.c
|
|
28
33
|
grep '###' $(BUILD_DIR)/unity.c.gcov -C2 || true
|
29
34
|
|
30
35
|
test: CFLAGS += -Wbad-function-cast -Wcast-qual -Wconversion -Wformat=2 -Wold-style-definition \
|
31
|
-
-Wpointer-arith -Wshadow -Wstrict-overflow=5 -Wstrict-prototypes
|
32
|
-
-Wunreachable-code -Wunused -fstrict-aliasing
|
36
|
+
-Wpointer-arith -Wredundant-decls -Wshadow -Wstrict-overflow=5 -Wstrict-prototypes \
|
37
|
+
-Wswitch-default -Wundef -Wunreachable-code -Wunused -fstrict-aliasing
|
33
38
|
test: $(BUILD_DIR)/testunityRunner.c
|
34
39
|
$(CC) $(CFLAGS) $(DEFINES) $(INC_DIR) $(SRC) -o $(TARGET)
|
35
40
|
./$(TARGET)
|
36
41
|
|
42
|
+
# Compile only, for testing that preprocessor detection works
|
43
|
+
UNITY_C_ONLY =-c ../src/unity.c -o $(BUILD_DIR)/unity.o
|
44
|
+
intDetection:
|
45
|
+
$(CC) $(CFLAGS) $(INC_DIR) $(UNITY_C_ONLY) -D UNITY_EXCLUDE_STDINT_H
|
46
|
+
$(CC) $(CFLAGS) $(INC_DIR) $(UNITY_C_ONLY) -D UNITY_EXCLUDE_LIMITS_H
|
47
|
+
|
37
48
|
$(BUILD_DIR)/testunityRunner.c: tests/testunity.c | $(BUILD_DIR)
|
38
49
|
awk $(AWK_SCRIPT) tests/testunity.c > $@
|
39
50
|
|
40
|
-
AWK_SCRIPT
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
51
|
+
AWK_SCRIPT=\
|
52
|
+
'/^void test/{ declarations[d++]=$$0; gsub(/\(?void\)? ?/,""); tests[t++]=$$0; line[u++]=NR } \
|
53
|
+
END{ print "\#include \"unity.h\" /* Autogenerated by awk in Makefile */" ; \
|
54
|
+
for (i=0; i<d; i++) { print declarations[i] ";" } \
|
55
|
+
printf "int main(void)\n{\n UNITY_BEGIN();\n" ; \
|
56
|
+
for (i=0; i<t; i++) { print " RUN_TEST(" tests[i] ", " line[i] ");" } \
|
57
|
+
printf " return UNITY_END();\n}\n" }'
|
46
58
|
|
47
59
|
$(BUILD_DIR):
|
48
60
|
mkdir -p $(BUILD_DIR)
|
@@ -18,20 +18,26 @@ void putcharSpy(int c) { (void)putchar(c);} // include passthrough for linking t
|
|
18
18
|
|
19
19
|
#define VERIFY_FAILS_END \
|
20
20
|
} \
|
21
|
-
Unity.CurrentTestFailed = (Unity.CurrentTestFailed
|
21
|
+
Unity.CurrentTestFailed = (Unity.CurrentTestFailed != 0) ? 0 : 1; \
|
22
22
|
if (Unity.CurrentTestFailed == 1) { \
|
23
23
|
SetToOneMeanWeAlreadyCheckedThisGuy = 1; \
|
24
|
-
|
24
|
+
UnityPrintNumberUnsigned(Unity.CurrentTestLineNumber); \
|
25
|
+
UNITY_OUTPUT_CHAR(':'); \
|
26
|
+
UnityPrint(Unity.CurrentTestName); \
|
27
|
+
UnityPrint(":FAIL: [[[[ Test Should Have Failed But Did Not ]]]]"); \
|
25
28
|
UNITY_OUTPUT_CHAR('\n'); \
|
26
29
|
}
|
27
30
|
|
28
31
|
#define VERIFY_IGNORES_END \
|
29
32
|
} \
|
30
|
-
Unity.CurrentTestFailed = (Unity.CurrentTestIgnored
|
33
|
+
Unity.CurrentTestFailed = (Unity.CurrentTestIgnored != 0) ? 0 : 1; \
|
31
34
|
Unity.CurrentTestIgnored = 0; \
|
32
35
|
if (Unity.CurrentTestFailed == 1) { \
|
33
36
|
SetToOneMeanWeAlreadyCheckedThisGuy = 1; \
|
34
|
-
|
37
|
+
UnityPrintNumberUnsigned(Unity.CurrentTestLineNumber); \
|
38
|
+
UNITY_OUTPUT_CHAR(':'); \
|
39
|
+
UnityPrint(Unity.CurrentTestName); \
|
40
|
+
UnityPrint(":FAIL: [[[[ Test Should Have Ignored But Did Not ]]]]"); \
|
35
41
|
UNITY_OUTPUT_CHAR('\n'); \
|
36
42
|
}
|
37
43
|
|
@@ -50,7 +56,7 @@ void tearDown(void)
|
|
50
56
|
TEST_FAIL_MESSAGE("<= Failed in tearDown");
|
51
57
|
if ((SetToOneMeanWeAlreadyCheckedThisGuy == 0) && (Unity.CurrentTestFailed > 0))
|
52
58
|
{
|
53
|
-
UnityPrint("[[[[
|
59
|
+
UnityPrint(": [[[[ Test Should Have Passed But Did Not ]]]]");
|
54
60
|
UNITY_OUTPUT_CHAR('\n');
|
55
61
|
}
|
56
62
|
}
|
@@ -4,8 +4,8 @@
|
|
4
4
|
[Released under MIT License. Please refer to license.txt for details]
|
5
5
|
========================================== */
|
6
6
|
|
7
|
-
#include <setjmp.h>
|
8
7
|
#include "unity.h"
|
8
|
+
#include <setjmp.h>
|
9
9
|
#include <string.h>
|
10
10
|
|
11
11
|
// Dividing by these constants produces +/- infinity.
|
@@ -19,31 +19,42 @@ static const _UD d_zero = 0.0;
|
|
19
19
|
#endif
|
20
20
|
|
21
21
|
#define EXPECT_ABORT_BEGIN \
|
22
|
+
startPutcharSpy(); \
|
22
23
|
if (TEST_PROTECT()) \
|
23
24
|
{
|
24
25
|
|
25
26
|
#define VERIFY_FAILS_END \
|
26
27
|
} \
|
28
|
+
endPutcharSpy(); /* start/end Spy to suppress output of failure message */ \
|
27
29
|
Unity.CurrentTestFailed = (Unity.CurrentTestFailed == 1) ? 0 : 1; \
|
28
30
|
if (Unity.CurrentTestFailed == 1) { \
|
29
31
|
SetToOneMeanWeAlreadyCheckedThisGuy = 1; \
|
30
32
|
UnityPrintNumberUnsigned(Unity.CurrentTestLineNumber); \
|
31
33
|
UNITY_OUTPUT_CHAR(':'); \
|
32
34
|
UnityPrint(Unity.CurrentTestName); \
|
33
|
-
UnityPrint("[[[[
|
35
|
+
UnityPrint(":FAIL: [[[[ Test Should Have Failed But Did Not ]]]]"); \
|
34
36
|
UNITY_OUTPUT_CHAR('\n'); \
|
35
37
|
}
|
36
38
|
|
37
39
|
#define VERIFY_IGNORES_END \
|
38
40
|
} \
|
41
|
+
endPutcharSpy(); /* start/end Spy to suppress output of ignore message */ \
|
39
42
|
Unity.CurrentTestFailed = (Unity.CurrentTestIgnored == 1) ? 0 : 1; \
|
40
43
|
Unity.CurrentTestIgnored = 0; \
|
41
44
|
if (Unity.CurrentTestFailed == 1) { \
|
42
45
|
SetToOneMeanWeAlreadyCheckedThisGuy = 1; \
|
43
|
-
|
46
|
+
UnityPrintNumberUnsigned(Unity.CurrentTestLineNumber); \
|
47
|
+
UNITY_OUTPUT_CHAR(':'); \
|
48
|
+
UnityPrint(Unity.CurrentTestName); \
|
49
|
+
UnityPrint(":FAIL: [[[[ Test Should Have Ignored But Did Not ]]]]"); \
|
44
50
|
UNITY_OUTPUT_CHAR('\n'); \
|
45
51
|
}
|
46
52
|
|
53
|
+
void startPutcharSpy(void);
|
54
|
+
void endPutcharSpy(void);
|
55
|
+
char* getBufferPutcharSpy(void);
|
56
|
+
void putcharSpy(int c);
|
57
|
+
|
47
58
|
static int SetToOneToFailInTearDown;
|
48
59
|
static int SetToOneMeanWeAlreadyCheckedThisGuy;
|
49
60
|
|
@@ -59,7 +70,7 @@ void tearDown(void)
|
|
59
70
|
TEST_FAIL_MESSAGE("<= Failed in tearDown");
|
60
71
|
if ((SetToOneMeanWeAlreadyCheckedThisGuy == 0) && (Unity.CurrentTestFailed > 0))
|
61
72
|
{
|
62
|
-
UnityPrint("[[[[
|
73
|
+
UnityPrint(": [[[[ Test Should Have Passed But Did Not ]]]]");
|
63
74
|
UNITY_OUTPUT_CHAR('\n');
|
64
75
|
}
|
65
76
|
}
|
@@ -1370,7 +1381,7 @@ void testNotEqualString4(void)
|
|
1370
1381
|
void testNotEqualStringLen4(void)
|
1371
1382
|
{
|
1372
1383
|
EXPECT_ABORT_BEGIN
|
1373
|
-
TEST_ASSERT_EQUAL_STRING_LEN("\r\x16", "
|
1384
|
+
TEST_ASSERT_EQUAL_STRING_LEN("ba\r\x16", "ba\r\n", 4);
|
1374
1385
|
VERIFY_FAILS_END
|
1375
1386
|
}
|
1376
1387
|
|
@@ -2272,6 +2283,14 @@ void testFailureCountIncrementsAndIsReturnedAtEnd(void)
|
|
2272
2283
|
TEST_ASSERT_EQUAL(1, failures);
|
2273
2284
|
}
|
2274
2285
|
|
2286
|
+
void testCstringsEscapeSequence(void)
|
2287
|
+
{
|
2288
|
+
startPutcharSpy();
|
2289
|
+
UnityPrint("\x16\x10");
|
2290
|
+
endPutcharSpy();
|
2291
|
+
TEST_ASSERT_EQUAL_STRING("\\x16\\x10", getBufferPutcharSpy());
|
2292
|
+
}
|
2293
|
+
|
2275
2294
|
#define TEST_ASSERT_EQUAL_PRINT_NUMBERS(expected, actual) { \
|
2276
2295
|
startPutcharSpy(); UnityPrintNumber((actual)); endPutcharSpy(); \
|
2277
2296
|
TEST_ASSERT_EQUAL_STRING((expected), getBufferPutcharSpy()); \
|
@@ -2778,14 +2797,12 @@ void testFloatsNotEqualExpectedNaN(void)
|
|
2778
2797
|
#endif
|
2779
2798
|
}
|
2780
2799
|
|
2781
|
-
void
|
2800
|
+
void testFloatsEqualBothNaN(void)
|
2782
2801
|
{
|
2783
2802
|
#ifdef UNITY_EXCLUDE_FLOAT
|
2784
2803
|
TEST_IGNORE();
|
2785
2804
|
#else
|
2786
|
-
EXPECT_ABORT_BEGIN
|
2787
2805
|
TEST_ASSERT_EQUAL_FLOAT(0.0f / f_zero, 0.0f / f_zero);
|
2788
|
-
VERIFY_FAILS_END
|
2789
2806
|
#endif
|
2790
2807
|
}
|
2791
2808
|
|
@@ -2833,14 +2850,12 @@ void testFloatsNotEqualExpectedInf(void)
|
|
2833
2850
|
#endif
|
2834
2851
|
}
|
2835
2852
|
|
2836
|
-
void
|
2853
|
+
void testFloatsEqualBothInf(void)
|
2837
2854
|
{
|
2838
2855
|
#ifdef UNITY_EXCLUDE_FLOAT
|
2839
2856
|
TEST_IGNORE();
|
2840
2857
|
#else
|
2841
|
-
EXPECT_ABORT_BEGIN
|
2842
2858
|
TEST_ASSERT_EQUAL_FLOAT(1.0f / f_zero, 1.0f / f_zero);
|
2843
|
-
VERIFY_FAILS_END
|
2844
2859
|
#endif
|
2845
2860
|
}
|
2846
2861
|
|
@@ -3175,7 +3190,7 @@ void testNotEqualFloatArraysNegative3(void)
|
|
3175
3190
|
#endif
|
3176
3191
|
}
|
3177
3192
|
|
3178
|
-
void
|
3193
|
+
void testEqualFloatArraysNaN(void)
|
3179
3194
|
{
|
3180
3195
|
#ifdef UNITY_EXCLUDE_FLOAT
|
3181
3196
|
TEST_IGNORE();
|
@@ -3183,13 +3198,11 @@ void testNotEqualFloatArraysNaN(void)
|
|
3183
3198
|
float p0[] = {1.0f, 0.0f / f_zero, 25.4f, 0.253f};
|
3184
3199
|
float p1[] = {1.0f, 0.0f / f_zero, 25.4f, 0.253f};
|
3185
3200
|
|
3186
|
-
EXPECT_ABORT_BEGIN
|
3187
3201
|
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
|
3188
|
-
VERIFY_FAILS_END
|
3189
3202
|
#endif
|
3190
3203
|
}
|
3191
3204
|
|
3192
|
-
void
|
3205
|
+
void testEqualFloatArraysInf(void)
|
3193
3206
|
{
|
3194
3207
|
#ifdef UNITY_EXCLUDE_FLOAT
|
3195
3208
|
TEST_IGNORE();
|
@@ -3197,9 +3210,7 @@ void testNotEqualFloatArraysInf(void)
|
|
3197
3210
|
float p0[] = {1.0f, 1.0f / f_zero, 25.4f, 0.253f};
|
3198
3211
|
float p1[] = {1.0f, 1.0f / f_zero, 25.4f, 0.253f};
|
3199
3212
|
|
3200
|
-
EXPECT_ABORT_BEGIN
|
3201
3213
|
TEST_ASSERT_EQUAL_FLOAT_ARRAY(p0, p1, 4);
|
3202
|
-
VERIFY_FAILS_END
|
3203
3214
|
#endif
|
3204
3215
|
}
|
3205
3216
|
|
@@ -3310,14 +3321,12 @@ void testDoublesNotEqualExpectedNaN(void)
|
|
3310
3321
|
#endif
|
3311
3322
|
}
|
3312
3323
|
|
3313
|
-
void
|
3324
|
+
void testDoublesEqualBothNaN(void)
|
3314
3325
|
{
|
3315
3326
|
#ifdef UNITY_EXCLUDE_DOUBLE
|
3316
3327
|
TEST_IGNORE();
|
3317
3328
|
#else
|
3318
|
-
EXPECT_ABORT_BEGIN
|
3319
3329
|
TEST_ASSERT_EQUAL_DOUBLE(0.0 / d_zero, 0.0 / d_zero);
|
3320
|
-
VERIFY_FAILS_END
|
3321
3330
|
#endif
|
3322
3331
|
}
|
3323
3332
|
|
@@ -3365,14 +3374,12 @@ void testDoublesNotEqualExpectedInf(void)
|
|
3365
3374
|
#endif
|
3366
3375
|
}
|
3367
3376
|
|
3368
|
-
void
|
3377
|
+
void testDoublesEqualBothInf(void)
|
3369
3378
|
{
|
3370
3379
|
#ifdef UNITY_EXCLUDE_DOUBLE
|
3371
3380
|
TEST_IGNORE();
|
3372
3381
|
#else
|
3373
|
-
EXPECT_ABORT_BEGIN
|
3374
3382
|
TEST_ASSERT_EQUAL_DOUBLE(1.0 / d_zero, 1.0 / d_zero);
|
3375
|
-
VERIFY_FAILS_END
|
3376
3383
|
#endif
|
3377
3384
|
}
|
3378
3385
|
|
@@ -3706,7 +3713,7 @@ void testNotEqualDoubleArraysNegative3(void)
|
|
3706
3713
|
#endif
|
3707
3714
|
}
|
3708
3715
|
|
3709
|
-
void
|
3716
|
+
void testEqualDoubleArraysNaN(void)
|
3710
3717
|
{
|
3711
3718
|
#ifdef UNITY_EXCLUDE_DOUBLE
|
3712
3719
|
TEST_IGNORE();
|
@@ -3714,13 +3721,11 @@ void testNotEqualDoubleArraysNaN(void)
|
|
3714
3721
|
double p0[] = {1.0, 0.0 / d_zero, 25.4, 0.253};
|
3715
3722
|
double p1[] = {1.0, 0.0 / d_zero, 25.4, 0.253};
|
3716
3723
|
|
3717
|
-
EXPECT_ABORT_BEGIN
|
3718
3724
|
TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
|
3719
|
-
VERIFY_FAILS_END
|
3720
3725
|
#endif
|
3721
3726
|
}
|
3722
3727
|
|
3723
|
-
void
|
3728
|
+
void testEqualDoubleArraysInf(void)
|
3724
3729
|
{
|
3725
3730
|
#ifdef UNITY_EXCLUDE_DOUBLE
|
3726
3731
|
TEST_IGNORE();
|
@@ -3728,9 +3733,7 @@ void testNotEqualDoubleArraysInf(void)
|
|
3728
3733
|
double p0[] = {1.0, 1.0 / d_zero, 25.4, 0.253};
|
3729
3734
|
double p1[] = {1.0, 1.0 / d_zero, 25.4, 0.253};
|
3730
3735
|
|
3731
|
-
EXPECT_ABORT_BEGIN
|
3732
3736
|
TEST_ASSERT_EQUAL_DOUBLE_ARRAY(p0, p1, 4);
|
3733
|
-
VERIFY_FAILS_END
|
3734
3737
|
#endif
|
3735
3738
|
}
|
3736
3739
|
|
@@ -11,46 +11,8 @@
|
|
11
11
|
require 'rubygems'
|
12
12
|
require 'fileutils'
|
13
13
|
|
14
|
-
HERE = File.expand_path(File.dirname(__FILE__)) + '/'
|
15
|
-
|
16
|
-
#help text when requested
|
17
|
-
HELP_TEXT = [ "\nGENERATE MODULE\n-------- ------",
|
18
|
-
"\nUsage: ruby generate_module [options] module_name",
|
19
|
-
" -i\"include\" sets the path to output headers to 'include' (DEFAULT ../src)",
|
20
|
-
" -s\"../src\" sets the path to output source to '../src' (DEFAULT ../src)",
|
21
|
-
" -t\"C:/test\" sets the path to output source to 'C:/test' (DEFAULT ../test)",
|
22
|
-
" -p\"MCH\" sets the output pattern to MCH.",
|
23
|
-
" dh - driver hardware.",
|
24
|
-
" dih - driver interrupt hardware.",
|
25
|
-
" mch - model conductor hardware.",
|
26
|
-
" mvp - model view presenter.",
|
27
|
-
" src - just a single source module. (DEFAULT)",
|
28
|
-
" -d destroy module instead of creating it.",
|
29
|
-
" -u update subversion too (requires subversion command line)",
|
30
|
-
" -y\"my.yml\" selects a different yaml config file for module generation",
|
31
|
-
"" ].join("\n")
|
32
|
-
|
33
|
-
#Built in patterns
|
34
|
-
PATTERNS = { 'src' => {'' => { :inc => [] } },
|
35
|
-
'dh' => {'Driver' => { :inc => ['%1$sHardware.h'] },
|
36
|
-
'Hardware' => { :inc => [] }
|
37
|
-
},
|
38
|
-
'dih' => {'Driver' => { :inc => ['%1$sHardware.h', '%1$sInterrupt.h'] },
|
39
|
-
'Interrupt'=> { :inc => ['%1$sHardware.h'] },
|
40
|
-
'Hardware' => { :inc => [] }
|
41
|
-
},
|
42
|
-
'mch' => {'Model' => { :inc => [] },
|
43
|
-
'Conductor'=> { :inc => ['%1$sModel.h', '%1$sHardware.h'] },
|
44
|
-
'Hardware' => { :inc => [] }
|
45
|
-
},
|
46
|
-
'mvp' => {'Model' => { :inc => [] },
|
47
|
-
'Presenter'=> { :inc => ['%1$sModel.h', '%1$sView.h'] },
|
48
|
-
'View' => { :inc => [] }
|
49
|
-
}
|
50
|
-
}
|
51
|
-
|
52
14
|
#TEMPLATE_TST
|
53
|
-
TEMPLATE_TST
|
15
|
+
TEMPLATE_TST ||= %q[#include "unity.h"
|
54
16
|
%2$s#include "%1$s.h"
|
55
17
|
|
56
18
|
void setUp(void)
|
@@ -68,135 +30,229 @@ void test_%1$s_NeedToImplement(void)
|
|
68
30
|
]
|
69
31
|
|
70
32
|
#TEMPLATE_SRC
|
71
|
-
TEMPLATE_SRC
|
33
|
+
TEMPLATE_SRC ||= %q[%2$s#include "%1$s.h"
|
72
34
|
]
|
73
35
|
|
74
36
|
#TEMPLATE_INC
|
75
|
-
TEMPLATE_INC
|
37
|
+
TEMPLATE_INC ||= %q[#ifndef _%3$s_H
|
76
38
|
#define _%3$s_H%2$s
|
77
39
|
|
78
40
|
#endif // _%3$s_H
|
79
41
|
]
|
80
42
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
43
|
+
class UnityModuleGenerator
|
44
|
+
|
45
|
+
############################
|
46
|
+
def initialize(options=nil)
|
47
|
+
|
48
|
+
here = File.expand_path(File.dirname(__FILE__)) + '/'
|
49
|
+
|
50
|
+
@options = UnityModuleGenerator.default_options
|
51
|
+
case(options)
|
52
|
+
when NilClass then @options
|
53
|
+
when String then @options.merge!(UnityModuleGenerator.grab_config(options))
|
54
|
+
when Hash then @options.merge!(options)
|
55
|
+
else raise "If you specify arguments, it should be a filename or a hash of options"
|
56
|
+
end
|
57
|
+
|
58
|
+
# Create default file paths if none were provided
|
59
|
+
@options[:path_src] = here + "../src/" if @options[:path_src].nil?
|
60
|
+
@options[:path_inc] = @options[:path_src] if @options[:path_inc].nil?
|
61
|
+
@options[:path_tst] = here + "../test/" if @options[:path_tst].nil?
|
62
|
+
@options[:path_src] += '/' unless (@options[:path_src][-1] == 47)
|
63
|
+
@options[:path_inc] += '/' unless (@options[:path_inc][-1] == 47)
|
64
|
+
@options[:path_tst] += '/' unless (@options[:path_tst][-1] == 47)
|
65
|
+
|
66
|
+
#Built in patterns
|
67
|
+
@patterns = { 'src' => {'' => { :inc => [] } },
|
68
|
+
'dh' => {'Driver' => { :inc => ['%1$sHardware.h'] },
|
69
|
+
'Hardware' => { :inc => [] }
|
70
|
+
},
|
71
|
+
'dih' => {'Driver' => { :inc => ['%1$sHardware.h', '%1$sInterrupt.h'] },
|
72
|
+
'Interrupt'=> { :inc => ['%1$sHardware.h'] },
|
73
|
+
'Hardware' => { :inc => [] }
|
74
|
+
},
|
75
|
+
'mch' => {'Model' => { :inc => [] },
|
76
|
+
'Conductor'=> { :inc => ['%1$sModel.h', '%1$sHardware.h'] },
|
77
|
+
'Hardware' => { :inc => [] }
|
78
|
+
},
|
79
|
+
'mvp' => {'Model' => { :inc => [] },
|
80
|
+
'Presenter'=> { :inc => ['%1$sModel.h', '%1$sView.h'] },
|
81
|
+
'View' => { :inc => [] }
|
82
|
+
}
|
83
|
+
}
|
99
84
|
end
|
100
|
-
end
|
101
|
-
raise "ERROR: You must have a Module name specified! (use option -h for help)" if @module_name.nil?
|
102
|
-
|
103
|
-
#load yaml file if one was requested
|
104
|
-
if @yaml_config
|
105
|
-
require 'yaml'
|
106
|
-
cfg = YAML.load_file(HERE + @yaml_config)[:generate_module]
|
107
|
-
@path_src = cfg[:defaults][:path_src] if @path_src.nil?
|
108
|
-
@path_inc = cfg[:defaults][:path_inc] if @path_inc.nil?
|
109
|
-
@path_tst = cfg[:defaults][:path_tst] if @path_tst.nil?
|
110
|
-
@update_svn = cfg[:defaults][:update_svn] if @update_svn.nil?
|
111
|
-
@extra_inc = cfg[:includes]
|
112
|
-
@boilerplates = cfg[:boilerplates]
|
113
|
-
else
|
114
|
-
@boilerplates = {}
|
115
|
-
end
|
116
85
|
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
{ :ext => '.h', :path => @path_inc, :template => TEMPLATE_INC, :inc => :inc, :boilerplate => @boilerplates[:inc] },
|
131
|
-
{ :ext => '.c', :path => @path_tst+'Test', :template => TEMPLATE_TST, :inc => :tst, :boilerplate => @boilerplates[:tst] },
|
132
|
-
]
|
133
|
-
|
134
|
-
#prepare the pattern for use
|
135
|
-
@patterns = PATTERNS[@pattern.downcase]
|
136
|
-
raise "ERROR: The design pattern specified isn't one that I recognize!" if @patterns.nil?
|
137
|
-
|
138
|
-
# Assemble the path/names of the files we need to work with.
|
139
|
-
files = []
|
140
|
-
TRIAD.each do |triad|
|
141
|
-
@patterns.each_pair do |pattern_file, pattern_traits|
|
142
|
-
files << {
|
143
|
-
:path => "#{triad[:path]}#{@module_name}#{pattern_file}#{triad[:ext]}",
|
144
|
-
:name => "#{@module_name}#{pattern_file}",
|
145
|
-
:template => triad[:template],
|
146
|
-
:boilerplate => triad[:boilerplate],
|
147
|
-
:includes => case(triad[:inc])
|
148
|
-
when :src then @includes[:src] | pattern_traits[:inc].map{|f| f % [@module_name]}
|
149
|
-
when :inc then @includes[:inc]
|
150
|
-
when :tst then @includes[:tst] | pattern_traits[:inc].map{|f| "Mock#{f}"% [@module_name]}
|
151
|
-
end
|
86
|
+
############################
|
87
|
+
def self.default_options
|
88
|
+
{
|
89
|
+
:pattern => "src",
|
90
|
+
:includes =>
|
91
|
+
{
|
92
|
+
:src => [],
|
93
|
+
:inc => [],
|
94
|
+
:tst => [],
|
95
|
+
},
|
96
|
+
:update_svn => false,
|
97
|
+
:boilerplates => {},
|
98
|
+
:test_prefix => 'Test',
|
152
99
|
}
|
153
100
|
end
|
154
|
-
end
|
155
101
|
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
102
|
+
############################
|
103
|
+
def self.grab_config(config_file)
|
104
|
+
options = self.default_options
|
105
|
+
unless (config_file.nil? or config_file.empty?)
|
106
|
+
require 'yaml'
|
107
|
+
yaml_guts = YAML.load_file(config_file)
|
108
|
+
options.merge!(yaml_guts[:unity] || yaml_guts[:cmock])
|
109
|
+
raise "No :unity or :cmock section found in #{config_file}" unless options
|
110
|
+
end
|
111
|
+
return(options)
|
112
|
+
end
|
113
|
+
|
114
|
+
############################
|
115
|
+
def files_to_operate_on(module_name, pattern=nil)
|
116
|
+
#create triad definition
|
117
|
+
prefix = @options[:test_prefix] || 'Test'
|
118
|
+
triad = [ { :ext => '.c', :path => @options[:path_src], :template => TEMPLATE_SRC, :inc => :src, :boilerplate => @options[:boilerplates][:src] },
|
119
|
+
{ :ext => '.h', :path => @options[:path_inc], :template => TEMPLATE_INC, :inc => :inc, :boilerplate => @options[:boilerplates][:inc] },
|
120
|
+
{ :ext => '.c', :path => @options[:path_tst]+prefix, :template => TEMPLATE_TST, :inc => :tst, :boilerplate => @options[:boilerplates][:tst] },
|
121
|
+
]
|
122
|
+
|
123
|
+
#prepare the pattern for use
|
124
|
+
patterns = @patterns[(pattern || @options[:pattern] || 'src').downcase]
|
125
|
+
raise "ERROR: The design pattern '#{pattern}' specified isn't one that I recognize!" if patterns.nil?
|
126
|
+
|
127
|
+
# Assemble the path/names of the files we need to work with.
|
128
|
+
files = []
|
129
|
+
triad.each do |triad|
|
130
|
+
patterns.each_pair do |pattern_file, pattern_traits|
|
131
|
+
files << {
|
132
|
+
:path => "#{triad[:path]}#{module_name}#{pattern_file}#{triad[:ext]}",
|
133
|
+
:name => "#{module_name}#{pattern_file}",
|
134
|
+
:template => triad[:template],
|
135
|
+
:boilerplate => triad[:boilerplate],
|
136
|
+
:includes => case(triad[:inc])
|
137
|
+
when :src then @options[:includes][:src] | pattern_traits[:inc].map{|f| f % [module_name]}
|
138
|
+
when :inc then @options[:includes][:inc]
|
139
|
+
when :tst then @options[:includes][:tst] | pattern_traits[:inc].map{|f| "Mock#{f}"% [module_name]}
|
140
|
+
end
|
141
|
+
}
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
return files
|
146
|
+
end
|
147
|
+
|
148
|
+
############################
|
149
|
+
def generate(module_name, pattern=nil)
|
150
|
+
|
151
|
+
files = files_to_operate_on(module_name, pattern)
|
152
|
+
|
153
|
+
#Abort if any module already exists
|
154
|
+
files.each do |file|
|
155
|
+
raise "ERROR: File #{file[:name]} already exists. Exiting." if File.exist?(file[:path])
|
156
|
+
end
|
157
|
+
|
158
|
+
# Create Source Modules
|
159
|
+
files.each_with_index do |file, i|
|
160
|
+
File.open(file[:path], 'w') do |f|
|
161
|
+
f.write(file[:boilerplate] % [file[:name]]) unless file[:boilerplate].nil?
|
162
|
+
f.write(file[:template] % [ file[:name],
|
163
|
+
file[:includes].map{|f| "#include \"#{f}\"\n"}.join,
|
164
|
+
file[:name].upcase ]
|
165
|
+
)
|
166
|
+
end
|
167
|
+
if (@options[:update_svn])
|
168
|
+
`svn add \"#{file[:path]}\"`
|
169
|
+
if $?.exitstatus == 0
|
170
|
+
puts "File #{file[:path]} created and added to source control"
|
171
|
+
else
|
172
|
+
puts "File #{file[:path]} created but FAILED adding to source control!"
|
173
|
+
end
|
164
174
|
else
|
165
|
-
|
166
|
-
puts "File #{file} deleted"
|
175
|
+
puts "File #{file[:path]} created"
|
167
176
|
end
|
168
|
-
else
|
169
|
-
puts "File #{file} does not exist so cannot be removed."
|
170
177
|
end
|
178
|
+
puts 'Generate Complete'
|
171
179
|
end
|
172
|
-
puts "Destroy Complete"
|
173
|
-
exit
|
174
|
-
end
|
175
180
|
|
176
|
-
|
177
|
-
|
178
|
-
raise "ERROR: File #{file[:name]} already exists. Exiting." if File.exist?(file[:path])
|
179
|
-
end
|
181
|
+
############################
|
182
|
+
def destroy(module_name, pattern=nil)
|
180
183
|
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
184
|
+
files_to_operate_on(module_name, pattern).each do |filespec|
|
185
|
+
file = filespec[:path]
|
186
|
+
if File.exist?(file)
|
187
|
+
if @options[:update_svn]
|
188
|
+
`svn delete \"#{file}\" --force`
|
189
|
+
puts "File #{file} deleted and removed from source control"
|
190
|
+
else
|
191
|
+
FileUtils.remove(file)
|
192
|
+
puts "File #{file} deleted"
|
193
|
+
end
|
194
|
+
else
|
195
|
+
puts "File #{file} does not exist so cannot be removed."
|
196
|
+
end
|
197
|
+
end
|
198
|
+
puts "Destroy Complete"
|
189
199
|
end
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
200
|
+
|
201
|
+
end
|
202
|
+
|
203
|
+
############################
|
204
|
+
#Handle As Command Line If Called That Way
|
205
|
+
if ($0 == __FILE__)
|
206
|
+
destroy = false
|
207
|
+
options = { }
|
208
|
+
module_name = nil
|
209
|
+
|
210
|
+
# Parse the command line parameters.
|
211
|
+
ARGV.each do |arg|
|
212
|
+
case(arg)
|
213
|
+
when /^-d/ then destroy = true
|
214
|
+
when /^-u/ then options[:update_svn] = true
|
215
|
+
when /^-p(\w+)/ then options[:pattern] = $1
|
216
|
+
when /^-s(.+)/ then options[:path_src] = $1
|
217
|
+
when /^-i(.+)/ then options[:path_inc] = $1
|
218
|
+
when /^-t(.+)/ then options[:path_tst] = $1
|
219
|
+
when /^-y(.+)/ then options = UnityModuleGenerator.grab_config($1)
|
220
|
+
when /^(\w+)/
|
221
|
+
raise "ERROR: You can't have more than one Module name specified!" unless module_name.nil?
|
222
|
+
module_name = arg
|
223
|
+
when /^-(h|-help)/
|
224
|
+
ARGV = []
|
225
|
+
else
|
226
|
+
raise "ERROR: Unknown option specified '#{arg}'"
|
196
227
|
end
|
228
|
+
end
|
229
|
+
|
230
|
+
if (!ARGV[0])
|
231
|
+
puts [ "\nGENERATE MODULE\n-------- ------",
|
232
|
+
"\nUsage: ruby generate_module [options] module_name",
|
233
|
+
" -i\"include\" sets the path to output headers to 'include' (DEFAULT ../src)",
|
234
|
+
" -s\"../src\" sets the path to output source to '../src' (DEFAULT ../src)",
|
235
|
+
" -t\"C:/test\" sets the path to output source to 'C:/test' (DEFAULT ../test)",
|
236
|
+
" -p\"MCH\" sets the output pattern to MCH.",
|
237
|
+
" dh - driver hardware.",
|
238
|
+
" dih - driver interrupt hardware.",
|
239
|
+
" mch - model conductor hardware.",
|
240
|
+
" mvp - model view presenter.",
|
241
|
+
" src - just a single source module. (DEFAULT)",
|
242
|
+
" -d destroy module instead of creating it.",
|
243
|
+
" -u update subversion too (requires subversion command line)",
|
244
|
+
" -y\"my.yml\" selects a different yaml config file for module generation",
|
245
|
+
"" ].join("\n")
|
246
|
+
exit
|
247
|
+
end
|
248
|
+
|
249
|
+
raise "ERROR: You must have a Module name specified! (use option -h for help)" if module_name.nil?
|
250
|
+
if (destroy)
|
251
|
+
UnityModuleGenerator.new(options).destroy(module_name)
|
197
252
|
else
|
198
|
-
|
253
|
+
UnityModuleGenerator.new(options).generate(module_name)
|
199
254
|
end
|
255
|
+
|
200
256
|
end
|
201
257
|
|
202
|
-
|
258
|
+
|