diff options
Diffstat (limited to 'tools/intel-features/intel-mpx/test/TestMPXTable.py')
-rw-r--r-- | tools/intel-features/intel-mpx/test/TestMPXTable.py | 169 |
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) - - |