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
- Avoid ABI break Revert "cpp: add const for parentKey" This reverts commit 7a5e0694dc065ed909675595da2bb07975d0da77. see #1668 — committed to ElektraInitiative/libelektra by deleted user 7 years ago
@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).