Fix and rename the broken and confusingly named decorator skipIfHostIncompatibleWithRemote. The decorator is meant to skip test which uses the inferior test build system (i.e. to build test inferiors) to build host binaries (e.g. lldb drivers). The decorator was broken on macOS, where the host and target platform report macosx, but the decorator overwrote it with Darwin, resulting in tests incorrectly being skipped. The decorator was also missing on a handful of tests that use the buildDriver helper, which this commit fixes as well.
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
"""Test the lldb public C++ api when creating multiple targets simultaneously."""
|
|
|
|
import os
|
|
|
|
import lldb
|
|
from lldbsuite.test.decorators import *
|
|
from lldbsuite.test.lldbtest import *
|
|
from lldbsuite.test import lldbutil
|
|
|
|
|
|
class TestMultipleTargets(TestBase):
|
|
NO_DEBUG_INFO_TESTCASE = True
|
|
|
|
@skipIf(oslist=["linux"], archs=["arm", "aarch64"])
|
|
@skipIfNoSBHeaders
|
|
@expectedFailureAll(
|
|
oslist=["windows"], archs=["i[3-6]86", "x86_64"], bugnumber="llvm.org/pr20282"
|
|
)
|
|
@expectedFlakeyNetBSD
|
|
@skipIfHostIncompatibleWithTarget
|
|
def test_multiple_targets(self):
|
|
env = {self.dylibPath: self.getLLDBLibraryEnvVal()}
|
|
|
|
self.driver_exe = self.getBuildArtifact("multi-target")
|
|
self.buildDriver("main.cpp", self.driver_exe)
|
|
self.addTearDownHook(lambda: os.remove(self.driver_exe))
|
|
|
|
# check_call will raise a CalledProcessError if multi-process-driver doesn't return
|
|
# exit code 0 to indicate success. We can let this exception go - the test harness
|
|
# will recognize it as a test failure.
|
|
|
|
if self.TraceOn():
|
|
print("Running test %s" % self.driver_exe)
|
|
check_call([self.driver_exe, self.driver_exe], env=env)
|
|
else:
|
|
with open(os.devnull, "w") as fnull:
|
|
check_call(
|
|
[self.driver_exe, self.driver_exe],
|
|
env=env,
|
|
stdout=fnull,
|
|
stderr=fnull,
|
|
)
|