mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-22 21:15:40 -04:00

Summary: This patch implements a unified way of cleaning the build folder of each test. This is done by completely removing the build folder before each test, in the respective setUp() method. Previously, we were using a combination of several methods, each with it's own drawbacks: - nuking the entire build tree before running dotest: the issue here is that this did not take place if you ran dotest manually - running "make clean" before the main "make" target: this relied on the clean command being correctly implemented. This was usually true, but not always. - for files which were not produced by make, each python file was responsible for ensuring their deleting, using a variety of methods. With this approach, the previous methods become redundant. I remove the first two, since they are centralized. For the other various bits of clean-up code in python files, I indend to delete it when I come across it. Reviewers: aprantl Subscribers: emaste, ki.stfu, mgorny, eraman, lldb-commits Differential Revision: https://reviews.llvm.org/D44526 llvm-svn: 327703
54 lines
1.9 KiB
Python
54 lines
1.9 KiB
Python
""" Testing explicit symbol loading via target symbols add. """
|
|
import os
|
|
import time
|
|
import lldb
|
|
import sys
|
|
from lldbsuite.test.decorators import *
|
|
from lldbsuite.test.lldbtest import *
|
|
from lldbsuite.test import lldbutil
|
|
|
|
|
|
class TargetSymbolsAddCommand(TestBase):
|
|
|
|
mydir = TestBase.compute_mydir(__file__)
|
|
|
|
def setUp(self):
|
|
TestBase.setUp(self)
|
|
self.source = 'main.c'
|
|
|
|
@no_debug_info_test # Prevent the genaration of the dwarf version of this test
|
|
@skipUnlessPlatform(['linux'])
|
|
def test_target_symbols_add(self):
|
|
"""Test that 'target symbols add' can load the symbols
|
|
even if gnu.build-id and gnu_debuglink are not present in the module.
|
|
Similar to test_add_dsym_mid_execution test for macos."""
|
|
self.build()
|
|
exe = self.getBuildArtifact("stripped.out")
|
|
|
|
self.target = self.dbg.CreateTarget(exe)
|
|
self.assertTrue(self.target, VALID_TARGET)
|
|
|
|
main_bp = self.target.BreakpointCreateByName("main", "stripped.out")
|
|
self.assertTrue(main_bp, VALID_BREAKPOINT)
|
|
|
|
self.process = self.target.LaunchSimple(
|
|
None, None, self.get_process_working_directory())
|
|
self.assertTrue(self.process, PROCESS_IS_VALID)
|
|
|
|
# The stop reason of the thread should be breakpoint.
|
|
self.assertTrue(self.process.GetState() == lldb.eStateStopped,
|
|
STOPPED_DUE_TO_BREAKPOINT)
|
|
|
|
exe_module = self.target.GetModuleAtIndex(0)
|
|
|
|
# Check that symbols are not loaded and main.c is not know to be
|
|
# the source file.
|
|
self.expect("frame select", substrs=['main.c'], matching=False)
|
|
|
|
# Tell LLDB that a.out has symbols for stripped.out
|
|
self.runCmd("target symbols add -s %s %s" %
|
|
(exe, self.getBuildArtifact("a.out")))
|
|
|
|
# Check that symbols are now loaded and main.c is in the output.
|
|
self.expect("frame select", substrs=['main.c'])
|