Page MenuHomePhabricator

[libc++] Add a CI job to test the Runtimes build
ClosedPublic

Authored by ldionne on Mar 3 2021, 2:06 PM.

Details

Reviewers
phosek
Group Reviewers
Restricted Project
Commits
rG180e9e5eab49: [libc++] Add a CI job to test the Runtimes build

Diff Detail

Event Timeline

ldionne created this revision.Mar 3 2021, 2:06 PM
ldionne requested review of this revision.Mar 3 2021, 2:06 PM
Herald added a project: Restricted Project. · View Herald TranscriptMar 3 2021, 2:06 PM
Herald added a reviewer: Restricted Project. · View Herald Transcript
ldionne updated this revision to Diff 327919.Mar 3 2021, 2:26 PM

Temporarily remove all other pipeline steps for faster testing

So, if IIUC this will build clang and test libc++(abi) using this freshly built clang, right?

So, if IIUC this will build clang and test libc++(abi) using this freshly built clang, right?

Yes, that's it. I think the Linux builders are beefy enough that it won't take too long, but we'll find out soon.

ldionne updated this revision to Diff 327942.Mar 3 2021, 3:15 PM

Fix test targets

phosek accepted this revision.Mar 3 2021, 4:21 PM

LGTM, in the future we may also consider having a build only for runtimes without Clang (that is using ${MONOREPO_ROOT}/runtimes as the top-level CMake directory).

libcxx/utils/ci/run-buildbot
370

I'd use a full canonical target.

phosek added a comment.Mar 3 2021, 4:34 PM

This may be a bug in the runtimes build, let me look into it.

This may be a bug in the runtimes build, let me look into it.

D97913 should address the issue.

ldionne updated this revision to Diff 328586.Mar 5 2021, 10:41 AM

Rebase onto main

ldionne updated this revision to Diff 331054.Mar 16 2021, 11:58 AM

Rebase onto main

No real comments on the patch, but I noticed the parent revision has been reverted. Does that mean the tests aren't executed?

ldionne updated this revision to Diff 333113.Mar 24 2021, 1:48 PM

Rebase onto main -- now the tests should actually run.

ldionne updated this revision to Diff 333363.Mar 25 2021, 11:13 AM

Rebase onto main, now the tests should pass.

phosek added inline comments.Mar 29 2021, 1:37 AM
libcxx/utils/ci/run-buildbot
370

Turns out this is actually the reason for some of the failing tests. There are some directives in tests that check for linux-gnu but if you use just x86_64-unknown-linux those aren't matched.

Locally I'm also seeing this failure:

FAIL: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:611
GDB printed:
   u"warning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nwarning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nstd::shared_ptr<int> count 2, weak 0 containing = {__ptr_ = 0x46a338}"
Value should match:
   u'std::shared_ptr<int> count 2, weak 0 containing = {__ptr_ = 0x[a-f0-9]+}'
FAIL: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:616
GDB printed:
   u"warning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nwarning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nstd::shared_ptr<int> count 3, weak 0 containing = {__ptr_ = 0x46a338}"
Value should match:
   u'std::shared_ptr<int> count 3, weak 0 containing = {__ptr_ = 0x[a-f0-9]+}'
FAIL: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:622
GDB printed:
   u"warning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nwarning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nstd::shared_ptr<int> count 3, weak 1 containing = {__ptr_ = 0x46a338}"
Value should match:
   u'std::shared_ptr<int> count 3, weak 1 containing = {__ptr_ = 0x[a-f0-9]+}'
FAIL: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:627
GDB printed:
   u"warning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nwarning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nstd::shared_ptr<int> count 3, weak 0 containing = {__ptr_ = 0x46a338}"
Value should match:
   u'std::shared_ptr<int> count 3, weak 0 containing = {__ptr_ = 0x[a-f0-9]+}'
PASS: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:632
FAIL: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:243
GDB printed:
   u'std::bitset<258>Traceback (most recent call last):\n  File "/src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/../../../utils/gdb/libcxx/printers.py", line 444, in _list_it\n    if self.values[word] & (1 << word_bit):\nTypeError: list indices must be integers, not float\n'
Value should match:
   u'std::bitset<258>'
PASS: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:246
FAIL: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:249
GDB printed:
   u'std::bitset<15>Traceback (most recent call last):\n  File "/src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/../../../utils/gdb/libcxx/printers.py", line 444, in _list_it\n    if self.values[word] & (1 << word_bit):\nTypeError: list indices must be integers, not float\n'
Value should match:
   u'std::bitset<15> = {[2] = 1, [3] = 1, [4] = 1, [5] = 1, [6] = 1, [7] = 1, [8] = 1, [9] = 1}'
FAIL: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:257
GDB printed:
   u'std::bitset<258>Traceback (most recent call last):\n  File "/src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/../../../utils/gdb/libcxx/printers.py", line 444, in _list_it\n    if self.values[word] & (1 << word_bit):\nTypeError: list indices must be integers, not float\n'
Value should match:
   u'std::bitset<258> = {[0] = 1, [129] = 1, [132] = 1}'

