summaryrefslogtreecommitdiff
path: root/packages/Python/lldbsuite/test/linux
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-08-20 18:01:57 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-08-20 18:01:57 +0000
commit88c643b6fec27eec436c8d138fee6346e92337d6 (patch)
tree82cd13b2f3cde1c9e5f79689ba4e6ba67694843f /packages/Python/lldbsuite/test/linux
parent94994d372d014ce4c8758b9605d63fae651bd8aa (diff)
Notes
Diffstat (limited to 'packages/Python/lldbsuite/test/linux')
-rw-r--r--packages/Python/lldbsuite/test/linux/add-symbols/Makefile13
-rw-r--r--packages/Python/lldbsuite/test/linux/add-symbols/TestTargetSymbolsAddCommand.py53
-rw-r--r--packages/Python/lldbsuite/test/linux/add-symbols/main.c6
-rw-r--r--packages/Python/lldbsuite/test/linux/builtin_trap/Makefile5
-rw-r--r--packages/Python/lldbsuite/test/linux/builtin_trap/TestBuiltinTrap.py53
-rw-r--r--packages/Python/lldbsuite/test/linux/builtin_trap/main.cpp17
-rw-r--r--packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/Makefile10
-rw-r--r--packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/TestMixedDwarfBinary.py46
-rw-r--r--packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/a.c3
-rw-r--r--packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/b.c11
-rw-r--r--packages/Python/lldbsuite/test/linux/sepdebugsymlink/Makefile20
-rw-r--r--packages/Python/lldbsuite/test/linux/sepdebugsymlink/TestTargetSymbolsSepDebugSymlink.py23
-rw-r--r--packages/Python/lldbsuite/test/linux/sepdebugsymlink/main.c3
-rw-r--r--packages/Python/lldbsuite/test/linux/thread/create_during_instruction_step/Makefile5
-rw-r--r--packages/Python/lldbsuite/test/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py85
-rw-r--r--packages/Python/lldbsuite/test/linux/thread/create_during_instruction_step/main.cpp55
16 files changed, 0 insertions, 408 deletions
diff --git a/packages/Python/lldbsuite/test/linux/add-symbols/Makefile b/packages/Python/lldbsuite/test/linux/add-symbols/Makefile
deleted file mode 100644
index 71a5c11a83d1..000000000000
--- a/packages/Python/lldbsuite/test/linux/add-symbols/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-LEVEL = ../../make
-CXX_SOURCES := main.cpp
-LD_EXTRAS += -Wl,--build-id=none
-
-all: stripped.out
-
-stripped.out : a.out
- $(OBJCOPY) --remove-section=.note.gnu.build-id --remove-section=.gnu_debuglink --strip-debug $< $@
-
-clean::
- $(RM) stripped.out
-
-include $(LEVEL)/Makefile.rules
diff --git a/packages/Python/lldbsuite/test/linux/add-symbols/TestTargetSymbolsAddCommand.py b/packages/Python/lldbsuite/test/linux/add-symbols/TestTargetSymbolsAddCommand.py
deleted file mode 100644
index 946c151bb8fa..000000000000
--- a/packages/Python/lldbsuite/test/linux/add-symbols/TestTargetSymbolsAddCommand.py
+++ /dev/null
@@ -1,53 +0,0 @@
-""" 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'])
diff --git a/packages/Python/lldbsuite/test/linux/add-symbols/main.c b/packages/Python/lldbsuite/test/linux/add-symbols/main.c
deleted file mode 100644
index 5a0915746b74..000000000000
--- a/packages/Python/lldbsuite/test/linux/add-symbols/main.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <stdio.h>
-static int var = 5;
-int main() {
- printf("%p is %d\n", &var, var);
- return ++var;
-}
diff --git a/packages/Python/lldbsuite/test/linux/builtin_trap/Makefile b/packages/Python/lldbsuite/test/linux/builtin_trap/Makefile
deleted file mode 100644
index 8a7102e347af..000000000000
--- a/packages/Python/lldbsuite/test/linux/builtin_trap/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-LEVEL = ../../make
-
-CXX_SOURCES := main.cpp
-
-include $(LEVEL)/Makefile.rules
diff --git a/packages/Python/lldbsuite/test/linux/builtin_trap/TestBuiltinTrap.py b/packages/Python/lldbsuite/test/linux/builtin_trap/TestBuiltinTrap.py
deleted file mode 100644
index 7ffc29fd4981..000000000000
--- a/packages/Python/lldbsuite/test/linux/builtin_trap/TestBuiltinTrap.py
+++ /dev/null
@@ -1,53 +0,0 @@
-"""
-Test lldb ability to unwind a stack with a function containing a call to the
-'__builtin_trap' intrinsic, which GCC (4.6) encodes to an illegal opcode.
-"""
-
-from __future__ import print_function
-
-
-import os
-import lldb
-from lldbsuite.test.decorators import *
-from lldbsuite.test.lldbtest import *
-from lldbsuite.test import lldbutil
-
-
-class BuiltinTrapTestCase(TestBase):
-
- mydir = TestBase.compute_mydir(__file__)
-
- def setUp(self):
- # Call super's setUp().
- TestBase.setUp(self)
- # Find the line number to break at.
- self.line = line_number('main.cpp', '// Set break point at this line.')
-
- # gcc generates incorrect linetable
- @expectedFailureAll(archs="arm", compiler="gcc", triple=".*-android")
- @expectedFailureAll(oslist=['linux'], archs=['arm'])
- @skipIfWindows
- def test_with_run_command(self):
- """Test that LLDB handles a function with __builtin_trap correctly."""
- self.build()
- self.runCmd("file " + self.getBuildArtifact("a.out"), CURRENT_EXECUTABLE_SET)
-
- lldbutil.run_break_set_by_file_and_line(self, "main.cpp", self.line,
- num_expected_locations=1,
- loc_exact=True)
-
- self.runCmd("run", RUN_SUCCEEDED)
-
- # The stop reason of the thread should be breakpoint.
- self.expect("thread list", STOPPED_DUE_TO_BREAKPOINT,
- substrs=['stopped',
- 'stop reason = breakpoint'])
-
- # print backtrace, expect both 'bar' and 'main' functions to be listed
- self.expect('bt', substrs=['bar', 'main'])
-
- # go up one frame
- self.runCmd("up", RUN_SUCCEEDED)
-
- # evaluate a local
- self.expect('p foo', substrs=['= 5'])
diff --git a/packages/Python/lldbsuite/test/linux/builtin_trap/main.cpp b/packages/Python/lldbsuite/test/linux/builtin_trap/main.cpp
deleted file mode 100644
index 84156ef2ac4f..000000000000
--- a/packages/Python/lldbsuite/test/linux/builtin_trap/main.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-//===-- main.cpp ------------------------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-void bar(int const *foo) {
- __builtin_trap(); // Set break point at this line.
-}
-
-int main() {
- int foo = 5;
- bar(&foo);
-}
diff --git a/packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/Makefile b/packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/Makefile
deleted file mode 100644
index 7cfad32f8272..000000000000
--- a/packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-LEVEL := ../../make
-
-C_SOURCES := a.c b.c
-a.o: CFLAGS_EXTRAS += -gsplit-dwarf
-
-include $(LEVEL)/Makefile.rules
-
-.PHONY: clean
-clean::
- $(RM) -f a.dwo a.o b.o main
diff --git a/packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/TestMixedDwarfBinary.py b/packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/TestMixedDwarfBinary.py
deleted file mode 100644
index db91c39c3983..000000000000
--- a/packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/TestMixedDwarfBinary.py
+++ /dev/null
@@ -1,46 +0,0 @@
-""" Testing debugging of a binary with "mixed" dwarf (with/without fission). """
-import os
-import lldb
-import sys
-from lldbsuite.test.decorators import *
-from lldbsuite.test.lldbtest import *
-from lldbsuite.test import lldbutil
-
-
-class TestMixedDwarfBinary(TestBase):
- mydir = TestBase.compute_mydir(__file__)
-
- def setUp(self):
- TestBase.setUp(self)
-
- @no_debug_info_test # Prevent the genaration of the dwarf version of this test
- @add_test_categories(["dwo"])
- @skipUnlessPlatform(["linux"])
- def test_mixed_dwarf(self):
- """Test that 'frame variable' works
- for the executable built from two source files compiled
- with/whithout -gsplit-dwarf correspondingly."""
-
- self.build()
- exe = self.getBuildArtifact("a.out")
-
- self.target = self.dbg.CreateTarget(exe)
- self.assertTrue(self.target, VALID_TARGET)
-
- main_bp = self.target.BreakpointCreateByName("g", "a.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)
-
- frame = self.process.GetThreadAtIndex(0).GetFrameAtIndex(0)
- x = frame.FindVariable("x")
- self.assertTrue(x.IsValid(), "x is not valid")
- y = frame.FindVariable("y")
- self.assertTrue(y.IsValid(), "y is not valid")
-
diff --git a/packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/a.c b/packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/a.c
deleted file mode 100644
index 047e78a9b295..000000000000
--- a/packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/a.c
+++ /dev/null
@@ -1,3 +0,0 @@
-int f() {
- return 1;
-}
diff --git a/packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/b.c b/packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/b.c
deleted file mode 100644
index d79970e13d49..000000000000
--- a/packages/Python/lldbsuite/test/linux/mix-dwo-and-regular-objects/b.c
+++ /dev/null
@@ -1,11 +0,0 @@
-extern int f();
-
-void g() {
- int y = 14;
- int x = f();
-}
-
-int main() {
- g();
- return 0;
-}
diff --git a/packages/Python/lldbsuite/test/linux/sepdebugsymlink/Makefile b/packages/Python/lldbsuite/test/linux/sepdebugsymlink/Makefile
deleted file mode 100644
index 3fd14a74bf36..000000000000
--- a/packages/Python/lldbsuite/test/linux/sepdebugsymlink/Makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-LEVEL = ../../make
-C_SOURCES := main.c
-
-all: dirsymlink
-
-dirreal: a.out
- $(RM) -r $@
- mkdir $@
- $(OBJCOPY) --only-keep-debug $< $@/stripped.debug
- $(OBJCOPY) --strip-all --add-gnu-debuglink=$@/stripped.debug $< $@/stripped.out
-
-dirsymlink: dirreal
- $(RM) -r $@
- mkdir $@
- ln -s ../$</stripped.out $@/stripped.symlink
-
-clean::
- $(RM) -r dirreal dirsymlink
-
-include $(LEVEL)/Makefile.rules
diff --git a/packages/Python/lldbsuite/test/linux/sepdebugsymlink/TestTargetSymbolsSepDebugSymlink.py b/packages/Python/lldbsuite/test/linux/sepdebugsymlink/TestTargetSymbolsSepDebugSymlink.py
deleted file mode 100644
index 12506811c5e2..000000000000
--- a/packages/Python/lldbsuite/test/linux/sepdebugsymlink/TestTargetSymbolsSepDebugSymlink.py
+++ /dev/null
@@ -1,23 +0,0 @@
-""" Testing separate debug info loading for base binary with a symlink. """
-import os
-import time
-import lldb
-import sys
-from lldbsuite.test.decorators import *
-from lldbsuite.test.lldbtest import *
-from lldbsuite.test import lldbutil
-
-
-class TestTargetSymbolsSepDebugSymlink(TestBase):
-
- mydir = TestBase.compute_mydir(__file__)
-
- @no_debug_info_test # Prevent the genaration of the dwarf version of this test
- @skipUnlessPlatform(['linux'])
- @skipIf(hostoslist=["windows"])
- @skipIfRemote # llvm.org/pr36237
- def test_target_symbols_sepdebug_symlink_case(self):
- self.build()
- exe = self.getBuildArtifact("dirsymlink/stripped.symlink")
-
- lldbutil.run_to_name_breakpoint(self, "main", exe_name = exe)
diff --git a/packages/Python/lldbsuite/test/linux/sepdebugsymlink/main.c b/packages/Python/lldbsuite/test/linux/sepdebugsymlink/main.c
deleted file mode 100644
index 4cce7f667ff7..000000000000
--- a/packages/Python/lldbsuite/test/linux/sepdebugsymlink/main.c
+++ /dev/null
@@ -1,3 +0,0 @@
-int main() {
- return 0;
-}
diff --git a/packages/Python/lldbsuite/test/linux/thread/create_during_instruction_step/Makefile b/packages/Python/lldbsuite/test/linux/thread/create_during_instruction_step/Makefile
deleted file mode 100644
index 67aa16625bff..000000000000
--- a/packages/Python/lldbsuite/test/linux/thread/create_during_instruction_step/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-LEVEL = ../../../make
-
-CXX_SOURCES := main.cpp
-ENABLE_THREADS := YES
-include $(LEVEL)/Makefile.rules
diff --git a/packages/Python/lldbsuite/test/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py b/packages/Python/lldbsuite/test/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py
deleted file mode 100644
index 702d124834b2..000000000000
--- a/packages/Python/lldbsuite/test/linux/thread/create_during_instruction_step/TestCreateDuringInstructionStep.py
+++ /dev/null
@@ -1,85 +0,0 @@
-"""
-This tests that we do not lose control of the inferior, while doing an instruction-level step
-over a thread creation instruction.
-"""
-
-from __future__ import print_function
-
-
-import os
-import lldb
-from lldbsuite.test.decorators import *
-from lldbsuite.test.lldbtest import *
-from lldbsuite.test import lldbutil
-
-
-class CreateDuringInstructionStepTestCase(TestBase):
-
- mydir = TestBase.compute_mydir(__file__)
- NO_DEBUG_INFO_TESTCASE = True
-
- @skipUnlessPlatform(['linux'])
- @expectedFailureAndroid('llvm.org/pr24737', archs=['arm'])
- @expectedFailureAll(
- oslist=["linux"],
- archs=["arm"],
- bugnumber="llvm.org/pr24737")
- def test_step_inst(self):
- self.build(dictionary=self.getBuildFlags())
- exe = self.getBuildArtifact("a.out")
- target = self.dbg.CreateTarget(exe)
- self.assertTrue(target and target.IsValid(), "Target is valid")
-
- # This should create a breakpoint in the stepping thread.
- breakpoint = target.BreakpointCreateByName("main")
- self.assertTrue(
- breakpoint and breakpoint.IsValid(),
- "Breakpoint is valid")
-
- # Run the program.
- process = target.LaunchSimple(
- None, None, self.get_process_working_directory())
- self.assertTrue(process and process.IsValid(), PROCESS_IS_VALID)
-
- # The stop reason of the thread should be breakpoint.
- self.assertEqual(
- process.GetState(),
- lldb.eStateStopped,
- PROCESS_STOPPED)
-
- threads = lldbutil.get_threads_stopped_at_breakpoint(
- process, breakpoint)
- self.assertEqual(len(threads), 1, STOPPED_DUE_TO_BREAKPOINT)
-
- thread = threads[0]
- self.assertTrue(thread and thread.IsValid(), "Thread is valid")
-
- # Make sure we see only one threads
- self.assertEqual(
- process.GetNumThreads(),
- 1,
- 'Number of expected threads and actual threads do not match.')
-
- # Keep stepping until we see the thread creation
- while process.GetNumThreads() < 2:
- thread.StepInstruction(False)
- self.assertEqual(
- process.GetState(),
- lldb.eStateStopped,
- PROCESS_STOPPED)
- self.assertEqual(
- thread.GetStopReason(),
- lldb.eStopReasonPlanComplete,
- "Step operation succeeded")
- if self.TraceOn():
- self.runCmd("disassemble --pc")
-
- if self.TraceOn():
- self.runCmd("thread list")
-
- # We have successfully caught thread creation. Now just run to
- # completion
- process.Continue()
-
- # At this point, the inferior process should have exited.
- self.assertEqual(process.GetState(), lldb.eStateExited, PROCESS_EXITED)
diff --git a/packages/Python/lldbsuite/test/linux/thread/create_during_instruction_step/main.cpp b/packages/Python/lldbsuite/test/linux/thread/create_during_instruction_step/main.cpp
deleted file mode 100644
index 079e8b13798c..000000000000
--- a/packages/Python/lldbsuite/test/linux/thread/create_during_instruction_step/main.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//===-- main.cpp ------------------------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// This file deliberately uses low level linux-specific API for thread creation because:
-// - instruction-stepping over thread creation using higher-level functions was very slow
-// - it was also unreliable due to single-stepping bugs unrelated to this test
-// - some threading libraries do not create or destroy threads when we would expect them to
-
-#include <sched.h>
-
-#include <atomic>
-#include <cstdio>
-
-enum { STACK_SIZE = 0x2000 };
-
-static uint8_t child_stack[STACK_SIZE];
-
-pid_t child_tid;
-
-std::atomic<bool> flag(false);
-
-int thread_main(void *)
-{
- while (! flag) // Make sure the thread does not exit prematurely
- ;
-
- return 0;
-}
-
-int main ()
-{
- int ret = clone(thread_main,
- child_stack + STACK_SIZE/2, // Don't care whether the stack grows up or down,
- // just point to the middle
- CLONE_CHILD_CLEARTID | CLONE_FILES | CLONE_FS | CLONE_PARENT_SETTID |
- CLONE_SIGHAND | CLONE_SYSVSEM | CLONE_THREAD | CLONE_VM,
- nullptr, // thread_main argument
- &child_tid);
-
- if (ret == -1)
- {
- perror("clone");
- return 1;
- }
-
- flag = true;
-
- return 0;
-}