[lldb-dev] [RFC]The future of pexpect

Davide Italiano via lldb-dev lldb-dev at lists.llvm.org
Wed Jan 30 17:32:42 PST 2019


As you probably know (I didn’t), lldb embeds its own version of
`pexpect-2.4`, which doesn’t support python3.
This is the (relatively short) list of tests relying on pyexpect:

testcases/tools/lldb-mi/syntax/TestMiSyntax.py:        import pexpect
                        # 7 (EOF)
testcases/tools/lldb-mi/lldbmi_testcase.py:        import pexpect
testcases/tools/lldb-mi/signal/TestMiSignal.py:        import pexpect
testcases/tools/lldb-mi/signal/TestMiSignal.py:        import pexpect
testcases/lldbtest.py:            import pexpect
testcases/driver/batch_mode/TestBatchMode.py:        import pexpect
testcases/driver/batch_mode/TestBatchMode.py:        import pexpect
testcases/driver/batch_mode/TestBatchMode.py:        import pexpect
testcases/driver/batch_mode/TestBatchMode.py:        import pexpect
testcases/lldbpexpect.py:    import pexpect
testcases/terminal/TestSTTYBeforeAndAfter.py:        import pexpect
testcases/darwin_log.py:        import pexpect
testcases/macosx/nslog/TestDarwinNSLogOutput.py:        import pexpect
testcases/benchmarks/stepping/TestSteppingSpeed.py:        import pexpect
testcases/benchmarks/frame_variable/TestFrameVariableResponse.py:
  import pexpect
testcases/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py:
       import pexpect
testcases/benchmarks/turnaround/TestCompileRunToBreakpointTurnaround.py:
       import pexpect
testcases/benchmarks/expression/TestExpressionCmd.py:        import pexpect
testcases/benchmarks/expression/TestRepeatedExprs.py:        import pexpect
testcases/benchmarks/expression/TestRepeatedExprs.py:        import pexpect
testcases/benchmarks/startup/TestStartupDelays.py:        import pexpect
testcases/functionalities/command_regex/TestCommandRegex.py:
import pexpect
testcases/functionalities/single-quote-in-filename-to-lldb/TestSingleQuoteInFilename.py:
       import pexpect
testcases/functionalities/format/TestFormats.py:        import pexpect

(I count 14, but there might be something else).

I audited all of them and from what I see they’re almost all testing the driver.
I had a chat with my coworkers and we agreed it's reasonable to
replace them with lit tests (as they're just running commands).
This would allow us to get rid of an external dependency, which
happened to be cause of trouble in the past.

Are there any objections?

Thanks,

--
Davide


More information about the lldb-dev mailing list