forked from platformio/platformio-core
Fix an issue with multiple symbol definitions when framework uses own Unity // Resolve #4259
This commit is contained in:
@ -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(),
|
||||||
|
@ -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
|
||||||
|
Reference in New Issue
Block a user