I haven't seen this on bots so we shouldn't block the submission on this, but I'd like to investigate it to understand why it's failing only under the runtimes build.

Locally I'm also seeing this failure:

FAIL: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:611
GDB printed:
   u"warning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nwarning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nstd::shared_ptr<int> count 2, weak 0 containing = {__ptr_ = 0x46a338}"
Value should match:
   u'std::shared_ptr<int> count 2, weak 0 containing = {__ptr_ = 0x[a-f0-9]+}'
FAIL: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:616
GDB printed:
   u"warning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nwarning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nstd::shared_ptr<int> count 3, weak 0 containing = {__ptr_ = 0x46a338}"
Value should match:
   u'std::shared_ptr<int> count 3, weak 0 containing = {__ptr_ = 0x[a-f0-9]+}'
FAIL: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:622
GDB printed:
   u"warning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nwarning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nstd::shared_ptr<int> count 3, weak 1 containing = {__ptr_ = 0x46a338}"
Value should match:
   u'std::shared_ptr<int> count 3, weak 1 containing = {__ptr_ = 0x[a-f0-9]+}'
FAIL: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:627
GDB printed:
   u"warning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nwarning: RTTI symbol not found for class 'std::__1::__shared_ptr_emplace<int const, std::__1::allocator<int const> >'\nstd::shared_ptr<int> count 3, weak 0 containing = {__ptr_ = 0x46a338}"
Value should match:
   u'std::shared_ptr<int> count 3, weak 0 containing = {__ptr_ = 0x[a-f0-9]+}'

The above are tracked by https://bugs.llvm.org/show_bug.cgi?id=48937. To check, use gcc or build in Debug mode (the test should pass).

PASS: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:632
FAIL: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:243
GDB printed:

u'std::bitset<258>Traceback (most recent call last):\n  File "/src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/../../../utils/gdb/libcxx/printers.py", line 444, in _list_it\n    if self.values[word] & (1 << word_bit):\nTypeError: list indices must be integers, not float\n'

Value should match:

u'std::bitset<258>'

PASS: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:246
FAIL: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:249
GDB printed:

u'std::bitset<15>Traceback (most recent call last):\n  File "/src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/../../../utils/gdb/libcxx/printers.py", line 444, in _list_it\n    if self.values[word] & (1 << word_bit):\nTypeError: list indices must be integers, not float\n'

Value should match:

u'std::bitset<15> = {[2] = 1, [3] = 1, [4] = 1, [5] = 1, [6] = 1, [7] = 1, [8] = 1, [9] = 1}'

FAIL: /src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp:257
GDB printed:

u'std::bitset<258>Traceback (most recent call last):\n  File "/src/clang-llvm/llvm-project/libcxx/test/libcxx/gdb/../../../utils/gdb/libcxx/printers.py", line 444, in _list_it\n    if self.values[word] & (1 << word_bit):\nTypeError: list indices must be integers, not float\n'

Value should match:

u'std::bitset<258> = {[0] = 1, [129] = 1, [132] = 1}'
I haven't seen this on bots so we shouldn't block the submission on this, but I'd like to investigate it to understand why it's failing only under the runtimes build.

Those ones seem to be new.

The above are tracked by https://bugs.llvm.org/show_bug.cgi?id=48937. To check, use gcc or build in Debug mode (the test should pass).

Thanks for the pointer.

Those ones seem to be new.

I figured it out, D99520 is a potential fix.

ldionne updated this revision to Diff 334036.Mar 29 2021, 7:11 PM
ldionne marked 2 inline comments as done.

Use full canonical target

libcxx/utils/ci/run-buildbot
370

Oh, how sloppy of me. I thought I had done it. Thanks.

phosek accepted this revision.Mar 29 2021, 8:56 PM

LGTM

ldionne accepted this revision as: Restricted Project.Mar 30 2021, 6:00 AM
ldionne added a subscriber: DavidSpickett.

I'll ship this since the Runtimes build has been fixed, however the Linaro ARM bots seem to be offline. @DavidSpickett can you please take a look? Here's a build where the ARM jobs are stuck: https://buildkite.com/llvm-project/libcxx-ci/builds/2183

This revision is now accepted and ready to land.Mar 30 2021, 6:00 AM
This revision was landed with ongoing or failed builds.Mar 30 2021, 6:00 AM
This revision was automatically updated to reflect the committed changes.
DavidSpickett added a comment.EditedMar 30 2021, 6:51 AM

I'll ship this since the Runtimes build has been fixed, however the Linaro ARM bots seem to be offline. @DavidSpickett can you please take a look? Here's a build where the ARM jobs are stuck: https://buildkite.com/llvm-project/libcxx-ci/builds/2183

Back online, was a problem on the Linaro side.

I'll ship this since the Runtimes build has been fixed, however the Linaro ARM bots seem to be offline. @DavidSpickett can you please take a look? Here's a build where the ARM jobs are stuck: https://buildkite.com/llvm-project/libcxx-ci/builds/2183

Back online, was a problem on the Linaro side.

Thank you!