Skip to content

Commit 5204c1b

Browse files
authored
Merge pull request #550 from jannisbaudisch/fix_test_parameterization_regex
Improve regex for test parameterization to support function pointers
2 parents ae4ab78 + 77bd4f9 commit 5204c1b

File tree

4 files changed

+18
-1
lines changed

4 files changed

+18
-1
lines changed

auto/generate_test_runner.rb

+1
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ def find_tests(source)
133133
lines.each_with_index do |line, _index|
134134
# find tests
135135
next unless line =~ /^((?:\s*(?:TEST_CASE|TEST_RANGE)\s*\(.*?\)\s*)*)\s*void\s+((?:#{@options[:test_prefix]}).*)\s*\(\s*(.*)\s*\)/m
136+
next unless line =~ /^((?:\s*(?:TEST_CASE|TEST_RANGE)\s*\(.*?\)\s*)*)\s*void\s+((?:#{@options[:test_prefix]})\w*)\s*\(\s*(.*)\s*\)/m
136137

137138
arguments = Regexp.last_match(1)
138139
name = Regexp.last_match(2)

test/testdata/Defs.h

+1
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44
#define EXTERN_DECL
55

66
extern int CounterSuiteSetup;
7+
extern int isArgumentOne(int i);
78

89
#endif

test/testdata/testRunnerGenerator.c

+11
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,17 @@ void paratest_ShouldHandleParameterizedTestsThatFail(int Num)
164164
TEST_ASSERT_EQUAL_MESSAGE(3, Num, "This call should fail");
165165
}
166166

167+
int isArgumentOne(int i)
168+
{
169+
return i == 1;
170+
}
171+
172+
TEST_CASE(isArgumentOne)
173+
void paratest_WorksWithFunctionPointers(int function(int))
174+
{
175+
TEST_ASSERT_TRUE_MESSAGE(function(1), "Function should return True");
176+
}
177+
167178
#ifdef USE_CEXCEPTION
168179
void extest_ShouldHandleCExceptionInTest(void)
169180
{

test/tests/test_generate_test_runner.rb

+5-1
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@
151151
'paratest_ShouldHandleParameterizedTests\(5\)',
152152
'paratest_ShouldHandleParameterizedTests2\(7\)',
153153
'paratest_ShouldHandleNonParameterizedTestsWhenParameterizationValid',
154+
'paratest_WorksWithFunctionPointers\(isArgumentOne\)',
154155
],
155156
:to_fail => [ 'paratest_ShouldHandleParameterizedTestsThatFail\(17\)' ],
156157
:to_ignore => [ ],
@@ -168,6 +169,7 @@
168169
'paratest_ShouldHandleParameterizedTests\(5\)',
169170
'paratest_ShouldHandleParameterizedTests2\(7\)',
170171
'paratest_ShouldHandleNonParameterizedTestsWhenParameterizationValid',
172+
'paratest_WorksWithFunctionPointers\(isArgumentOne\)',
171173
],
172174
:to_fail => [ 'paratest_ShouldHandleParameterizedTestsThatFail\(17\)' ],
173175
:to_ignore => [ ],
@@ -188,6 +190,7 @@
188190
'paratest_ShouldHandleParameterizedTests\(5\)',
189191
'paratest_ShouldHandleParameterizedTests2\(7\)',
190192
'paratest_ShouldHandleNonParameterizedTestsWhenParameterizationValid',
193+
'paratest_WorksWithFunctionPointers\(isArgumentOne\)',
191194
],
192195
:to_fail => [ 'paratest_ShouldHandleParameterizedTestsThatFail\(17\)' ],
193196
:to_ignore => [ ],
@@ -1108,7 +1111,8 @@
11081111
'paratest_ShouldHandleParameterizedTests\(5\)',
11091112
'paratest_ShouldHandleParameterizedTests2\(7\)',
11101113
'paratest_ShouldHandleNonParameterizedTestsWhenParameterizationValid',
1111-
'paratest_ShouldHandleParameterizedTestsThatFail\(17\)'
1114+
'paratest_ShouldHandleParameterizedTestsThatFail\(17\)',
1115+
'paratest_WorksWithFunctionPointers\(isArgumentOne\)',
11121116
],
11131117
}
11141118
},

0 commit comments

Comments
 (0)