Fix an issue with multiple symbol definitions when framework uses own Unity // Resolve #4259

This commit is contained in:
Ivan Kravets
2022-05-12 15:34:50 +03:00
parent de7d710943
commit 79b2bfdefe
2 changed files with 4 additions and 4 deletions

View File

@ -26,6 +26,7 @@ def ConfigureTestTarget(env):
CPPDEFINES=["UNIT_TEST", "PIO_UNIT_TESTING"], CPPDEFINES=["UNIT_TEST", "PIO_UNIT_TESTING"],
PIOTEST_SRC_FILTER=[f"+<*.{ext}>" for ext in piotool.SRC_BUILD_EXT], PIOTEST_SRC_FILTER=[f"+<*.{ext}>" for ext in piotool.SRC_BUILD_EXT],
) )
env.Prepend(CPPPATH=["$PROJECT_TEST_DIR"])
if "PIOTEST_RUNNING_NAME" in env: if "PIOTEST_RUNNING_NAME" in env:
test_name = env["PIOTEST_RUNNING_NAME"] test_name = env["PIOTEST_RUNNING_NAME"]
@ -34,7 +35,7 @@ def ConfigureTestTarget(env):
# skip nested tests (user's side issue?) # skip nested tests (user's side issue?)
if not test_name or os.path.basename(test_name).startswith("test_"): if not test_name or os.path.basename(test_name).startswith("test_"):
break break
env.Append( env.Prepend(
PIOTEST_SRC_FILTER=[ PIOTEST_SRC_FILTER=[
f"+<{test_name}{os.path.sep}*.{ext}>" f"+<{test_name}{os.path.sep}*.{ext}>"
for ext in piotool.SRC_BUILD_EXT for ext in piotool.SRC_BUILD_EXT
@ -42,12 +43,11 @@ def ConfigureTestTarget(env):
CPPPATH=[os.path.join("$PROJECT_TEST_DIR", test_name)], CPPPATH=[os.path.join("$PROJECT_TEST_DIR", test_name)],
) )
env.Append( env.Prepend(
PIOTEST_SRC_FILTER=[f"+<$PIOTEST_RUNNING_NAME{os.path.sep}>"], PIOTEST_SRC_FILTER=[f"+<$PIOTEST_RUNNING_NAME{os.path.sep}>"],
CPPPATH=[os.path.join("$PROJECT_TEST_DIR", "$PIOTEST_RUNNING_NAME")], CPPPATH=[os.path.join("$PROJECT_TEST_DIR", "$PIOTEST_RUNNING_NAME")],
) )
env.Append(CPPPATH=["$PROJECT_TEST_DIR"])
test_runner = TestRunnerFactory.new( test_runner = TestRunnerFactory.new(
TestSuite(env["PIOENV"], env.get("PIOTEST_RUNNING_NAME", "*")), TestSuite(env["PIOENV"], env.get("PIOTEST_RUNNING_NAME", "*")),
env.GetProjectConfig(), env.GetProjectConfig(),

View File

@ -216,7 +216,7 @@ void unityOutputComplete(void) { unittest_uart_end(); }
UNITY_CONFIG_DIR=os.path.join("$BUILD_DIR", "unity_config"), UNITY_CONFIG_DIR=os.path.join("$BUILD_DIR", "unity_config"),
BUILD_UNITY_CONFIG_DIR=os.path.join("$BUILD_DIR", "unity_config_build"), BUILD_UNITY_CONFIG_DIR=os.path.join("$BUILD_DIR", "unity_config_build"),
) )
env.Append(CPPPATH=["$UNITY_CONFIG_DIR"]) env.Prepend(CPPPATH=["$UNITY_CONFIG_DIR"])
self.generate_unity_extras(env.subst("$UNITY_CONFIG_DIR")) self.generate_unity_extras(env.subst("$UNITY_CONFIG_DIR"))
env.BuildSources("$BUILD_UNITY_CONFIG_DIR", "$UNITY_CONFIG_DIR") env.BuildSources("$BUILD_UNITY_CONFIG_DIR", "$UNITY_CONFIG_DIR")
return env return env