Re: encountered failed test cases with latest checkout of libvirt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 03/29/2017 09:01 AM, Dan wrote:
On Wed, Mar 29, 2017 at 1:01 AM, D L <srwx4096@xxxxxxxxx> wrote:

Hi all,

This email content might be duplicated with other thread posted in other
places that I do not know yet where to find or search (please let me know
if it is true). I am working on a small bug of virsh domxml-to-native.
Before I made any changes to the code in order to fix the bug, I 'make
 test'-ed and 'valgrind test'-ed the code, encountered four failures in
'make test' and 19 failures in 'make -C tests valgrind'. What I did today
was the following:

git checkout master
git pull
./autogen.sh --prefix=$(pwd)/build
make
make install
# So far so good, no errors ; however

make check VIR_TEST_EXPENSIVE=1
# generated the following test-suite.log
=========================================
   libvirt 3.2.0: tests/test-suite.log
=========================================

# TOTAL: 115
# PASS:  111
# SKIP:  0
# XFAIL: 0
# FAIL:  4
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: virfirewalltest
=====================

TEST: virfirewalltest
      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 40  FAIL
FAIL virfirewalltest (exit status: 1)

FAIL: networkxml2firewalltest
=============================

TEST: networkxml2firewalltest
                                         0   FAIL
FAIL networkxml2firewalltest (exit status: 1)

FAIL: nwfilterebiptablestest
============================

TEST: nwfilterebiptablestest
                                         0   FAIL
FAIL nwfilterebiptablestest (exit status: 1)

FAIL: nwfilterxml2firewalltest
==============================

TEST: nwfilterxml2firewalltest
                                         0   FAIL
FAIL nwfilterxml2firewalltest (exit status: 1)



make syntax-check VIR_TEST_EXTENSIVE=1
# I did not paste the result here and I do not understand what it means.
# available upon request

Finally,
make -C tests valgrind
# generated file was attached.

It seems most of the valgrind failures were false positives, I can only
tell
by comparing the log file with the examples in the HACKING page. But I
do not have the knowledge to determine.

Could anyone tell me if I am missing something? Having those test failures
is a problem or not? Which ones can be safely ignored? Is there any easier
way to avoid the false positives? I am concerned because I also need to
run the test when I make changes to the code. On the other hand, I would
also like to learn the right way to do the testing or whatever it takes to
make
things right.

I am running linux using vmware Workstation Pro 12 on Windows 10.
Linux version 4.4.55-1-MANJARO (builduser@manjaro) (gcc version 6.3.1
20170306 (GCC) ) #1 SMP PREEMPT



Dan



On ubuntu16 and ubuntu14, ebtables were pre-installed. But on
Archlinux and Debian, ebtables have to be installed explicitly in order to
pass
all test cases in 'make check'.  I found out this after I enabled debugging
checking
$ make check VIR_TEST_DEBUG=2 VIR_TEST_EXPENSIVE=1

Ah, very well you. I'm not sure what to do here. I mean, we should definitely skip networkxml2firewalltest, nwfilterebiptablestest and nwfilterxml2firewalltest if EBTABLES is undefined. But the first one is slightly more tricky as it can use DBUS when available. Well, we can skip it it neither of DBUS and EBTABLES is present. This can be your first patch to libvirt ;-)


For the valgrind testing with 'make -C tests valgrind', the errors were
*mostly* due to
"FATAL: can't open suppressions file "./.valgrind.supp". I am using
valgrind 3.12.0.


That's weird, the file should be there. What is a problem though is our mocking. Due to some weird glibc-ness, valgrind cannot handle libraries that have some unresolved symbols. For instance, if library L that is loaded from binary B provides symbols L1 and L2 but rely on symbol B1, valgrind (in fact glibc) fails to load the binary even though if run without valgrind everything works just fine.

I've looked into this the other day and went from our sources to valgrind ones and from there to glibc where I got lost. For instance, virpcitest fails because virpcimock uses virAlloc, virFree and other internal APIs even though it's not linking with libvirt_util.

Frankly, I've no idea how to fix this. Perhaps Eric have a bright idea?
BTW: linking the mock with libvirt_util fails in exactly the opposite case - when not running under valgrind.

Michal

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]
  Powered by Linux