Libelektra: gopts, quickdump, specload: ํ…Œ์ŠคํŠธ ์‹คํŒจ

์— ๋งŒ๋“  2019๋…„ 08์›” 04์ผ  ยท  28์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ElektraInitiative/libelektra

๋ฌธ์ œ ์žฌํ˜„ ๋‹จ๊ณ„

Elektra๋ฅผ ์ปดํŒŒ์ผ ๋ฐ ์„ค์น˜ํ•˜๊ณ  ์†Œ์Šค/๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ œ๊ฑฐ(๋˜๋Š” ์ด๋ฆ„ ๋ณ€๊ฒฝ)ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ kdb run_all ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ƒ ๊ฒฐ๊ณผ

๋ชจ๋“  ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ ๊ฒฐ๊ณผ

Running testmod_gopts

GOPTS     TESTS
==================

test empty
GOPTS     TESTS
==================

test empty
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/libelektra/src/plugins/gopts/testmod_gopts.c:78: error in run_test: child process test failed
test singleopt
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/libelektra/tests/cframework/tests.c:523: error in clean_temp_home: Could not delete TMPHOME via nftw
GOPTS     TESTS
==================
Running testmod_quickdump
QUICKDUMP     TESTS
==================

test varint
test basics
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/libelektra/src/plugins/quickdump/testmod_quickdump.c:111: error in test_basics: call to kdbSet was not successful

Program received signal SIGSEGV, Segmentation fault.
_IO_getc (fp=0x0) at getc.c:37
37      getc.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0  _IO_getc (fp=0x0) at getc.c:37
#1  0x0000555555556bb7 in compare_binary_files (filename1=<optimized out>, filename2=<optimized out>) at ./src/plugins/quickdump/testmod_quickdump.c:31
#2  0x0000555555556f9a in test_basics () at ./src/plugins/quickdump/testmod_quickdump.c:113
#3  0x0000555555556807 in main (argc=1, argv=0x7fffffffe278) at ./src/plugins/quickdump/testmod_quickdump.c:332
Running testmod_specload

SPECLOAD     TESTS
==================

test basics
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/libelektra/src/plugins/specload/testmod_specload.c:63: error in test_basics: call to checkConfig was not successful
There are 1 warnings
buffer is: warnings/#00
number: C01330
description: Plugin Misbehavior
module: kdb
file: /home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/libelektra/src/libs/elektra/plugin.c
line: 302
reason: Open of plugin returned unsuccessfully: specload. Reason contains plugin, see other warnings for details
reason: 
reason: 
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/libelektra/src/plugins/specload/testmod_specload.c:65: error in test_basics: warnings in kdbOpen for plugin specload
number: C01100
description: : Resource
module: : specload
at: /home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/libelektra/src/plugins/specload/specload.c:372
reason: : App '/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/libelektra/obj-x86_64-linux-gnu/bin/elektra-specload-testapp' doesn't exist or is not executable
mountpoint: : 
configfile: : 
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/libelektra/src/plugins/specload/testmod_specload.c:65: error in test_basics: error in kdbOpen for plugin specload
/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/libelektra/src/plugins/specload/testmod_specload.c:65: fatal in test_basics: could not open specload plugin
error: testmod_specload

์‹œ์Šคํ…œ ์ •๋ณด

  • Elektra ๋ฒ„์ „: ๋งˆ์Šคํ„ฐ

์ถ”๊ฐ€ ์ •๋ณด

๋˜ํ•œ ์†Œ์Šค/๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ œ๊ฑฐ๋œ ํ›„ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋นŒ๋“œ ์„œ๋ฒ„์— ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.

๋ชจ๋“  28 ๋Œ“๊ธ€

specload ํ…Œ์ŠคํŠธ ์‹คํŒจ๋Š” ๋งค์šฐ ๋ช…์‹œ์ ์ž…๋‹ˆ๋‹ค.

reason: : App '/home/jenkins/workspace/libelektra_master-Q2SIBK3KE2NBEMJ4WVGJXAXCSCB77DUBUULVLZDKHQEV3WNDXBMA/libelektra/obj-x86_64-linux-gnu/bin/elektra-specload-testapp' doesn't exist or is not executable

