brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.2 KiB · fb60058 Raw
115 lines · python
1"""2Test that loading of dependents works correctly for all the potential3combinations.4"""5 6 7import lldb8from lldbsuite.test.decorators import *9from lldbsuite.test.lldbtest import *10from lldbsuite.test import lldbutil11 12 13@skipIfWindows  # Windows deals differently with shared libs.14class TargetDependentsTestCase(TestBase):15    NO_DEBUG_INFO_TESTCASE = True16 17    def setUp(self):18        TestBase.setUp(self)19        self.build()20 21    def has_exactly_one_image(self, matching, msg=""):22        self.expect(23            "image list",24            "image list should contain at least one image",25            substrs=["[  0]"],26        )27        should_match = not matching28        self.expect("image list", msg, matching=should_match, substrs=["[  1]"])29 30    @expectedFailureAll(31        oslist=["freebsd", "linux", "netbsd"],32        bugnumber="llvm.org/pr48372",33        triple=no_match(".*-android"),34    )35    def test_dependents_implicit_default_exe(self):36        """Test default behavior"""37        exe = self.getBuildArtifact("a.out")38        self.runCmd("target create  " + exe, CURRENT_EXECUTABLE_SET)39        self.has_exactly_one_image(False)40 41    @expectedFailureAll(42        oslist=["freebsd", "linux", "netbsd"],43        bugnumber="llvm.org/pr48372",44        triple=no_match(".*-android"),45    )46    def test_dependents_explicit_default_exe(self):47        """Test default behavior"""48        exe = self.getBuildArtifact("a.out")49        self.runCmd("target create -ddefault " + exe, CURRENT_EXECUTABLE_SET)50        self.has_exactly_one_image(False)51 52    def test_dependents_explicit_true_exe(self):53        """Test default behavior"""54        exe = self.getBuildArtifact("a.out")55        self.runCmd("target create -dtrue " + exe, CURRENT_EXECUTABLE_SET)56        self.has_exactly_one_image(True)57 58    @expectedFailureAll(59        oslist=["freebsd", "linux", "netbsd"],60        bugnumber="llvm.org/pr48372",61        triple=no_match(".*-android"),62    )63    def test_dependents_explicit_false_exe(self):64        """Test default behavior"""65        exe = self.getBuildArtifact("a.out")66        self.runCmd("target create -dfalse " + exe, CURRENT_EXECUTABLE_SET)67        self.has_exactly_one_image(False)68 69    def test_dependents_implicit_false_exe(self):70        """Test default behavior"""71        exe = self.getBuildArtifact("a.out")72        self.runCmd("target create  -d " + exe, CURRENT_EXECUTABLE_SET)73        self.has_exactly_one_image(True)74 75    @expectedFailureAndroid  # android will return mutiple images76    def test_dependents_implicit_default_lib(self):77        ctx = self.platformContext78        dylibName = ctx.shlib_prefix + "load_a." + ctx.shlib_extension79        lib = self.getBuildArtifact(dylibName)80        self.runCmd("target create " + lib, CURRENT_EXECUTABLE_SET)81        self.has_exactly_one_image(True)82 83    def test_dependents_explicit_default_lib(self):84        ctx = self.platformContext85        dylibName = ctx.shlib_prefix + "load_a." + ctx.shlib_extension86        lib = self.getBuildArtifact(dylibName)87        self.runCmd("target create -ddefault " + lib, CURRENT_EXECUTABLE_SET)88        self.has_exactly_one_image(True)89 90    def test_dependents_explicit_true_lib(self):91        ctx = self.platformContext92        dylibName = ctx.shlib_prefix + "load_a." + ctx.shlib_extension93        lib = self.getBuildArtifact(dylibName)94        self.runCmd("target create -dtrue " + lib, CURRENT_EXECUTABLE_SET)95        self.has_exactly_one_image(True)96 97    @expectedFailureAll(98        oslist=["freebsd", "linux", "netbsd"],99        bugnumber="llvm.org/pr48372",100        triple=no_match(".*-android"),101    )102    def test_dependents_explicit_false_lib(self):103        ctx = self.platformContext104        dylibName = ctx.shlib_prefix + "load_a." + ctx.shlib_extension105        lib = self.getBuildArtifact(dylibName)106        self.runCmd("target create -dfalse " + lib, CURRENT_EXECUTABLE_SET)107        self.has_exactly_one_image(False)108 109    def test_dependents_implicit_false_lib(self):110        ctx = self.platformContext111        dylibName = ctx.shlib_prefix + "load_a." + ctx.shlib_extension112        lib = self.getBuildArtifact(dylibName)113        self.runCmd("target create -d " + lib, CURRENT_EXECUTABLE_SET)114        self.has_exactly_one_image(True)115