teak-llvm/lldb/packages/Python/lldbsuite/test/python_api/lldbutil/TestSwigVersion.py
Pavel Labath 8d6b60c14c Embed swig version into lldb.py in a different way
Summary:
Instead of doing string chopping on the resulting python file, get swig
to output the version for us. The two things which make slightly
non-trivial are:
- in order to get swig to expand SWIG_VERSION for us, we cannot use
  %pythoncode directly, but we have to go through an intermediate macro.
- SWIG_VERSION is a hex number, but it's components are supposed to be
  interpreted decimally, so there is a bit of integer magic needed to
  get the right number to come out.

I've tested that this approach works both with the latest (3.0.12) and
oldest (1.3.40) supported swig.

Reviewers: zturner, jingham, serge-sans-paille

Subscribers: jdoerfert, lldb-commits

Differential Revision: https://reviews.llvm.org/D58172

llvm-svn: 354104
2019-02-15 07:41:12 +00:00

29 lines
708 B
Python

"""
Test that we embed the swig version into the lldb module
"""
from __future__ import print_function
"""
import os
import time
import re
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test import lldbutil
"""
from lldbsuite.test.lldbtest import *
class SwigVersionTestCase(TestBase):
mydir = TestBase.compute_mydir(__file__)
NO_DEBUG_INFO_TESTCASE = True
def test(self):
self.assertTrue(getattr(lldb, "swig_version"))
self.assertIsInstance(lldb.swig_version, tuple)
self.assertEqual(len(lldb.swig_version), 3)
self.assertGreaterEqual(lldb.swig_version[0], 1)
for v in lldb.swig_version:
self.assertGreaterEqual(v, 0)