Test t-util6 aborts if assertions are active
Closed, ResolvedPublic

Assigned To
Authored By
• ikloecker
Mon, Sep 14, 11:44 AM

Description

Sam James from Gentoo reported:

When updating qgpgme for Gentoo from 2.1.0 -> 2.2.0, I saw the following
test failure when building with -D_GLIBCXX_ASSERTIONS:

$ gdb --args ./t-util6
Reading symbols from ./t-util6...
(gdb) r
Starting program: /var/tmp/portage/dev-libs/qgpgme-2.2.0/work/qgpgme-2.2.0_build/6/tests/t-util6
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
********* Start testing of TestUtil *********
Config: Using QtTest library 6.11.2, Qt 6.11.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 17.0.0 20260909 (experimental) 919c0d16c91c930c374db6665f55595653511636), 'gentoo' '2.18'
PASS   : TestUtil::initTestCase()
/usr/lib/gcc/x86_64-pc-linux-gnu/17/include/g++-v17/string_view:265: constexpr const std::basic_string_view<_CharT, _Traits>::value_type& std::basic_string_view<_CharT, _Traits>::operator[](size_type) const [with _CharT = char; _Traits = std::char_traits<char>; const_reference = const char&; size_type = long unsigned int]: Assertion '__pos < this->_M_len' failed.

Program received signal SIGABRT, Aborted.
0x00007ffff6cabbeb in pthread_kill () from /usr/lib64/libc.so.6
(gdb) bt
#0  0x00007ffff6cabbeb in pthread_kill () from /usr/lib64/libc.so.6
#1  0x00007ffff6c43472 in raise () from /usr/lib64/libc.so.6
#2  0x00007ffff6c250ef in abort () from /usr/lib64/libc.so.6
#3  0x00007ffff709e84f in std::__glibcxx_assert_fail(char const*, int, char const*, char const*) () from /usr/lib/gcc/x86_64-pc-linux-gnu/17/libstdc++.so.6
#4  0x000055555555628e in std::basic_string_view<char, std::char_traits<char> >::operator[] (this=<optimized out>, __pos=<optimized out>) at /usr/lib/gcc/x86_64-pc-linux-gnu/17/include/g++-v17/string_view:265
#5  _qgpgme::split (delimiter=<optimized out>, s=...) at /var/tmp/portage/dev-libs/qgpgme-2.2.0/work/qgpgme-2.2.0/src/util.h:79
#6  0x0000555555556668 in _qgpgme::split (delimiter=44 ',', s=...) at /var/tmp/portage/dev-libs/qgpgme-2.2.0/work/qgpgme-2.2.0/tests/t-util.cpp:50
#7  TestUtil::test_split (this=<optimized out>) at /var/tmp/portage/dev-libs/qgpgme-2.2.0/work/qgpgme-2.2.0/tests/t-util.cpp:54
#8  0x0000555555556689 in TestUtil::qt_static_metacall (_c=<optimized out>, _a=<optimized out>, _o=<optimized out>, _id=<optimized out>)
    at /var/tmp/portage/dev-libs/qgpgme-2.2.0/work/qgpgme-2.2.0_build/6/tests/t-util6_autogen/include/t-util.moc:71
#9  TestUtil::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>)
    at /var/tmp/portage/dev-libs/qgpgme-2.2.0/work/qgpgme-2.2.0_build/6/tests/t-util6_autogen/include/t-util.moc:66
#10 0x00007ffff771b791 in QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) ()
   from /usr/lib64/libQt6Core.so.6
#11 0x00007ffff771bcf3 in QMetaMethod::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) ()
   from /usr/lib64/libQt6Core.so.6
#12 0x00007ffff7d41f9f in ?? () from /usr/lib64/libQt6Test.so.6
#13 0x00007ffff7d44b0a in QTest::qRun() () from /usr/lib64/libQt6Test.so.6
#14 0x00007ffff7d4569e in QTest::qExec(QObject*, int, char**) () from /usr/lib64/libQt6Test.so.6
#15 0x000055555555649e in main (argc=<optimized out>,
argv=0x7fffffffe288) at
/var/tmp/portage/dev-libs/qgpgme-2.2.0/work/qgpgme-2.2.0/tests/t-util.cpp:89

Details

Version
2.2.0