libelektra: ABI breakage in libtools

Describe what you wanted to do

Installing libelektra-test_0.8.19-1_amd64.deb and then run all tests with Elektra 0.8.20.

Describe what you expected

Some failing tests are expected:

# heavily changed internal ABIs
test_opmphm_vheap
test_opmphm_vstack
# breaks on every internal KDB change
test_splitget
test_splitset
# changes in fcrypt?
testmod_fcrypt
# changes in INI parser
testmod_ini   
# contract from dump changed:
testtool_samemountpoint
testtool_backend

Fcrypt:

FCRYPT       TESTS
==================

/home/markus/Projekte/Elektra/libelektra/src/plugins/fcrypt/testmod_fcrypt.c:162: error in test_file_operations: kdb set failed
/home/markus/Projekte/Elektra/libelektra/src/plugins/fcrypt/testmod_fcrypt.c:163: error in test_file_operations: file content did not change during encryption
/home/markus/Projekte/Elektra/libelektra/src/plugins/fcrypt/testmod_fcrypt.c:166: error in test_file_operations: kdb get (pregetstorage) failed
/home/markus/Projekte/Elektra/libelektra/src/plugins/fcrypt/testmod_fcrypt.c:170: error in test_file_operations: kdb get (postgetstorage) failed
/home/markus/Projekte/Elektra/libelektra/src/plugins/fcrypt/testmod_fcrypt.c:171: error in test_file_operations: postgetstorage did not encrypt the file again

fcrypt RESULTS: 27 test(s) done. 5 error(s).

INI:

INI         TESTS
==================

/home/markus/Projekte/Elektra/libelektra/src/plugins/ini/testmod_ini.c:44: error in test_plainIniRead: section value was not empty
/home/markus/Projekte/Elektra/libelektra/src/plugins/ini/testmod_ini.c:44: error in test_plainIniRead: section value was not empty
Compare <emptykey
>, with <#@META ini/empty = 
>
in file /usr/share/libelektra-test/test-data/ini/emptyval, line 6.
/home/markus/Projekte/Elektra/libelektra/tests/cframework/tests.c:174: error in compare_line_files: comparing lines failed
/home/markus/Projekte/Elektra/libelektra/src/plugins/ini/testmod_ini.c:106: error in test_plainIniEmptyWrite: files do not match as expected
/home/markus/Projekte/Elektra/libelektra/src/plugins/ini/testmod_ini.c:298: error in test_sectionRead: empty section key is not a binary key
/home/markus/Projekte/Elektra/libelektra/src/plugins/ini/testmod_ini.c:299: error in test_sectionRead: section key contains non null data
/home/markus/Projekte/Elektra/libelektra/src/plugins/ini/testmod_ini.c:303: error in test_sectionRead: section1 key is not a binary key
/home/markus/Projekte/Elektra/libelektra/src/plugins/ini/testmod_ini.c:304: error in test_sectionRead: section1 contains non null data
/home/markus/Projekte/Elektra/libelektra/src/plugins/ini/testmod_ini.c:316: error in test_sectionRead: section2 key is not a binary key
/home/markus/Projekte/Elektra/libelektra/src/plugins/ini/testmod_ini.c:317: error in test_sectionRead: section2 contains non null data

test_ini RESULTS: 194 test(s) done. 10 error(s).

Describe what actually happened

Some crashes indicate an ABI break of public ABIs, in particular libelektra-tools:

testtool_backend
testtool_backendbuilder
testtool_backendparser
testtool_keyhelper
testtool_mergingkdb
testtool_pluginspec
testtool_specreader
testtool_umount

with the errors:

--- running testtool_backendbuilder ---


Running main() from gtest_main.cc
[==========] Running 30 tests from 2 test cases.
[----------] Global test environment set-up.
[----------] 26 tests from BackendBuilder
[ RUN      ] BackendBuilder.withDatabase
/usr/lib/elektra/tool_exec/testtool_backendbuilder: symbol lookup error: /usr/lib/elektra/tool_exec/testtool_backendbuilder: undefined symbol: _ZN3kdb5tools10PluginSpecC1ESsNS_6KeySetE
error: testtool_backendbuilder
--- running testtool_backendparser ---


Running main() from gtest_main.cc
[==========] Running 10 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 10 tests from MountBackendBuilder
[ RUN      ] MountBackendBuilder.parsePluginArguments
/usr/lib/elektra/tool_exec/testtool_backendparser: symbol lookup error: /usr/lib/elektra/tool_exec/testtool_backendparser: undefined symbol: _ZN3kdb5tools20parsePluginArgumentsERKSsS2_
error: testtool_backendparser

--- running testtool_keyhelper ---


Running main() from gtest_main.cc
[==========] Running 10 tests from 4 test cases.
[----------] Global test environment set-up.
[----------] 4 tests from RebasePath
[ RUN      ] RebasePath.RebasesCorrectlyWithValidArguments
/usr/lib/elektra/tool_exec/testtool_keyhelper: symbol lookup error: /usr/lib/elektra/tool_exec/testtool_keyhelper: undefined symbol: _ZN3kdb5tools6helper10rebasePathERKNS_3KeyES4_S4_
error: testtool_keyhelper
--- running testtool_mergingkdb ---


Running main() from gtest_main.cc
[==========] Running 3 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 3 tests from MergingKDBTest
[ RUN      ] MergingKDBTest.HandlesUnconflictingKeySets
/usr/lib/elektra/tool_exec/testtool_mergingkdb: symbol lookup error: /usr/lib/elektra/tool_exec/testtool_mergingkdb: undefined symbol: _ZN3kdb5tools10PluginSpecC1ESsNS_6KeySetE
error: testtool_mergingkdb
--- running testtool_specreader ---


Running main() from gtest_main.cc
[==========] Running 12 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 12 tests from SpecReader
[ RUN      ] SpecReader.withDatabase
/usr/lib/elektra/tool_exec/testtool_specreader: symbol lookup error: /usr/lib/elektra/tool_exec/testtool_specreader: undefined symbol: _ZN3kdb5tools10PluginSpecC1ESsNS_6KeySetE
error: testtool_specreader
--- running testtool_umount ---


Running main() from gtest_main.cc
[==========] Running 20 tests from 1 test case.
[----------] Global test environment set-up.
[----------] 20 tests from Umount
[ RUN      ] Umount.SimpleRoot
/usr/lib/elektra/tool_exec/testtool_umount: symbol lookup error: /usr/lib/elektra/tool_exec/testtool_umount: undefined symbol: _ZN3kdb5tools8Backends6umountERKSsRNS_6KeySetE
error: testtool_umount

System Information

  • Elektra Version: master (a351691e4e8c7c916fa0864ece0e44a9634240d6) and 0.8.19 tests

Further Log Files and Output

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 15 (15 by maintainers)

Commits related to this issue

Most upvoted comments

@markus2330 I’m not sure if i can be a big help regarding the abi changes, but your suggestion to think about the type system integration was very useful. I’ve opened a separate issue for discussions about that, as it doesn’t really belong to this issue and got quite large.

You can safely assume that only changes in src/libs/tools/include are relevant (for C++ libtools breakage).