quickdump ์˜ ๊ฒฝ์šฐ ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๋Š”์ง€ ์ •ํ™•ํžˆ ๋งํ•  ์ˆ˜๋Š” ์—†์ง€๋งŒ elektraQuickdumpSet ์–ด๋”˜๊ฐ€์—์„œ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. setKey ์— ์˜ค๋ฅ˜๊ฐ€ ์„ค์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•˜์ง€๋งŒ ๊ธฐ๋ก๋˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(๋ณ€๊ฒฝ๋˜์–ด์•ผ ํ•จ).

gopts ๊ฐ€ ์‹คํŒจํ•˜๋Š” ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์ธ์‡„๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— testapp elektra-gopts-testapp ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค(์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์ธ์‡„๋˜์ง€ ์•Š๋Š” ์œ ์ผํ•œ ๊ฒฝ์šฐ). specload ์˜ค๋ฅ˜์™€๋„ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

์ŠคํŽ™๋กœ๋“œ ํ…Œ์ŠคํŠธ ์‹คํŒจ๋Š” ๋งค์šฐ ๋ช…์‹œ์ ์ž…๋‹ˆ๋‹ค.

์˜ˆ, ํ•˜์ง€๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„ค์น˜๋œ ํ›„ ๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜๋Š” ๊ฒƒ์€ ์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ๋นŒ๋“œ ๋˜๋Š” ์„ค์น˜ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์„ค์น˜ ๋ฐ ๊ฒ€์ƒ‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ŠคํŽ™๋กœ๋“œ ํ…Œ์ŠคํŠธ ์‹คํŒจ๋Š” ๋งค์šฐ ๋ช…์‹œ์ ์ž…๋‹ˆ๋‹ค.

์˜ˆ, ํ•˜์ง€๋งŒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„ค์น˜๋œ ํ›„ ๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜๋Š” ๊ฒƒ์€ ์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ๋นŒ๋“œ ๋˜๋Š” ์„ค์น˜ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์„ค์น˜ ๋ฐ ๊ฒ€์ƒ‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•„, Elektra๋ฅผ ์„ค์น˜ํ•˜์‹  ๊ฑธ ๋†“์ณค์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด quickdump ์‹คํŒจ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์น˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ํ…Œ์ŠคํŠธ ์•ฑ์˜ ์‹คํ–‰ ํŒŒ์ผ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ ํ…Œ์ŠคํŠธ ์‹คํ–‰ ํŒŒ์ผ์€ ํ…Œ์ŠคํŠธ ์•ฑ์„ ์ฐพ๋Š” ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด ์„ค์น˜ ์‹œ๊ฐ„ ๋™์•ˆ ์ˆ˜์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ”์ด๋„ˆ๋ฆฌ(๋นŒ๋“œ ๋˜๋Š” ์„ค์น˜๋œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ)๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ๋งŽ์€ ์ž‘์—…์ด๋ฉฐ, ์„ค์น˜์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ์ œ์™ธํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋‹จ์ˆœํžˆ ์ƒ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์„ค์น˜ํ•˜๋Š” ๋™์•ˆ ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋‘ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„ค, ์ข‹์€ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

๋ณด๋‹ค ์ผ๋ฐ˜์ ์ธ ์†”๋ฃจ์…˜์€ ๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ๋„ kdb <command> ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค(ํ˜„์žฌ Elektra๊ฐ€ ์„ค์น˜๋œ ๊ฒฝ์šฐ์—๋งŒ ์ž‘๋™ํ•จ). KDB_EXEC_PATH๋Š” ํ•˜๋‚˜์˜ ๊ฒฝ๋กœ๋งŒ ์ง€์›ํ•˜์ง€๋งŒ ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ์˜ ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ํฉ์–ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฝค ๋งŽ์€ ์ž‘์—…์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” kdb๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

