Fix a brain-fail with debuginfo-tests/dexter internal tests

I baked the "test" subcommand into the %dexter substituion, as that's
what all of the dexter tests use. However I forgot about the internal
tests for whether dexters features are working. Install a %dexter_base
command to allow those tests to call dexter.py directly, and un-xfail
the tests on darwin.

Update too the list of paths the unittests shouldn't try and cover, as it
tries to load dbgeng on unix machines. Ideally we wouldn't be using this
method of test discovery in the future.
This commit is contained in:
Jeremy Morse 2019-11-01 12:29:42 +00:00
parent d32a6f0812
commit 7f738c811a
29 changed files with 40 additions and 40 deletions

View File

@ -31,6 +31,8 @@ class DexTestLoader(unittest.TestLoader):
else:
if d == 'windows':
return False
elif d == 'dbgeng':
return False
return fnmatch(path, pattern)

View File

@ -4,7 +4,7 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: not %dexter test --fail-lt 1.0 -w \
// RUN: not %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -glldb" -- %s \
// RUN: | FileCheck %s
// CHECK: expect_program_state.cpp:

View File

@ -4,7 +4,7 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: not %dexter test --fail-lt 1.0 -w \
// RUN: not %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -g" -- %s \
// RUN: | FileCheck %s
// CHECK: expect_step_kinds.cpp:

View File

@ -4,7 +4,7 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: not %dexter test --fail-lt 1.0 -w \
// RUN: not %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -g" -- %s \
// RUN: | FileCheck %s
// CHECK: expect_step_order.cpp:

View File

@ -4,7 +4,7 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: not %dexter test --fail-lt 1.0 -w \
// RUN: not %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -g" -- %s \
// RUN: | FileCheck %s
// CHECK: expect_watch_type.cpp:

View File

@ -4,7 +4,7 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: not %dexter test --fail-lt 1.0 -w \
// RUN: not %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -g" -- %s \
// RUN: | FileCheck %s
// CHECK: expect_watch_value.cpp:

View File

@ -4,7 +4,7 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: not %dexter test --fail-lt 1.0 -w \
// RUN: not %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -g" -- %s \
// RUN: | FileCheck %s
// CHECK: unreachable.cpp:

View File

@ -4,7 +4,7 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: %dexter test --fail-lt 1.0 -w \
// RUN: %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -glldb" -- %s \
// RUN: | FileCheck %s
// CHECK: expect_program_state.cpp:

View File

@ -7,7 +7,7 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: %dexter test --fail-lt 1.0 -w \
// RUN: %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -g" -- %s \
// RUN: | FileCheck %s
// CHECK: direction.cpp:

View File

@ -5,7 +5,7 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: %dexter test --fail-lt 1.0 -w \
// RUN: %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -g" -- %s \
// RUN: | FileCheck %s
// CHECK: func.cpp:

View File

@ -3,8 +3,10 @@
// for a trivial test. Expect one 'FUNC_EXTERNAL' per external call.
//
// REQUIRES: system-linux, lldb
// XFAIL: system-linux
// This fails right now on my linux machine, needs examining as to why.
//
// RUN: %dexter test --fail-lt 1.0 -w \
// RUN: %dexter --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -g" -- %s \
// RUN: | FileCheck %s
// CHECK: func_external.cpp:

View File

@ -5,7 +5,7 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: %dexter test --fail-lt 1.0 -w \
// RUN: %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -g" -- %s \
// RUN: | FileCheck %s
// CHECK: recursive.cpp:

View File

@ -5,7 +5,7 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: %dexter test --fail-lt 1.0 -w \
// RUN: %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -g" -- %s \
// RUN: | FileCheck %s
// CHECK: small_loop.cpp:

View File

@ -4,7 +4,7 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: %dexter test --fail-lt 1.0 -w \
// RUN: %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -g" -- %s \
// RUN: | FileCheck %s
// CHECK: expect_step_order.cpp:

View File

@ -4,7 +4,7 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: %dexter test --fail-lt 1.0 -w \
// RUN: %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -g" -- %s \
// RUN: | FileCheck %s
// CHECK: expect_watch_type.cpp:

View File

@ -4,7 +4,7 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: %dexter test --fail-lt 1.0 -w \
// RUN: %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -g" -- %s \
// RUN: | FileCheck %s
// CHECK: expect_watch_value.cpp:

View File

@ -4,7 +4,7 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: %dexter test --fail-lt 1.0 -w \
// RUN: %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -g" -- %s \
// RUN: | FileCheck %s
// CHECK: unreachable.cpp:

View File

@ -4,7 +4,7 @@
// REQUIRES: system-linux, lldb
//
// RUN: true
// RUN: %dexter clang-opt-bisect --debugger 'lldb' --builder 'clang' \
// RUN: %dexter_base clang-opt-bisect --debugger 'lldb' --builder 'clang' \
// RUN: --cflags "-O0 -g" -- %s \
// RUN: | FileCheck %s
// CHECK: running pass 0

View File

@ -1,8 +1,7 @@
XFAIL: darwin
Purpose:
Check the `help` subtool runs.
RUN: %dexter help | FileCheck %s
RUN: %dexter_base help | FileCheck %s
CHECK: The following subtools are available:
CHECK: clang-opt-bisect
CHECK: help

View File

@ -1,8 +1,7 @@
XFAIL: darwin
Purpose:
Check the `list-debuggers` subtool runs.
RUN: %dexter list-debuggers | FileCheck %s
RUN: %dexter_base list-debuggers | FileCheck %s
CHECK: lldb
CHECK: vs2015
CHECK: vs2017

View File

