[Lldb-commits] [PATCH] D106035: Remove conditional compilation for WCHAR support in libedit

Raphael Isemann via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Aug 5 02:53:59 PDT 2021

teemperor added a comment.

I ran it a few times and I'm sure it's an actual '"the output didn't show up" timeout and not a random failure. I also checked and my node doesn't have an `.editrc` file or something like that on the node. It's failing on a different Arch Linux bot so I think it's not a borked machine.

Arch should use just the vanilla libedit so I am not sure why it would be different from other distros. IIRC I ran all the tests when I first reviewed this, so I am also a bit confused why this is now failing. When I manually input unicode characters into the old and new prompt both seem to work, so maybe it's the pexpect test setup that is somehow dropping the input?

On a side note: I think this patch actually breaks the way backspace works. With this patch applied, if I enter a command such as '∂∂∂∂∂∂∂∂∂' and then press backspace, the cursor is now moved to the right by (what I assume) is the amount of bytes that I entered. I think there is some strlen logic going on that isn't unicode aware. See below: F18365237: Screenshot 2021-08-05 at 11.51.41.png <https://reviews.llvm.org/F18365237>

In D106035#2927847 <https://reviews.llvm.org/D106035#2927847>, @nealsid wrote:

> :) Shoot.  I definitely want to revert ASAP rather than keep the tree in a bad state.  Just curious, since there are timeout messages in the log, would you be able to try rerunning just that one? I see this, too: 0: b"error: '\xe1\x88\xb4' is not a valid command. So I'm guessing the timeout is a red herring.
> I'll create an Arch VM to test on for future patches.  Thank you and sorry about that.
> In D106035#2927817 <https://reviews.llvm.org/D106035#2927817>, @teemperor wrote:
>> I fear I might also have to congratulate you on your first revert (sorry, couldn't resist that joke). TestUnicode is failing for me with this patch on Arch Linux:
>>   Command Output (stdout):
>>   --
>>   lldb version 14.0.0 (git at github.com:Teemperor/llvm-project revision f9f63e92243ecd6d0df5d6813967a49c8ca79ca5)
>>     clang revision f9f63e92243ecd6d0df5d6813967a49c8ca79ca5
>>     llvm revision f9f63e92243ecd6d0df5d6813967a49c8ca79ca5
>>   Skipping the following test categories: ['libc++', 'dsym', 'gmodules', 'debugserver', 'objc']
>>   --
>>   Command Output (stderr):
>>   --
>>   FAIL: LLDB (/home/teemperor/work/ci/build/bin/clang-x86_64) :: test_unicode_input (TestUnicode.TestCase)
>>   ======================================================================
>>   ERROR: test_unicode_input (TestUnicode.TestCase)
>>   ----------------------------------------------------------------------
>>   Traceback (most recent call last):
>>     File "/home/teemperor/work/ci/llvm-project/lldb/third_party/Python/module/pexpect-4.6/pexpect/expect.py", line 111, in expect_loop
>>       incoming = spawn.read_nonblocking(spawn.maxread, timeout)
>>     File "/home/teemperor/work/ci/llvm-project/lldb/third_party/Python/module/pexpect-4.6/pexpect/pty_spawn.py", line 482, in read_nonblocking
>>       raise TIMEOUT('Timeout exceeded.')
>>   pexpect.exceptions.TIMEOUT: Timeout exceeded.
>>   During handling of the above exception, another exception occurred:
>>   Traceback (most recent call last):
>>     File "/home/teemperor/work/ci/llvm-project/lldb/packages/Python/lldbsuite/test/decorators.py", line 149, in wrapper
>>       return func(*args, **kwargs)
>>     File "/home/teemperor/work/ci/llvm-project/lldb/test/API/iohandler/unicode/TestUnicode.py", line 25, in test_unicode_input
>>       self.expect(u'\u1234', substrs=[u"error: '\u1234' is not a valid command.".encode('utf-8')])
>>     File "/home/teemperor/work/ci/llvm-project/lldb/packages/Python/lldbsuite/test/lldbpexpect.py", line 64, in expect
>>       self.child.expect_exact(s)
>>     File "/home/teemperor/work/ci/llvm-project/lldb/third_party/Python/module/pexpect-4.6/pexpect/spawnbase.py", line 418, in expect_exact
>>       return exp.expect_loop(timeout)
>>     File "/home/teemperor/work/ci/llvm-project/lldb/third_party/Python/module/pexpect-4.6/pexpect/expect.py", line 119, in expect_loop
>>       return self.timeout(e)
>>     File "/home/teemperor/work/ci/llvm-project/lldb/third_party/Python/module/pexpect-4.6/pexpect/expect.py", line 82, in timeout
>>       raise TIMEOUT(msg)
>>   pexpect.exceptions.TIMEOUT: Timeout exceeded.
>>   <pexpect.pty_spawn.spawn object at 0x7f004e20a610>
>>   command: /home/teemperor/work/ci/build/bin/lldb
>>   args: ['/home/teemperor/work/ci/build/bin/lldb', '--no-lldbinit', '--no-use-colors', '-O', 'settings clear -all', '-O', 'settings set symbols.enable-external-lookup false', '-O', 'settings set target.inherit-tcc true', '-O', 'settings set target.detach-on-error false', '-O', 'settings set target.auto-apply-fixits false', '-O', 'settings set plugin.process.gdb-remote.packet-timeout 60', '-O', 'settings set symbols.clang-modules-cache-path "/home/teemperor/work/ci/build/lldb-test-build.noindex/module-cache-lldb/lldb-api"', '-O', 'settings set use-color false', '-O', 'setting set target.prefer-dynamic-value no-dynamic-values']
>>   buffer (last 100 chars): b'\\U+1234\r\n(lldb) '
>>   before (last 100 chars): b'\\U+1234\r\n(lldb) '
>>   after: <class 'pexpect.exceptions.TIMEOUT'>
>>   match: None
>>   match_index: None
>>   exitstatus: None
>>   flag_eof: False
>>   pid: 609226
>>   child_fd: 6
>>   closed: False
>>   timeout: 60
>>   delimiter: <class 'pexpect.exceptions.EOF'>
>>   logfile: None
>>   logfile_read: None
>>   logfile_send: None
>>   maxread: 2000
>>   ignorecase: False
>>   searchwindowsize: None
>>   delaybeforesend: 0.05
>>   delayafterclose: 0.1
>>   delayafterterminate: 0.1
>>   searcher: searcher_string:
>>       0: b"error: '\xe1\x88\xb4' is not a valid command."
>>   Config=x86_64-/home/teemperor/work/ci/build/bin/clang
>>   ----------------------------------------------------------------------
>>   Ran 1 test in 60.551s

  rG LLVM Github Monorepo



More information about the lldb-commits mailing list