ํ…Œ์ŠคํŠธ๋Š” ctest ๋ฐ/๋˜๋Š” make ๋ฅผ ํ†ตํ•ด ์‰ฝ๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ช…๋ น์˜ ๊ฒฝ์šฐ ๋Œ€๋ถ€๋ถ„์€ ์„ค์น˜๋œ Elektra ๋ฒ„์ „์—๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋‹จ์ˆœํžˆ ์ƒ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์„ค์น˜ ์ค‘์— ๋™์ผํ•˜๊ฒŒ ์œ ์ง€๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋™์ผํ•œ ๋””๋ ‰ํ† ๋ฆฌ์— ๋‘ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์˜ˆ์ƒ๋ณด๋‹ค ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์ด ๋ฐํ˜€์กŒ์Šต๋‹ˆ๋‹ค. stdlib๋Š” ์ƒ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ํ˜„์žฌ ์ž‘์—… ๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์ƒ๋Œ€ ๊ฒฝ๋กœ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฏ€๋กœ ๋„์›€์ด ๋˜์ง€ ์•Š์œผ๋ฉฐ ํ˜„์žฌ ์‹คํ–‰ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ํ”Œ๋žซํผ ๋…๋ฆฝ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ kdb <command> ๋ฐฉ์‹์€ ์ƒ๋‹นํžˆ ๋งค๋ ฅ์ ์ž…๋‹ˆ๋‹ค.

์„ค์น˜๋ฅผ ์œ„ํ•ด์„œ๋Š” TARGET_TOOL_EXEC_FOLDER์— ์„ค์น˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋นŒ๋“œ ์‹œ๊ฐ„ ๋™์•ˆ์—๋งŒ build_dir/bin build_dir/scripts source_dir/scripts์™€ ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ(๋‘˜ ๋‹ค ๋นŒ๋“œ+์†Œ์Šค์ผ ์ˆ˜๋„ ์žˆ์Œ)๋ฅผ ๊ฒฐํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

@kodebach ์•„์ง ์—ด๋ ค ์žˆ์Šต๋‹ˆ๊นŒ? ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ด ์ƒํ™ฉ์„ ๊ฐ์ง€ํ•˜๊ณ  ์ด ์ƒํ™ฉ์—์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋˜๋Š” ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ KDB_EXEC_PATH๊ฐ€ ๋‹ค์ค‘ ๊ฒฝ๋กœ๋ฅผ ํ—ˆ์šฉํ•˜๋ฏ€๋กœ ๋นŒ๋“œ/์†Œ์Šค ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ํ•„์š”ํ•œ ๋ชจ๋“  ํด๋”๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‹คํ–‰ ํŒŒ์ผ์„ ์ฐพ๋Š” ์ž‘์—…์„ kdb ์— ๋งก๊ธฐ๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

AFAIK ์ด๊ฒƒ์€ ์•„์ง ์—ด๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ.

ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ srcdir_file ํ•จ์ˆ˜๊ฐ€ ์ด๋ฏธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„์Šทํ•œ bindir_file ๋ฅผ ์†Œ๊ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. bindir ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ${CMAKE_INSTALL_PREFIX}/${TARGET_TOOL_EXEC_FOLDER} ์ด์ง€๋งŒ ์žฌ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. CTest๋Š” ctest $๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ bindir ๊ฐ€ ${CMAKE_BINARY_DIR}/bin ๋กœ ์„ค์ •๋˜๋„๋ก (CMake์˜ add_test ๋ฅผ ํ†ตํ•ด) ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋‹จ์ˆœํžˆ bindir๋ฅผ KDB_EXEC_PATH์— ์ถ”๊ฐ€ํ•˜๊ณ  kdb <bin> ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”, ๋ช‡ ๊ฐ€์ง€ ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. testmod_ ํ…Œ์ŠคํŠธ์ด๋ฏ€๋กœ kdb ์— ์˜์กดํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.
  2. ๊ทธ๋Ÿฌ๋ฉด kdb ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? make run_all ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์„ค์น˜๋œ kdb ๊ฐ€ ์•„๋‹ˆ๋ผ ${CMAKE_BINARY_DIR}/bin ์— ์žˆ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  3. $#$ kdb ๋ฅผ ์„ค์น˜ํ•œ ํ›„์—๋„ KDB_EXEC_PATH ์—๋Š” ${CMAKE_BINARY_DIR}/bin ํด๋”๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ testmod_ ํ…Œ์ŠคํŠธ์ด๋ฉฐ kdb์— ์˜์กดํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋ž˜, ๋‚œ ๋™์˜. ๋…๋ฆฝ ์‹คํ–‰ํ˜•์œผ๋กœ ์ž‘๋™ํ•˜๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์–ด๋–ป๊ฒŒ kdb๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์„๊นŒ์š”? make run_all๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์„ค์น˜๋œ kdb๊ฐ€ ์•„๋‹ˆ๋ผ ${CMAKE_BINARY_DIR}/bin์— ์žˆ๋Š” kdb๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Shellrecorder ํ…Œ์ŠคํŠธ๋Š” ์ด๋ฏธ kdb๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์„ค์น˜๋œ Elektra์™€ ๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ(Elektra๊ฐ€ ์„ค์น˜๋œ ๊ฒฝ์šฐ์—๋„) ๋ชจ๋‘์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

