diff --git a/auto/generate_test_runner.rb b/auto/generate_test_runner.rb index e63f0a2..3af827a 100644 --- a/auto/generate_test_runner.rb +++ b/auto/generate_test_runner.rb @@ -140,10 +140,15 @@ class UnityTestRunnerGenerator if @options[:use_param_tests] && !arguments.empty? args = [] - arguments.scan(/\s*TEST_CASE\s*\(\s*(.*)\s*\)\s*$/) { |a| args << a[0] } + type_and_args = arguments.split(/TEST_(CASE|RANGE)/) + for i in (1...type_and_args.length).step(2) + if type_and_args[i] == "CASE" + args << type_and_args[i + 1].sub(/^\s*\(\s*(.*?)\s*\)\s*$/m, '\1') + next + end - arguments.scan(/\s*TEST_RANGE\s*\((.*)\)\s*$/).flatten.each do |range_str| - args += range_str.scan(/\[\s*(-?\d+.?\d*),\s*(-?\d+.?\d*),\s*(-?\d+.?\d*)\s*\]/).map do |arg_values_str| + # RANGE + args += type_and_args[i + 1].scan(/\[\s*(-?\d+.?\d*)\s*,\s*(-?\d+.?\d*)\s*,\s*(-?\d+.?\d*)\s*\]/m).map do |arg_values_str| arg_values_str.map do |arg_value_str| arg_value_str.include?('.') ? arg_value_str.to_f : arg_value_str.to_i end diff --git a/test/tests/test_unity_parameterized.c b/test/tests/test_unity_parameterized.c index 3129817..0b95cfc 100644 --- a/test/tests/test_unity_parameterized.c +++ b/test/tests/test_unity_parameterized.c @@ -10,6 +10,7 @@ /* Support for Meta Test Rig */ #define TEST_CASE(...) +#define TEST_RANGE(...) /* Include Passthroughs for Linking Tests */ void putcharSpy(int c) { (void)putchar(c);} @@ -48,11 +49,13 @@ static int SetToOneToFailInTearDown; static int SetToOneMeanWeAlreadyCheckedThisGuy; static unsigned NextExpectedStringIndex; static unsigned NextExpectedCharIndex; +static unsigned NextExpectedSpaceIndex; void suiteSetUp(void) { NextExpectedStringIndex = 0; NextExpectedCharIndex = 0; + NextExpectedSpaceIndex = 0; } void setUp(void) @@ -169,3 +172,25 @@ void test_CharsArePreserved(unsigned index, char c) NextExpectedCharIndex++; } + +TEST_CASE(0, + + 1) +TEST_CASE(1, + + 2 + + ) +TEST_RANGE([2, + 5 , + 1], [6, 6, 1]) +TEST_CASE( + + 6 , 7) +void test_SpaceInTestCase(unsigned index, unsigned bigger) +{ + TEST_ASSERT_EQUAL_UINT32(NextExpectedSpaceIndex, index); + TEST_ASSERT_LESS_THAN(bigger, index); + + NextExpectedSpaceIndex++; +}