Opened 12 years ago
Closed 12 years ago
Last modified 12 years ago
#11665 closed Bug Report - General (fixed)
The test_audioconvert and test_audioutils unit tests fail on a clean sytem with no myth libs installed
Reported by: | paulh | Owned by: | JYA |
---|---|---|---|
Priority: | minor | Milestone: | 0.27 |
Component: | MythTV - General | Version: | Master Head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
To reproduce just remove all the installed myth libs and compile mythtv from the top level directory
make[2]: Leaving directory `/media/src/mythtv-coverity/mythtv/mythtv/libs/libmythbase/test' ../programs/scripts/unittests.sh ././libmyth/test/test_audioconvert/test_audioconvert: error while loading shared libraries: libmythui-0.27.so.0: cannot open shared object file: No such file or directory error: A unit test failed. ././libmyth/test/test_audioutils/test_audioutils: error while loading shared libraries: libmythui-0.27.so.0: cannot open shared object file: No such file or directory error: A unit test failed. . . . error: At least one unit test failed, returning 1
Attachments (3)
Change History (19)
comment:1 Changed 12 years ago by
Version: | Unspecified → Master Head |
---|
comment:2 Changed 12 years ago by
comment:3 Changed 12 years ago by
Status: | new → infoneeded_new |
---|
comment:4 Changed 12 years ago by
This build was for coverity so because there tools don't like ccache or distcc I used
./configure --prefix=/usr --disable-ccache --disable-distcc
I used make -j4 but just tried with no -j4 and got the same result
This is failing in the 'make tests' part of the build so I assume libmythui must have been compiled but not installed at that point.
I only get the problem if there are no myth libs installed which makes me think the audio tests are trying to link to the installed libraries that don't exist yet?
comment:5 Changed 12 years ago by
can you go into mythtv/libs/libmyth/test/test_audioutils/
do make clean make
and post Makefile and the output of make here? the makefile should include in the LFLAGS all the rpath required for the unit test to find the libraries it depends on
Changed 12 years ago by
Attachment: | make_output.txt added |
---|
output from running make in mythtv/libs/libmyth/test/test_audioutils/
Changed 12 years ago by
Makefile from mythtv/libs/libmyth/test/test_audioutils/
comment:6 Changed 12 years ago by
Output from ldd test_audioutils
Notice libmyth is found OK but libmythui and a few others are not
linux-vdso.so.1 (0x00007fff01bff000) libmyth-0.27.so.0 => /media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../libmyth-0.27.so.0 (0x00007f3e2e03a000) libmythbase-0.27.so.0 => /media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../libmythbase/libmythbase-0.27.so.0 (0x00007f3e2dc7b000) libmythavutil.so.52 => /media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/FFmpeg/libavutil/libmythavutil.so.52 (0x00007f3e2da48000) libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007f3e2d7fe000) libXinerama.so.1 => /usr/lib64/libXinerama.so.1 (0x00007f3e2d5fb000) libXxf86vm.so.1 => /usr/lib64/libXxf86vm.so.1 (0x00007f3e2d3f5000) libXv.so.1 => /usr/lib64/libXv.so.1 (0x00007f3e2d1ef000) libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00007f3e2cfe5000) libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007f3e2cca8000) libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007f3e2c94c000) libcrypto.so.1.0.0 => /usr/lib64/libcrypto.so.1.0.0 (0x00007f3e2c578000) libass.so.4 => /usr/lib64/libass.so.4 (0x00007f3e2c35b000) libmp3lame.so.0 => /usr/lib64/libmp3lame.so.0 (0x00007f3e2c0e4000) libasound.so.2 => /usr/lib64/libasound.so.2 (0x00007f3e2be00000) libudev.so.1 => /lib64/libudev.so.1 (0x00007f3e2bbee000) libuuid.so.1 => /lib64/libuuid.so.1 (0x00007f3e2b9e9000) libdl.so.2 => /lib64/libdl.so.2 (0x00007f3e2b7e5000) libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f3e2b546000) libz.so.1 => /lib64/libz.so.1 (0x00007f3e2b331000) libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f3e2b121000) libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007f3e2adfe000) libmythzmq.so.1 => /media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/zeromq/src/.libs/libmythzmq.so.1 (0x00007f3e2abc7000) libmythnzmqt.so.0 => /media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/nzmqt/src/libmythnzmqt.so.0 (0x00007f3e2a9a8000) libmythqjson.so.0 => /media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/qjson/lib/libmythqjson.so.0 (0x00007f3e2a764000) libQtTest.so.4 => /usr/lib64/qt4/libQtTest.so.4 (0x00007f3e2a53e000) libQtSql.so.4 => /usr/lib64/qt4/libQtSql.so.4 (0x00007f3e2a2fc000) libQtXml.so.4 => /usr/lib64/qt4/libQtXml.so.4 (0x00007f3e2a0b7000) libQtGui.so.4 => /usr/lib64/qt4/libQtGui.so.4 (0x00007f3e2940f000) libQtNetwork.so.4 => /usr/lib64/qt4/libQtNetwork.so.4 (0x00007f3e290d0000) libQtCore.so.4 => /usr/lib64/qt4/libQtCore.so.4 (0x00007f3e28bed000) libgthread-2.0.so.0 => /usr/lib64/libgthread-2.0.so.0 (0x00007f3e289eb000) librt.so.1 => /lib64/librt.so.1 (0x00007f3e287e3000) libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007f3e284bf000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f3e282a2000) libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.2/libstdc++.so.6 (0x00007f3e27f9d000) libm.so.6 => /lib64/libm.so.6 (0x00007f3e27ca3000) libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/4.7.2/libgcc_s.so.1 (0x00007f3e27a8d000) libc.so.6 => /lib64/libc.so.6 (0x00007f3e276e5000) libmythui-0.27.so.0 => not found libmythupnp-0.27.so.0 => not found libmythservicecontracts-0.27.so.0 => not found libmythavcodec.so.54 => not found libmythavformat.so.54 => not found libmythswresample.so.0 => not found libQtDBus.so.4 => /usr/lib64/qt4/libQtDBus.so.4 (0x00007f3e27467000) libQtScript.so.4 => /usr/lib64/qt4/libQtScript.so.4 (0x00007f3e26fae000) libudf.so.0 => /usr/lib64/libudf.so.0 (0x00007f3e26da9000) libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007f3e26b9f000) libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007f3e2697e000) libfribidi.so.0 => /usr/lib64/libfribidi.so.0 (0x00007f3e26766000) libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f3e2652b000) libharfbuzz.so.0 => /usr/lib64/libharfbuzz.so.0 (0x00007f3e26295000) libenca.so.0 => /usr/lib64/libenca.so.0 (0x00007f3e26061000) /lib64/ld-linux-x86-64.so.2 (0x00007f3e2e5ff000) libnvidia-tls.so.313.26 => /usr/lib64/libnvidia-tls.so.313.26 (0x00007f3e25e5e000) libnvidia-glcore.so.313.26 => /usr/lib64/libnvidia-glcore.so.313.26 (0x00007f3e2395b000) libpng15.so.15 => /usr/lib64/libpng15.so.15 (0x00007f3e2372e000) libSM.so.6 => /usr/lib64/libSM.so.6 (0x00007f3e23525000) libICE.so.6 => /usr/lib64/libICE.so.6 (0x00007f3e23308000) libXi.so.6 => /usr/lib64/libXi.so.6 (0x00007f3e230f8000) libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007f3e22ef2000) libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007f3e22ce7000) libssl.so.1.0.0 => /usr/lib64/libssl.so.1.0.0 (0x00007f3e22a7c000) libdbus-1.so.3 => /usr/lib64/libdbus-1.so.3 (0x00007f3e2283e000) libcdio.so.14 => /usr/lib64/libcdio.so.14 (0x00007f3e22614000) libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007f3e22410000) libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007f3e2220a000) libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007f3e21fe0000) libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007f3e21d90000) libgraphite2.so.3 => /usr/lib64/libgraphite2.so.3 (0x00007f3e21b72000) libicule.so.50 => /usr/lib64/libicule.so.50 (0x00007f3e2192e000) libicuuc.so.50 => /usr/lib64/libicuuc.so.50 (0x00007f3e215ba000) libffi.so.6 => /usr/lib64/libffi.so.6 (0x00007f3e213b2000) libicudata.so.50 => /usr/lib64/libicudata.so.50 (0x00007f3e1fdde000)
comment:7 Changed 12 years ago by
makes no sense.. utility was compiled with: LFLAGS = -fprofile-arcs -Wl,-rpath=$(PWD)/../../../../external/zeromq/src/.libs/ -Wl,-rpath=$(PWD)/../../../../external/nzmqt/src/ -Wl,-rpath=$(PWD)/../../../../external/qjson/lib/ -Wl,-rpath=$(PWD)/../../../../external/FFmpeg/libavcodec -Wl,-rpath=$(PWD)/../../../../external/FFmpeg/libavutil -Wl,-rpath=$(PWD)/../../../../external/FFmpeg/libavformat -Wl,-rpath=$(PWD)/../../../../external/FFmpeg/libswresample -Wl,-rpath=$(PWD)/../.. -Wl,-rpath=$(PWD)/../../../libmythbase -Wl,-rpath=$(PWD)/../../../libmythui -Wl,-rpath=$(PWD)/../../../libmythupnp -Wl,-rpath=$(PWD)/../../../libmythservicecontracts
the right path to libmythui is provided...
libmythui, libmythupnp etc... aren't directly required by the test executable; they are dependencies of libmyth itself. wonder if that's why those aren't found...
but it does build on all systems I've tried on, including the buildbot.. So something is different in your setting...
comment:8 Changed 12 years ago by
It's definitely compiled the right way: g++ -fprofile-arcs -Wl,-rpath=/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/zeromq/src/.libs/ -Wl,-rpath=/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/nzmqt/src/ -Wl,-rpath=/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/qjson/lib/ -Wl,-rpath=/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/FFmpeg/libavcodec -Wl,-rpath=/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/FFmpeg/libavutil -Wl,-rpath=/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/FFmpeg/libavformat -Wl,-rpath=/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/FFmpeg/libswresample -Wl,-rpath=/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../.. -Wl,-rpath=/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../libmythbase -Wl,-rpath=/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../libmythui -Wl,-rpath=/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../libmythupnp -Wl,-rpath=/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../libmythservicecontracts -o test_audioutils test_audioutils.o moc_test_audioutils.o -L../.. -lmyth-0.27 -L../../../libmythbase -lmythbase-0.27 -L../../../../external/FFmpeg/libavutil -lmythavutil -lXext -lXinerama -lXxf86vm -lXv -lXrandr -lX11 -lxml2 -lcrypto -lass -lmp3lame -lasound -lm -ludev -luuid -pthread -ldl -lfreetype -lz -lbz2 -L/usr/X11R6/lib -lGL -L/media/src/mythtv-git-coverity/mythtv/mythtv/external/zeromq/src/.libs -lmythzmq -L/media/src/mythtv-git-coverity/mythtv/mythtv/external/nzmqt/src -lmythnzmqt -L/media/src/mythtv-git-coverity/mythtv/mythtv/external/qjson/lib -lmythqjson -L/usr/lib -L/usr/lib64/qt4 -lQtTest -L/usr/lib64 -lQtSql -L/usr/lib64/mysql -lQtXml -lQtGui -lQtNetwork -lQtCore -lgthread-2.0 -lrt -lglib-2.0 -lpthread
all the rpath are there...
Can you run: readelf -d test_audioutils | grep RPATH or: objdump -x test_audioutils | grep RPATH
comment:9 Changed 12 years ago by
Output from readelf -d test_audioutils | grep RPATH
0x000000000000000f (RPATH) Library rpath: [/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/zeromq/src/.libs/:/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/nzmqt/src/:/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/qjson/lib/:/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/FFmpeg/libavcodec:/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/FFmpeg/libavutil:/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/FFmpeg/libavformat:/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/FFmpeg/libswresample:/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../..:/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../libmythbase:/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../libmythui:/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../libmythupnp:/media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../libmythservicecontracts]
comment:10 Changed 12 years ago by
can you post the result of the command:
ls -l /media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../libmythui/lib*
and
ls -l /media/src/mythtv-git-coverity/mythtv/mythtv/libs/libmyth/test/test_audioutils/../../../../external/FFmpeg/libavcodec/lib*
comment:11 Changed 12 years ago by
I notice the only path missing are those we aren't explicitly linking too (and we shouldn't have to as it's up to the linker to do that task)
but just in case.
Please try this patch, and test if test_audioutils work.
thanks
comment:12 Changed 12 years ago by
Sorry for the delay.
With the test.diff patch test_audioutils compiles and runs fine :)
There is another similar error appeared since I last tried
test_mpegtables/test_mpegtables: error while loading shared libraries: libmythupnp-0.27.so.0: cannot open shared object file: No such file or directory
There's also this compiler warning in the same area
compiling test_audioconvert.cpp In file included from test_audioconvert.cpp:1:0: test_audioconvert.h: In member function ‘void TestAudioConvert::S16ToS24LSB()’: test_audioconvert.h:164:13: warning: suggest parentheses around ‘+’ inside ‘<<’
comment:13 Changed 12 years ago by
I'm having the same problem on two systems. One with an existing installed head from two months ago and one on a new fresh laptop.
This is the error from the previously installed system:
../programs/scripts/unittests.sh ././libmyth/test/test_audioconvert/test_audioconvert: symbol lookup error: /usr/src/mythtv.20130803/mythtv/libs/libmyth/test/test_audioconvert/../../libmyth-0.27.so.0: undefined symbol: _ZN15MythUIComposite14SetTextFromMapERK5QHashI7QStringS1_E error: A unit test failed. ././libmyth/test/test_audioutils/test_audioutils: symbol lookup error: /usr/src/mythtv.20130803/mythtv/libs/libmyth/test/test_audioutils/../../libmyth-0.27.so.0: undefined symbol: _ZN15MythUIComposite14SetTextFromMapERK5QHashI7QStringS1_E error: A unit test failed.
This is the error from the clean laptop:
********* Finished testing of TestTemplate ********* ././libmyth/test/test_audioutils/test_audioutils: error while loading shared libraries: libmythui-0.27.so.0: cannot open shared object file: No such file or directory error: A unit test failed. ././libmyth/test/test_audioconvert/test_audioconvert: error while loading shared libraries: libmythui-0.27.so.0: cannot open shared object file: No such file or directory error: A unit test failed. error: At least one unit test failed, returning 1 make[1]: *** [test] Error 1 make[1]: Leaving directory `/usr/src/mythtv.20130803/mythtv/libs' make: [test] Error 2 (ignored)
Is this related? What other information can I provide?
comment:14 Changed 12 years ago by
Resolution: | → fixed |
---|---|
Status: | infoneeded_new → closed |
comment:15 Changed 12 years ago by
Milestone: | unknown → 0.27 |
---|
works for me and all the buildbot :)
what's your configure line ?
has libmythui been compiled yet?