KDB_EXEC_PATH์—๋Š” kdb๋ฅผ ์„ค์น˜ํ•œ ํ›„์—๋„ ์—ฌ์ „ํžˆ ${CMAKE_BINARY_DIR}/bin ํด๋”๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์–ด ๋‹ค๋ฅธ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”, ์„ค์น˜๋œ kdb์— ๋Œ€ํ•ด KDB_EXEC_PATH๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค(์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•˜์ง€ ์•Š๋Š” ํ•œ)

Shellrecorder ํ…Œ์ŠคํŠธ๋Š” ์ด๋ฏธ kdb๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์„ค์น˜๋œ Elektra์™€ ๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ(Elektra๊ฐ€ ์„ค์น˜๋œ ๊ฒฝ์šฐ์—๋„) ๋ชจ๋‘์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์‰˜ ํ…Œ์ŠคํŠธ๋Š” ํ•ญ์ƒ "$KDB" ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  kdb ๋Š” ์‹คํ–‰ํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ make run_all ๋ฐ ctest ๋Š” testscr_check_meta.sh ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ˜๋ฉด kdb ๋Š” check_meta.sh ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ์—์„œ ์šฐ๋ฆฌ๋Š” $KDB ๋ฅผ ${CMAKE_BINARY_DIR}/bin/kdb ๋กœ ์„ค์ •ํ–ˆ๊ณ , ๋‘ ๋ฒˆ์งธ ๊ฒƒ์€ ๋‹จ์ˆœํžˆ kdb ๋กœ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค(๋”ฐ๋ผ์„œ $PATH ๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐ๋จ).

์•„๋‹ˆ์š”, ์„ค์น˜๋œ kdb์— ๋Œ€ํ•ด KDB_EXEC_PATH๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค(์‚ฌ์šฉ์ž๊ฐ€ ์„ค์ •ํ•˜์ง€ ์•Š๋Š” ํ•œ)

๋ฐฉ๊ธˆ Elektra์˜ ๋งˆ์Šคํ„ฐ ๋ฒ„์ „์„ ๊ฐ€์ ธ์™€ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. /usr/local/lib/elektra/tool_exec/check_meta ํŒŒ์ผ์—๋Š” ๋‹ค์Œ ์ค„์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

export KDB_EXEC_PATH="/home/klemens/libelektra/build/bin:$KDB_EXEC_PATH"

๋ฌผ๋ก  ์ด๊ฒƒ์€ testmod_* ํ…Œ์ŠคํŠธ์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์ง€๋งŒ ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ค๊ฒ ์Šต๋‹ˆ๋‹ค.

@petermax2 @kodebach ์ด ๋ฌธ์ œ์˜ ์ƒํƒœ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ง€๊ธˆ #3246์ด ์ˆ˜์ •๋˜์—ˆ์œผ๋ฏ€๋กœ(#3409๋ฅผ ํ†ตํ•ด) ์ด ๋ฌธ์ œ์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์€ ํŒจํ‚ค์ง• ๋ฌธ์ œ๋ฟ์ž…๋‹ˆ๊นŒ ์•„๋‹ˆ๋ฉด ๊ตฌํ˜„ํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ด ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๊นŒ?

AFAIK specload ์˜ ์›๋ž˜ ๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. TBH ์™œ testmod_ ํ…Œ์ŠคํŠธ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ง๋„ ์•ˆ๋ผ. ๋‹จ์ผ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฒฉ๋ฆฌํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋…๋ฆฝ ์‹คํ–‰ํ˜• ํ…Œ์ŠคํŠธ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์‹คํ–‰ํ•˜๋ฉด ๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์‹คํ–‰ํ•˜๋“  ์„ค์น˜ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์‹คํ–‰ํ•˜๋“  ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

