[PATCH] D68708: [RFC] Adopt Dexter and use it to run debuginfo-tests

Jeremy Morse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 9 08:26:33 PDT 2019


jmorse created this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

This is a patch demonstrating the changes we'd like to make for an RFC I'm about to send to llvm-dev@, to use the Dexter tool for running debuginfo tests. Broadly, this patch:

- Imports the Dexter codebase (written in python) from https://github.com/snsystems/dexter into the debuginfo-tests directory
- Converts a variety of old {ll,g}db tests to be runnable by Dexter and drops them in the debuginfo-tests/dexter-tests directory
- Does similar for a bunch of CDB / dbgeng tests
- Glues these things in so that all (the supported) tests run when one runs 'ninja check-debuginfo' or check-all.

More context in the email, which I'll link here once it's sent.

You can also browse the tree at https://github.com/jmorse/llvm-project/tree/dexter-rfc


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D68708

Files:
  debuginfo-tests/README.txt
  debuginfo-tests/aggregate-indirect-arg.cpp
  debuginfo-tests/apple-accel.cpp
  debuginfo-tests/asan-blocks.c
  debuginfo-tests/asan-deque.cpp
  debuginfo-tests/asan.c
  debuginfo-tests/block_var.m
  debuginfo-tests/blocks.m
  debuginfo-tests/ctor.cpp
  debuginfo-tests/dbg-arg.c
  debuginfo-tests/dexter-tests/aggregate-indirect-arg.cpp
  debuginfo-tests/dexter-tests/asan-deque.cpp
  debuginfo-tests/dexter-tests/asan.c
  debuginfo-tests/dexter-tests/ctor.cpp
  debuginfo-tests/dexter-tests/dbg-arg.c
  debuginfo-tests/dexter-tests/global-constant.cpp
  debuginfo-tests/dexter-tests/hello.c
  debuginfo-tests/dexter-tests/inline-line-gap.cpp
  debuginfo-tests/dexter-tests/lit.local.cfg
  debuginfo-tests/dexter-tests/nrvo-string.cpp
  debuginfo-tests/dexter-tests/nrvo.cpp
  debuginfo-tests/dexter-tests/realigned-frame.cpp
  debuginfo-tests/dexter-tests/stack-var.c
  debuginfo-tests/dexter-tests/vla.c
  debuginfo-tests/dexter/.gitignore
  debuginfo-tests/dexter/Commands.md
  debuginfo-tests/dexter/LICENSE.txt
  debuginfo-tests/dexter/README.md
  debuginfo-tests/dexter/dex/__init__.py
  debuginfo-tests/dexter/dex/builder/Builder.py
  debuginfo-tests/dexter/dex/builder/ParserOptions.py
  debuginfo-tests/dexter/dex/builder/__init__.py
  debuginfo-tests/dexter/dex/builder/scripts/posix/clang-c.sh
  debuginfo-tests/dexter/dex/builder/scripts/posix/clang.sh
  debuginfo-tests/dexter/dex/builder/scripts/windows/clang-cl_vs2015.bat
  debuginfo-tests/dexter/dex/builder/scripts/windows/clang.bat
  debuginfo-tests/dexter/dex/command/CommandBase.py
  debuginfo-tests/dexter/dex/command/ParseCommand.py
  debuginfo-tests/dexter/dex/command/StepValueInfo.py
  debuginfo-tests/dexter/dex/command/__init__.py
  debuginfo-tests/dexter/dex/command/commands/DexExpectProgramState.py
  debuginfo-tests/dexter/dex/command/commands/DexExpectStepKind.py
  debuginfo-tests/dexter/dex/command/commands/DexExpectStepOrder.py
  debuginfo-tests/dexter/dex/command/commands/DexExpectWatchBase.py
  debuginfo-tests/dexter/dex/command/commands/DexExpectWatchType.py
  debuginfo-tests/dexter/dex/command/commands/DexExpectWatchValue.py
  debuginfo-tests/dexter/dex/command/commands/DexLabel.py
  debuginfo-tests/dexter/dex/command/commands/DexUnreachable.py
  debuginfo-tests/dexter/dex/command/commands/DexWatch.py
  debuginfo-tests/dexter/dex/debugger/DebuggerBase.py
  debuginfo-tests/dexter/dex/debugger/Debuggers.py
  debuginfo-tests/dexter/dex/debugger/__init__.py
  debuginfo-tests/dexter/dex/debugger/dbgeng/README.md
  debuginfo-tests/dexter/dex/debugger/dbgeng/__init__.py
  debuginfo-tests/dexter/dex/debugger/dbgeng/breakpoint.py
  debuginfo-tests/dexter/dex/debugger/dbgeng/client.py
  debuginfo-tests/dexter/dex/debugger/dbgeng/control.py
  debuginfo-tests/dexter/dex/debugger/dbgeng/dbgeng.py
  debuginfo-tests/dexter/dex/debugger/dbgeng/probe_process.py
  debuginfo-tests/dexter/dex/debugger/dbgeng/setup.py
  debuginfo-tests/dexter/dex/debugger/dbgeng/symbols.py
  debuginfo-tests/dexter/dex/debugger/dbgeng/symgroup.py
  debuginfo-tests/dexter/dex/debugger/dbgeng/sysobjs.py
  debuginfo-tests/dexter/dex/debugger/dbgeng/utils.py
  debuginfo-tests/dexter/dex/debugger/lldb/LLDB.py
  debuginfo-tests/dexter/dex/debugger/lldb/__init__.py
  debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio.py
  debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio2015.py
  debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio2017.py
  debuginfo-tests/dexter/dex/debugger/visualstudio/__init__.py
  debuginfo-tests/dexter/dex/debugger/visualstudio/windows/ComInterface.py
  debuginfo-tests/dexter/dex/debugger/visualstudio/windows/__init__.py
  debuginfo-tests/dexter/dex/dextIR/BuilderIR.py
  debuginfo-tests/dexter/dex/dextIR/DebuggerIR.py
  debuginfo-tests/dexter/dex/dextIR/DextIR.py
  debuginfo-tests/dexter/dex/dextIR/FrameIR.py
  debuginfo-tests/dexter/dex/dextIR/LocIR.py
  debuginfo-tests/dexter/dex/dextIR/ProgramState.py
  debuginfo-tests/dexter/dex/dextIR/StepIR.py
  debuginfo-tests/dexter/dex/dextIR/ValueIR.py
  debuginfo-tests/dexter/dex/dextIR/__init__.py
  debuginfo-tests/dexter/dex/heuristic/Heuristic.py
  debuginfo-tests/dexter/dex/heuristic/__init__.py
  debuginfo-tests/dexter/dex/tools/Main.py
  debuginfo-tests/dexter/dex/tools/TestToolBase.py
  debuginfo-tests/dexter/dex/tools/ToolBase.py
  debuginfo-tests/dexter/dex/tools/__init__.py
  debuginfo-tests/dexter/dex/tools/clang_opt_bisect/Tool.py
  debuginfo-tests/dexter/dex/tools/clang_opt_bisect/__init__.py
  debuginfo-tests/dexter/dex/tools/help/Tool.py
  debuginfo-tests/dexter/dex/tools/help/__init__.py
  debuginfo-tests/dexter/dex/tools/list_debuggers/Tool.py
  debuginfo-tests/dexter/dex/tools/list_debuggers/__init__.py
  debuginfo-tests/dexter/dex/tools/no_tool_/Tool.py
  debuginfo-tests/dexter/dex/tools/no_tool_/__init__.py
  debuginfo-tests/dexter/dex/tools/run_debugger_internal_/Tool.py
  debuginfo-tests/dexter/dex/tools/run_debugger_internal_/__init__.py
  debuginfo-tests/dexter/dex/tools/test/Tool.py
  debuginfo-tests/dexter/dex/tools/test/__init__.py
  debuginfo-tests/dexter/dex/tools/view/Tool.py
  debuginfo-tests/dexter/dex/tools/view/__init__.py
  debuginfo-tests/dexter/dex/utils/Environment.py
  debuginfo-tests/dexter/dex/utils/Exceptions.py
  debuginfo-tests/dexter/dex/utils/ExtArgParse.py
  debuginfo-tests/dexter/dex/utils/PrettyOutputBase.py
  debuginfo-tests/dexter/dex/utils/ReturnCode.py
  debuginfo-tests/dexter/dex/utils/RootDirectory.py
  debuginfo-tests/dexter/dex/utils/Timer.py
  debuginfo-tests/dexter/dex/utils/UnitTests.py
  debuginfo-tests/dexter/dex/utils/Version.py
  debuginfo-tests/dexter/dex/utils/Warning.py
  debuginfo-tests/dexter/dex/utils/WorkingDirectory.py
  debuginfo-tests/dexter/dex/utils/__init__.py
  debuginfo-tests/dexter/dex/utils/posix/PrettyOutput.py
  debuginfo-tests/dexter/dex/utils/posix/__init__.py
  debuginfo-tests/dexter/dex/utils/windows/PrettyOutput.py
  debuginfo-tests/dexter/dex/utils/windows/__init__.py
  debuginfo-tests/dexter/dexter.py
  debuginfo-tests/dexter/feature_tests/Readme.md
  debuginfo-tests/dexter/feature_tests/commands/penalty/expect_program_state.cpp
  debuginfo-tests/dexter/feature_tests/commands/penalty/expect_step_kinds.cpp
  debuginfo-tests/dexter/feature_tests/commands/penalty/expect_step_order.cpp
  debuginfo-tests/dexter/feature_tests/commands/penalty/expect_watch_type.cpp
  debuginfo-tests/dexter/feature_tests/commands/penalty/expect_watch_value.cpp
  debuginfo-tests/dexter/feature_tests/commands/penalty/unreachable.cpp
  debuginfo-tests/dexter/feature_tests/commands/perfect/expect_program_state.cpp
  debuginfo-tests/dexter/feature_tests/commands/perfect/expect_step_kind/direction.cpp
  debuginfo-tests/dexter/feature_tests/commands/perfect/expect_step_kind/func.cpp
  debuginfo-tests/dexter/feature_tests/commands/perfect/expect_step_kind/func_external.cpp
  debuginfo-tests/dexter/feature_tests/commands/perfect/expect_step_kind/recursive.cpp
  debuginfo-tests/dexter/feature_tests/commands/perfect/expect_step_kind/small_loop.cpp
  debuginfo-tests/dexter/feature_tests/commands/perfect/expect_step_order.cpp
  debuginfo-tests/dexter/feature_tests/commands/perfect/expect_watch_type.cpp
  debuginfo-tests/dexter/feature_tests/commands/perfect/expect_watch_value.cpp
  debuginfo-tests/dexter/feature_tests/commands/perfect/unreachable.cpp
  debuginfo-tests/dexter/feature_tests/lit.local.cfg
  debuginfo-tests/dexter/feature_tests/subtools/clang-opt-bisect/clang-opt-bisect.cpp
  debuginfo-tests/dexter/feature_tests/subtools/help/help.test
  debuginfo-tests/dexter/feature_tests/subtools/list-debuggers/list-debuggers.test
  debuginfo-tests/dexter/feature_tests/subtools/test/err_paren.cpp
  debuginfo-tests/dexter/feature_tests/subtools/test/err_paren_mline.cpp
  debuginfo-tests/dexter/feature_tests/subtools/test/err_syntax.cpp
  debuginfo-tests/dexter/feature_tests/subtools/test/err_syntax_mline.cpp
  debuginfo-tests/dexter/feature_tests/subtools/test/err_type.cpp
  debuginfo-tests/dexter/feature_tests/subtools/test/err_type_mline.cpp
  debuginfo-tests/dexter/feature_tests/subtools/view.cpp
  debuginfo-tests/dexter/feature_tests/unittests/run.test
  debuginfo-tests/foreach.m
  debuginfo-tests/forward-declare-class.cpp
  debuginfo-tests/lit.cfg.py
  debuginfo-tests/lit.local.cfg
  debuginfo-tests/lit.site.cfg.py.in
  debuginfo-tests/llgdb-tests/apple-accel.cpp
  debuginfo-tests/llgdb-tests/asan-blocks.c
  debuginfo-tests/llgdb-tests/asan-deque.cpp
  debuginfo-tests/llgdb-tests/asan.c
  debuginfo-tests/llgdb-tests/block_var.m
  debuginfo-tests/llgdb-tests/blocks.m
  debuginfo-tests/llgdb-tests/foreach.m
  debuginfo-tests/llgdb-tests/forward-declare-class.cpp
  debuginfo-tests/llgdb-tests/lit.local.cfg
  debuginfo-tests/llgdb-tests/llgdb.py
  debuginfo-tests/llgdb-tests/nested-struct.cpp
  debuginfo-tests/llgdb-tests/nrvo-string.cpp
  debuginfo-tests/llgdb-tests/safestack.c
  debuginfo-tests/llgdb-tests/static-member-2.cpp
  debuginfo-tests/llgdb-tests/static-member.cpp
  debuginfo-tests/llgdb-tests/test_debuginfo.pl
  debuginfo-tests/llgdb.py
  debuginfo-tests/nested-struct.cpp
  debuginfo-tests/nrvo-string.cpp
  debuginfo-tests/safestack.c
  debuginfo-tests/sret.cpp
  debuginfo-tests/stack-var.c
  debuginfo-tests/static-member-2.cpp
  debuginfo-tests/static-member.cpp
  debuginfo-tests/test_debuginfo.pl
  debuginfo-tests/vla.c
  debuginfo-tests/win_cdb-tests/README.txt
  debuginfo-tests/win_cdb-tests/lit.local.cfg.py
  debuginfo-tests/win_cdb/README.txt
  debuginfo-tests/win_cdb/global-constant.cpp
  debuginfo-tests/win_cdb/hello.c
  debuginfo-tests/win_cdb/inline-line-gap.cpp
  debuginfo-tests/win_cdb/lit.local.cfg.py
  debuginfo-tests/win_cdb/nrvo.cpp
  debuginfo-tests/win_cdb/realigned-frame.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D68708.224052.patch
Type: text/x-patch
Size: 406052 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191009/ab3f86d4/attachment-0001.bin>


More information about the llvm-commits mailing list