@ -1,4 +1,3 @@
// XFAIL: darwin
// Purpose:
// Check that parsing bad commands gives a useful error.
// - Unbalanced parenthesis
@ -8,7 +7,7 @@
// Note: Despite using 'lldb' as the debugger, lldb is not actually required
// as the test should finish before lldb would be invoked.
//
// RUN: not %dexter test --builder 'clang' --debugger 'lldb' \
// RUN: not %dexter_base test --builder 'clang' --debugger 'lldb' \
// RUN: --cflags "-O0 -g" -v -- %s \
// RUN: | FileCheck %s --match-full-lines --strict-whitespace
//

View File

@ -1,4 +1,3 @@
// XFAIL: darwin
// Purpose:
// Check that parsing bad commands gives a useful error.
// - Unbalanced parenthesis over multiple lines
@ -8,7 +7,7 @@
// Note: Despite using 'lldb' as the debugger, lldb is not actually required
// as the test should finish before lldb would be invoked.
//
// RUN: not %dexter test --builder 'clang' --debugger "lldb" \
// RUN: not %dexter_base test --builder 'clang' --debugger "lldb" \
// RUN: --cflags "-O0 -g" -v -- %s \
// RUN: | FileCheck %s --match-full-lines --strict-whitespace
//

View File

@ -1,4 +1,3 @@
// XFAIL: darwin
// Purpose:
// Check that parsing bad commands gives a useful error.
// - Syntax error (misplaced ',')
@ -8,7 +7,7 @@
// Note: Despite using 'lldb' as the debugger, lldb is not actually required
// as the test should finish before lldb would be invoked.
//
// RUN: not %dexter test --builder 'clang' --debugger "lldb" \
// RUN: not %dexter_base test --builder 'clang' --debugger "lldb" \
// RUN: --cflags "-O0 -g" -v -- %s \
// RUN: | FileCheck %s --match-full-lines --strict-whitespace
//

View File

@ -1,4 +1,3 @@
// XFAIL: darwin
// Purpose:
// Check that parsing bad commands gives a useful error.
// - Syntax error (misplaced ',') over multiple lines
@ -8,7 +7,7 @@
// Note: Despite using 'lldb' as the debugger, lldb is not actually required
// as the test should finish before lldb would be invoked.
//
// RUN: not %dexter test --builder 'clang' --debugger "lldb" \
// RUN: not %dexter_base test --builder 'clang' --debugger "lldb" \
// RUN: --cflags "-O0 -g" -v -- %s \
// RUN: | FileCheck %s --match-full-lines --strict-whitespace
//

View File

@ -1,4 +1,3 @@
// XFAIL: darwin
// Purpose:
// Check that parsing bad commands gives a useful error.
// - Type error (missing args)
@ -8,7 +7,7 @@
// Note: Despite using 'lldb' as the debugger, lldb is not actually required
// as the test should finish before lldb would be invoked.
//
// RUN: not %dexter test --builder 'clang' --debugger "lldb" \
// RUN: not %dexter_base test --builder 'clang' --debugger "lldb" \
// RUN: --cflags "-O0 -g" -v -- %s \
// RUN: | FileCheck %s --match-full-lines --strict-whitespace
//

View File

@ -1,4 +1,3 @@
// XFAIL: darwin
// Purpose:
// Check that parsing bad commands gives a useful error.
// - Type error (missing args) over multple lines
@ -8,7 +7,7 @@
// Note: Despite using 'lldb' as the debugger, lldb is not actually required
// as the test should finish before lldb would be invoked.
//
// RUN: not %dexter test --builder 'clang' --debugger "lldb" \
// RUN: not %dexter_base test --builder 'clang' --debugger "lldb" \
// RUN: --cflags "-O0 -g" -v -- %s \
// RUN: | FileCheck %s --match-full-lines --strict-whitespace
//

View File

@ -3,11 +3,11 @@
//
// REQUIRES: system-linux, lldb
//
// RUN: %dexter test --fail-lt 1.0 -w \
// RUN: %dexter_base test --fail-lt 1.0 -w \
// RUN: --builder 'clang' --debugger 'lldb' --cflags "-O0 -g" \
// RUN: --results %t -- %s
//
// RUN: %dexter view %t/view.cpp.dextIR | FileCheck %s
// RUN: %dexter_base view %t/view.cpp.dextIR | FileCheck %s
// CHECK: ## BEGIN
// CHECK: ## END
//

View File

@ -1,9 +1,8 @@
XFAIL: darwin
Purpose:
Run DExTer unit tests.
# Dexter returns 1 when no subtools are specified.
RUN: not %dexter --unittest=show-all 2>&1 | FileCheck %s
RUN: not %dexter_base --unittest=show-all 2>&1 | FileCheck %s
CHECK: Ran {{[0-9]+}} tests
CHECK-EMPTY:

View File

@ -97,13 +97,18 @@ if lldb_path is not None:
config.available_features.add('lldb')
# Produce dexter path, lldb path, and combine into the %dexter substitution
# for running a test.
dexter_path = os.path.join(config.debuginfo_tests_src_root,
'dexter', 'dexter.py')
dexter_cmd = '"{}" "{}" test'.format(config.python3_executable, dexter_path)
dexter_test_cmd = '"{}" "{}" test'.format(config.python3_executable, dexter_path)
if lldb_path is not None:
dexter_cmd += ' --lldb-executable {}'.format(lldb_path)
dexter_test_cmd += ' --lldb-executable {}'.format(lldb_path)
tools.append(ToolSubst('%dexter', dexter_test_cmd))
tools.append(ToolSubst('%dexter', dexter_cmd))
# For testing other bits of dexter that aren't under the "test" subcommand,
# have a %dexter_base substitution.
dexter_base_cmd = '"{}" "{}"'.format(config.python3_executable, dexter_path)
tools.append(ToolSubst('%dexter_base', dexter_base_cmd))
tool_dirs = [config.llvm_tools_dir]