TBH ์™œ testmod_ ํ…Œ์ŠคํŠธ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š”์ง€ ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํ˜„์žฌ๋กœ์„œ๋Š” ํ…Œ์ŠคํŠธ ์„ค์น˜๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ์˜ต์…˜์ด ์—†์ง€๋งŒ add_plugintest ์ด ํ…Œ์ŠคํŠธ๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š๋„๋ก ๋กœ์ปฌ ์žฌ์ •์˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(INSTALL_TESTING๊ณผ ๊ฐ™์ง€๋งŒ ๊ฐœ๋ณ„ add_plugintest ).

๊ทธ๊ฒƒ์€ ๋ง๋„ ์•ˆ๋ผ. ๋‹จ์ผ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ๊ฒฉ๋ฆฌํ•˜์—ฌ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋…๋ฆฝ ์‹คํ–‰ํ˜• ํ…Œ์ŠคํŠธ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์‹คํ–‰ํ•˜๋ฉด ๋นŒ๋“œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์‹คํ–‰ํ•˜๋“  ์„ค์น˜ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ์‹คํ–‰ํ•˜๋“  ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

:wink:, ๋งŽ์€ ์ฐจ์ด์ ์ด ์žˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์€ ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ ์ž์ฒด์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค(์ง€๊ธˆ๊นŒ์ง€๋Š” ๋ชจ๋‘ ์ˆ˜์ •๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค). ๊ทธ๋Ÿฌ๋‚˜ ์—ฌ์ „ํžˆ ๋‹ค์–‘ํ•œ ์ข…์†์„ฑ ๋ฌธ์ œ์™€ ์„ค์น˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ ์„ค์น˜๋œ ์ƒํƒœ์—์„œ testmod ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋ฌด๊ฒƒ๋„ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋‚ซ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‰˜ ๋ ˆ์ฝ”๋” ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ์œผ๋ฉด testmod ํ…Œ์ŠคํŠธ๊ฐ€ ์“ธ๋ชจ๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ด ๋งž์Šต๋‹ˆ๋‹ค.

  • [X] ๋”ฐ๋ผ์„œ ํ€ต๋คํ”„์˜ ๊ฒฝ์šฐ testmod ํ…Œ์ŠคํŠธ๋ฅผ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • [ ] ์ŠคํŽ™๋กœ๋“œ์˜ ๊ฒฝ์šฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ์ง€๋งŒ ์•„์ฃผ ๋ฏธ๋ฏธํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ดœ์ฐฎ์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋‹ค์‹œ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
  • [ ] gopts์˜ ๊ฒฝ์šฐ ์˜ˆ์ œ ํ”„๋กœ๊ทธ๋žจ์ด doc/tutorials/command-line-options.md์—์„œ ์‹คํ–‰๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@kodebach ์ด ํ…Œ์ŠคํŠธ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ œ์™ธํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

@robaerd CI PR ์ค‘ ํ•˜๋‚˜์—์„œ ์ œ์™ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? (ํŒจํ‚ค์ง€ ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์ „์ด๋‚˜ ์œ„์น˜.)

@markus2330 ํ€ต ๋คํ”„ ๋ฌธ์ œ๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ•ฉ๋‹ˆ๊นŒ? AFAIK ์šฐ๋ฆฌ๋Š” ๊ฑฐ๊ธฐ์—์„œ ๋ฌด์—‡์ด ์ž˜๋ชป๋˜์—ˆ๋Š”์ง€ ๊ฒฐ์ฝ” ์•Œ์•„๋‚ด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋„ ์žฌํ˜„ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

gopts ๋ฐ specload์— ๋Œ€ํ•ด์„œ๋Š” #3618์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์˜ˆ, ์—ฌ์ „ํžˆ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

kdb testmod_quickdump                                                                                                                                                                                                                    
QUICKDUMP     TESTS
==================

test varint
test basics
/home/jenkins/workspace/libelektra_master/libelektra/src/plugins/quickdump/testmod_quickdump.c:111: error in test_basics: call to kdbSet was not successful
zsh: segmentation fault (core dumped)  noglob kdb testmod_quickdump

๋˜๋Š” ์†Œ์Šค์—์„œ ํ˜ธ์ถœํ•  ๋•Œ:

