diff --git a/auto/generate_test_runner.rb b/auto/generate_test_runner.rb index b2c0441..aa0f351 100755 --- a/auto/generate_test_runner.rb +++ b/auto/generate_test_runner.rb @@ -133,6 +133,7 @@ class UnityTestRunnerGenerator lines.each_with_index do |line, _index| # find tests next unless line =~ /^((?:\s*(?:TEST_CASE|TEST_RANGE)\s*\(.*?\)\s*)*)\s*void\s+((?:#{@options[:test_prefix]}).*)\s*\(\s*(.*)\s*\)/m + next unless line =~ /^((?:\s*(?:TEST_CASE|TEST_RANGE)\s*\(.*?\)\s*)*)\s*void\s+((?:#{@options[:test_prefix]})\w*)\s*\(\s*(.*)\s*\)/m arguments = Regexp.last_match(1) name = Regexp.last_match(2) diff --git a/test/testdata/Defs.h b/test/testdata/Defs.h index b1dc83e..58678c1 100644 --- a/test/testdata/Defs.h +++ b/test/testdata/Defs.h @@ -4,5 +4,6 @@ #define EXTERN_DECL extern int CounterSuiteSetup; +extern int isArgumentOne(int i); #endif diff --git a/test/testdata/testRunnerGenerator.c b/test/testdata/testRunnerGenerator.c index 3ea01a1..475e243 100644 --- a/test/testdata/testRunnerGenerator.c +++ b/test/testdata/testRunnerGenerator.c @@ -164,6 +164,17 @@ void paratest_ShouldHandleParameterizedTestsThatFail(int Num) TEST_ASSERT_EQUAL_MESSAGE(3, Num, "This call should fail"); } +int isArgumentOne(int i) +{ + return i == 1; +} + +TEST_CASE(isArgumentOne) +void paratest_WorksWithFunctionPointers(int function(int)) +{ + TEST_ASSERT_TRUE_MESSAGE(function(1), "Function should return True"); +} + #ifdef USE_CEXCEPTION void extest_ShouldHandleCExceptionInTest(void) { diff --git a/test/tests/test_generate_test_runner.rb b/test/tests/test_generate_test_runner.rb index 809b449..658b6e2 100644 --- a/test/tests/test_generate_test_runner.rb +++ b/test/tests/test_generate_test_runner.rb @@ -151,6 +151,7 @@ RUNNER_TESTS = [ 'paratest_ShouldHandleParameterizedTests\(5\)', 'paratest_ShouldHandleParameterizedTests2\(7\)', 'paratest_ShouldHandleNonParameterizedTestsWhenParameterizationValid', + 'paratest_WorksWithFunctionPointers\(isArgumentOne\)', ], :to_fail => [ 'paratest_ShouldHandleParameterizedTestsThatFail\(17\)' ], :to_ignore => [ ], @@ -168,6 +169,7 @@ RUNNER_TESTS = [ 'paratest_ShouldHandleParameterizedTests\(5\)', 'paratest_ShouldHandleParameterizedTests2\(7\)', 'paratest_ShouldHandleNonParameterizedTestsWhenParameterizationValid', + 'paratest_WorksWithFunctionPointers\(isArgumentOne\)', ], :to_fail => [ 'paratest_ShouldHandleParameterizedTestsThatFail\(17\)' ], :to_ignore => [ ], @@ -188,6 +190,7 @@ RUNNER_TESTS = [ 'paratest_ShouldHandleParameterizedTests\(5\)', 'paratest_ShouldHandleParameterizedTests2\(7\)', 'paratest_ShouldHandleNonParameterizedTestsWhenParameterizationValid', + 'paratest_WorksWithFunctionPointers\(isArgumentOne\)', ], :to_fail => [ 'paratest_ShouldHandleParameterizedTestsThatFail\(17\)' ], :to_ignore => [ ], @@ -1108,7 +1111,8 @@ RUNNER_TESTS = [ 'paratest_ShouldHandleParameterizedTests\(5\)', 'paratest_ShouldHandleParameterizedTests2\(7\)', 'paratest_ShouldHandleNonParameterizedTestsWhenParameterizationValid', - 'paratest_ShouldHandleParameterizedTestsThatFail\(17\)' + 'paratest_ShouldHandleParameterizedTestsThatFail\(17\)', + 'paratest_WorksWithFunctionPointers\(isArgumentOne\)', ], } },