reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
   37
   38
   39
   40
   41
   42
   43
   44
"""
Read in a library with a version number of 0.0.0, make sure we produce a good version.
"""

from __future__ import print_function


import lldb
from lldbsuite.test import decorators
import lldbsuite.test.lldbutil as lldbutil
from lldbsuite.test.lldbtest import *


class TestGetVersionForZero(TestBase):

    mydir = TestBase.compute_mydir(__file__)

    # If your test case doesn't stress debug info, the
    # set this to true.  That way it won't be run once for
    # each debug info format.
    NO_DEBUG_INFO_TESTCASE = True

    def test_get_version_zero(self):
        """Read in a library with a version of 0.0.0.  Test SBModule::GetVersion"""
        self.yaml2obj("libDylib.dylib.yaml", self.getBuildArtifact("libDylib.dylib"))
        self.do_test()

    def setUp(self):
        # Call super's setUp().
        TestBase.setUp(self)

    def do_test(self):
        lib_name = "libDylib.dylib"
        target = lldbutil.run_to_breakpoint_make_target(self, exe_name=lib_name)
        module = target.FindModule(lldb.SBFileSpec(lib_name))
        self.assertTrue(module.IsValid(), "Didn't find the libDylib.dylib module")
        # For now the actual version numbers are wrong for a library of 0.0.0
        # but the previous code would crash iterating over the resultant
        # list.  So we are testing that that doesn't happen.
        did_iterate = False
        for elem in module.GetVersion():
            did_iterate = True
        self.assertTrue(did_iterate, "Didn't get into the GetVersion loop")