```ํ€ต๋คํ”„ ํ…Œ์ŠคํŠธ

ํ…Œ์ŠคํŠธ ๋ฐ”๋ฆฐํŠธ
ํ…Œ์ŠคํŠธ ๊ธฐ๋ณธ
/home/markus/Projekte/Elektra/current/src/plugins/quickdump/testmod_quickdump.c:92: test_basics์˜ ์˜ค๋ฅ˜: kdbGet ํ˜ธ์ถœ์ด ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
/home/markus/Projekte/Elektra/current/src/plugins/quickdump/testmod_quickdump.c:93: test_basics์˜ ์˜ค๋ฅ˜: mmks2์˜ ์‹ค์ œ ํฌ๊ธฐ๋Š” 0์ด์—ˆ์Šต๋‹ˆ๋‹ค.
/home/markus/Projekte/Elektra/current/src/plugins/quickdump/testmod_quickdump.c:93: test_basics์˜ ์˜ค๋ฅ˜: ํ‚ค ์„ธํŠธ ๋น„๊ต ์‹คํŒจ, ํ‚ค ์„ธํŠธ์˜ ํฌ๊ธฐ๊ฐ€ ํฌ๊ธฐ(mmks1): 8, ํฌ๊ธฐ(mmks2)์™€ ๋™์ผํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 0
mmks1:
0x55a9efd438d0 ํ‚ค: dir:/tests/bench/__112, ๋ฌธ์ž์—ด: gQHLlzB36CqIFlf, meta:/meta/_35: O6xNya6srhNhMFC, meta:/metaMHmeta/_39: ublVuvyh1DgfOKU/_5๋ฉ”ํƒ€:/:2 ZK2xlaRMfobquxp, ๋ฉ”ํƒ€:/๋ฉ”ํƒ€/_90: 0kCcc1pK7hOgY3F
0x55a9efd44250 ํ‚ค: ๋””๋ ‰ํ† ๋ฆฌ:/tests/bench/__114, ๋ฌธ์ž์—ด: , ๋ฉ”ํƒ€:/๋ฐ”์ด๋„ˆ๋ฆฌ:
0x55a9efd441a0 ํ‚ค: ๋””๋ ‰ํ† ๋ฆฌ:/tests/bench/__333, ๋ฌธ์ž์—ด: SxTUAjM6OIpUV6s
0x55a9efd440f0 ํ‚ค: ๋””๋ ‰ํ† ๋ฆฌ:/tests/bench/__506, ๋ฌธ์ž์—ด: cGqEvmXxUayNCf8
0x55a9efd44040 ํ‚ค: ๋””๋ ‰ํ† ๋ฆฌ:/tests/bench/__859, ๋ฌธ์ž์—ด: rOI5aVFGlnjPLYJ
0x55a9efd43f90 ํ‚ค: ๋””๋ ‰ํ† ๋ฆฌ:/tests/bench/__863, ๋ฌธ์ž์—ด: 8IBjbd5pzYBehrs
0x55a9efd43f20 ํ‚ค: dir:/tests/bench/__868, ๋ฌธ์ž์—ด: UVM0OPTf68yNXij
0x55a9efd43d90 ํ‚ค: ๋””๋ ‰ํ† ๋ฆฌ:/tests/bench/__911, ๋ฌธ์ž์—ด: PgNbwPxfeqD30pH, ๋ฉ”ํƒ€:/๋ฉ”ํƒ€/_35: O6xNya6srhNhMFC
mmks2:
/home/markus/Projekte/Elektra/current/src/plugins/quickdump/testmod_quickdump.c:111: test_basics์˜ ์˜ค๋ฅ˜: kdbSet์— ๋Œ€ํ•œ ํ˜ธ์ถœ์ด ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
zsh: ๋ถ„ํ•  ์˜ค๋ฅ˜(์ฝ”์–ด ๋คํ”„๋จ) LD_LIBRARY_PATH=lib bin/testmod_quickdump

Stacktrace:

0 0x00007fa7c770ed74 in _IO_getc(fp=0x0) at getc.c:37

1 0x000055a9ede54c58 in compare_binary_files(filename2=0x55a9efd42a30 "/usr/local/share/elektra/test_data/quickdump/test.quickdump.out", filename1=0x55a9efd429e0/test/test. )

at /home/markus/Projekte/Elektra/current/src/plugins/quickdump/testmod_quickdump.c:31

2 test_basics() at /home/markus/Projekte/Elektra/current/src/plugins/quickdump/testmod_quickdump.c:113

3 /home/markus/Projekte/Elektra/current/src/plugins/quickdump/testmod_quickdump.c:278์˜ ๋ฉ”์ธ(argc=1, argv=0x7ffff28085f8)์˜ 0x000055a9ede545d7


0 0x00007fa7c770ed74 in _IO_getc(fp=0x0) at getc.c:37

37 getc.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt

0 0x00007fa7c770ed74 in _IO_getc(fp=0x0) at getc.c:37

1 0x000055a9ede54c58 in compare_binary_files(filename2=0x55a9efd42a30 "/usr/local/share/elektra/test_data/quickdump/test.quickdump.out", filename1=0x55a9efd429e0/test/test. )

at /home/markus/Projekte/Elektra/current/src/plugins/quickdump/testmod_quickdump.c:31

2 test_basics() at /home/markus/Projekte/Elektra/current/src/plugins/quickdump/testmod_quickdump.c:113

3 /home/markus/Projekte/Elektra/current/src/plugins/quickdump/testmod_quickdump.c:278์˜ ๋ฉ”์ธ(argc=1, argv=0x7ffff28085f8)์˜ 0x000055a9ede545d7

(gdb) bt ์ „์ฒด

0 0x00007fa7c770ed74 in _IO_getc(fp=0x0) at getc.c:37

    result = <optimized out>

1 0x000055a9ede54c58 in compare_binary_files(filename2=0x55a9efd42a30 "/usr/local/share/elektra/test_data/quickdump/test.quickdump.out", filename1=0x55a9efd429e0/test/test. )

at /home/markus/Projekte/Elektra/current/src/plugins/quickdump/testmod_quickdump.c:31
    f2 = 0x0
    c1 = <optimized out>
    f1 = 0x0
    result = 0
    c2 = <optimized out>
    f1 = <optimized out>
    f2 = <optimized out>
    result = <optimized out>
    c1 = <optimized out>
    c2 = <optimized out>
    end1 = <optimized out>
    end2 = <optimized out>

2 test_basics() at /home/markus/Projekte/Elektra/current/src/plugins/quickdump/testmod_quickdump.c:113

    conf = <optimized out>
    modules = 0x55a9efd43a00
    setKey = 0x55a9efd42bb0
    errorKey = <optimized out>
    plugin = 0x55a9efd43b00
    ks = <optimized out>
    infile = 0x55a9efd429e0 "/usr/local/share/elektra/test_data/quickdump/test.quickdump"
    outfile = 0x55a9efd42a30 "/usr/local/share/elektra/test_data/quickdump/test.quickdump.out"
    __func__ = "test_basics"

3 0x000055a9ede545d7(argc=1, argv=0x7ffff28085f8) /home/markus/Projekte/Elektra/current/src/plugins/quickdump/testmod_quickdump.c:27

```

