1
0
mirror of https://github.com/ThrowTheSwitch/Unity.git synced 2026-01-23 00:15:58 +01:00

Merge pull request #634 from erijo/test-case-space

Improve handling of space in TEST_CASE/RANGE (Thanks @erijo !)
This commit is contained in:
Mark VanderVoord
2022-10-14 10:09:41 -04:00
committed by GitHub
2 changed files with 33 additions and 3 deletions

View File

@@ -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

View File

@@ -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++;
}