summaryrefslogtreecommitdiff
path: root/tools/intel-features/intel-mpx/test/TestMPXTable.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/intel-features/intel-mpx/test/TestMPXTable.py')
-rw-r--r--tools/intel-features/intel-mpx/test/TestMPXTable.py169
1 files changed, 0 insertions, 169 deletions
diff --git a/tools/intel-features/intel-mpx/test/TestMPXTable.py b/tools/intel-features/intel-mpx/test/TestMPXTable.py
deleted file mode 100644
index f571252e26f7..000000000000
--- a/tools/intel-features/intel-mpx/test/TestMPXTable.py
+++ /dev/null
@@ -1,169 +0,0 @@
-"""
-Test mpx-table command.
-"""
-
-from __future__ import print_function
-
-
-import os
-import time
-import re
-import lldb
-from lldbsuite.test.decorators import *
-from lldbsuite.test.lldbtest import *
-from lldbsuite.test import lldbutil
-
-
-class TestMPXTable(TestBase):
-
- mydir = TestBase.compute_mydir(__file__)
-
- def setUp(self):
- TestBase.setUp(self)
-
- @skipIf(compiler="clang")
- @skipIf(oslist=no_match(['linux']))
- @skipIf(archs=no_match(['i386', 'x86_64']))
- @skipIf(compiler="gcc", compiler_version=["<", "5"]) #GCC version >= 5 supports
- #Intel(R) Memory Protection Extensions (Intel(R) MPX).
- def test_show_command(self):
- """Test 'mpx-table show' command"""
- self.build()
-
- lldb_exec_dir = os.environ["LLDB_IMPLIB_DIR"]
- lldb_lib_dir = os.path.join(lldb_exec_dir, os.pardir, "lib")
- plugin_file = os.path.join(lldb_lib_dir, "liblldbIntelFeatures.so")
- if not os.path.isfile(plugin_file):
- self.skipTest("features plugin missing.")
- plugin_command = " "
- seq = ("plugin", "load", plugin_file)
- plugin_command = plugin_command.join(seq)
- self.runCmd(plugin_command)
-
- exe = os.path.join(os.getcwd(), "a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
- self.b1 = line_number('main.cpp', '// Break 1.')
- self.b2 = line_number('main.cpp', '// Break 2.')
- self.b3 = line_number('main.cpp', '// Break 3.')
- self.b4 = line_number('main.cpp', '// Break 4.')
- lldbutil.run_break_set_by_file_and_line(self, "main.cpp", self.b1, num_expected_locations=1)
- lldbutil.run_break_set_by_file_and_line(self, "main.cpp", self.b2, num_expected_locations=1)
- lldbutil.run_break_set_by_file_and_line(self, "main.cpp", self.b3, num_expected_locations=1)
- lldbutil.run_break_set_by_file_and_line(self, "main.cpp", self.b4, num_expected_locations=1)
- self.runCmd("run", RUN_SUCCEEDED)
-
- target = self.dbg.GetSelectedTarget()
- process = target.GetProcess()
-
- if (process.GetState() == lldb.eStateExited):
- self.skipTest("Intel(R) MPX is not supported.")
- else:
- self.expect("thread backtrace", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ["stop reason = breakpoint 1."])
-
- self.expect("mpx-table show a",
- substrs = ['lbound = 0x',
- ', ubound = 0x',
- '(pointer value = 0x',
- ', metadata = 0x',
- ')'],
- error = False)
-
- self.expect("continue", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ["stop reason = breakpoint 2."])
-
- # Check that out of scope pointer cannot be reached.
- #
- self.expect("mpx-table show a",
- substrs = ['Invalid pointer.'],
- error = True)
-
- self.expect("mpx-table show tmp",
- substrs = ['lbound = 0x',
- ', ubound = 0x',
- '(pointer value = 0x',
- ', metadata = 0x',
- ')'],
- error = False)
-
- self.expect("continue", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ["stop reason = breakpoint 3."])
-
- # Check that the pointer value is correctly updated.
- #
- self.expect("mpx-table show tmp",
- substrs = ['lbound = 0x',
- ', ubound = 0x',
- '(pointer value = 0x2',
- ', metadata = 0x',
- ')'],
- error = False)
-
- self.expect("continue", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ["stop reason = breakpoint 4."])
-
- # After going back to main(), check that out of scope pointer cannot be
- # reached.
- #
- self.expect("mpx-table show tmp",
- substrs = ['Invalid pointer.'],
- error = True)
-
- self.expect("mpx-table show a",
- substrs = ['lbound = 0x',
- ', ubound = 0x',
- '(pointer value = 0x',
- ', metadata = 0x',
- ')'],
- error = False)
-
- def test_set_command(self):
- """Test 'mpx-table set' command"""
- self.build()
-
- lldb_exec_dir = os.environ["LLDB_IMPLIB_DIR"]
- lldb_lib_dir = os.path.join(lldb_exec_dir, os.pardir, "lib")
- plugin_file = os.path.join(lldb_lib_dir, "liblldbIntelFeatures.so")
- if not os.path.isfile(plugin_file):
- self.skipTest("features plugin missing.")
- plugin_command = " "
- seq = ("plugin", "load", plugin_file)
- plugin_command = plugin_command.join(seq)
- self.runCmd(plugin_command)
-
- exe = os.path.join(os.getcwd(), "a.out")
- self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
-
- self.b1 = line_number('main.cpp', '// Break 1.')
- lldbutil.run_break_set_by_file_and_line(self, "main.cpp", self.b1, num_expected_locations=1)
- self.runCmd("run", RUN_SUCCEEDED)
-
- target = self.dbg.GetSelectedTarget()
- process = target.GetProcess()
-
- if (process.GetState() == lldb.eStateExited):
- self.skipTest("Intel(R) MPX is not supported.")
- else:
- self.expect("thread backtrace", STOPPED_DUE_TO_BREAKPOINT,
- substrs = ["stop reason = breakpoint 1."])
-
- # Check that the BT Entry doesn't already contain the test values.
- #
- self.expect("mpx-table show a", matching=False,
- substrs = ['lbound = 0xcafecafe',
- ', ubound = 0xbeefbeef'])
-
- # Set the test values.
- #
- self.expect("mpx-table set a 0xcafecafe 0xbeefbeef", error = False)
-
- # Verify that the test values have been correctly written in the BT
- # entry.
- #
- self.expect("mpx-table show a",
- substrs = ['lbound = 0xcafecafe',
- ', ubound = 0xbeefbeef'],
- error = False)
-
-