๋˜๋Š” ์†Œ์Šค์—์„œ ํ˜ธ์ถœํ•  ๋•Œ:

ํ…Œ์ŠคํŠธ๋ฅผ ์ง์ ‘ ์‹คํ–‰ํ•  ๋•Œ ctest (์˜ˆ: ctest -R testmod_quickdump --ouptut-on-failure )๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™˜๊ฒฝ, ์ธ์ˆ˜ ๋“ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

์ด ๊ฒฝ์šฐ LD_LIBRARY_PATH=lib bin/testmod_quickdump ../src/plugins/quickdump ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: gdb ๋กœ ๋””๋ฒ„๊ทธํ•˜๋ ค๋Š” ๊ฒฝ์šฐ).


/usr/local/share/elektra/test_data/quickdump/test.quickdump ์ด ์‹œ์Šคํ…œ์— ์กด์žฌํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค์— /usr/local/share/elektra/test_data/quickdump/test.quickdump.out ์— ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ์žˆ์Šต๋‹ˆ๊นŒ? (์•„๋งˆ๋„ sudo kdb testmod_quickdump ๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค)

๊ทธ๋ ‡๋‹ค๋ฉด ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค

output_error (setKey);
output_warnings (setKey);

testmod_quickdump.c:112 ์— ์ถœ๋ ฅ์„ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

elektraQuickdumpSet ๊ฐ€ ์‹คํŒจํ–ˆ์œผ๋ฏ€๋กœ compare_binary_files ๊ฐ€ ์‹คํŒจํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์€ ์™„์ „ํžˆ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. (์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ๋ฌผ๋ก  ๋” ๋‚˜์„ ์ˆ˜ ์žˆ๊ณ  segfault๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ _failed_ ํ…Œ์ŠคํŠธ์ด๋ฏ€๋กœ ๊ทธ๋‹ค์ง€ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค)

๋„ค, ๋ฌธ์ œ๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์ ํ•ฉํ•˜์ง€ ์•Š์€ ํด๋”์— ์ž„์‹œ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. sudo kdb testmod_quickdump ๋Š” ๋ฌธ์ œ ์—†์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ "test_data/quickdump/test.quickdump.out"์„ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž„์‹œ ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ผ๊ณ  ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋งŽ์€ ํ…Œ์ŠคํŠธ๋Š” ์–ด์จŒ๋“  sudo ์—†์ด ์‹คํ–‰๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‹ค์ œ๋กœ ๋ฌธ์ œ๋กœ ๋ณด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ํ…Œ์ŠคํŠธ๋ฅผ ๋ง์”€ํ•˜์‹œ๋Š” ๊ฑด๊ฐ€์š”? ๋‚˜๋Š” ํ•ญ์ƒ sudo ์—†์ด ์ „์ฒด ์ œํ’ˆ๊ตฐ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ Elektra์˜ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์žˆ์Œ). testmod_quickdump๋Š” ํ•ด๋‹น ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ์œ ์ผํ•œ ํ…Œ์ŠคํŠธ์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Elektra์˜ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌผ๋ก  ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ ํ‘œ์ค€ ์‹œ์Šคํ…œ์—์„œ ์ด๋Ÿฌํ•œ ๊ฒฝ๋กœ๋Š” ๋ฃจํŠธ ์•ก์„ธ์Šค ์ „์šฉ์ž…๋‹ˆ๋‹ค.

๋‚˜๋Š” ์—ฌ์ „ํžˆ ์„ค์น˜๋œ Elektra ๋ฒ„์ „์—์„œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ „์ฒด ๊ฐœ๋…์ด ์ด์ƒํ•˜๊ณ  ํ€ต ๋คํ”„ ๋ฌธ์ œ๋Š” ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹ˆ๋ผ ์ˆœ์ „ํžˆ ์‚ฌ์šฉ์ž ๊ถŒํ•œ ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ #3618์—์„œ ๊ฒฝ๋กœ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด์ œ #3618์˜ ์ฝ”๋“œ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ testmod_dump ์—์„œ ์œ ์‚ฌํ•œ ์ฝ”๋“œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ  ์ž˜ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ์™œ ์‹คํŒจํ•˜์ง€ ์•Š์•˜๋Š”์ง€ ๋ชจ๋ฆ…๋‹ˆ๋‹ค. testmod_xmltool ๋น„์Šทํ•œ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์•˜์ง€๋งŒ).

testmod_quickdump ๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ์ค‘ ํ•˜๋‚˜์— ๋ถˆ๊ณผํ•˜๋ฏ€๋กœ compare_line_files ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ๊ฒƒ๋“ค์€ segfault๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ ํ…Œ์ŠคํŠธ๋Š” ์—ฌ์ „ํžˆ ์‹คํŒจํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ํ€ต๋คํ”„ ๋ฌธ์ œ๋Š” ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹ˆ๋ผ ์ˆœ์ „ํžˆ ์‚ฌ์šฉ์ž ๊ถŒํ•œ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

FHS ์œ„๋ฐ˜์ด๋ฉฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ /usr์— ์“ธ ์ˆ˜ ์—†์œผ๋ฉฐ ์ฝ๊ธฐ ์ „์šฉ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์“ฐ๊ธฐ๋ฅผ ์œ„ํ•ด ์ž„์‹œ ํŒŒ์ผ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋ฉฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์™„๋ฃŒ๋œ ํ›„์—๋„ ์ •๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