[lvm-devel] Asking for help with LVM testing
Zdenek Kabelac
zkabelac at redhat.com
Tue Jun 6 10:14:53 UTC 2017
Dne 6.6.2017 v 05:27 Eric Ren napsal(a):
> Hi Zdenek and all,
>
> I'm facing some problems with using LVM test code. Please help give
> confirmation,
> or suggestion on questions below:
>
> 1. Is upstream running LVM testsuite upon every new commit?
basically yes
> I hope I can setup a CI testing machine for upstream code. Unfortunately,
> I cannot even successfully run testsuite from source code as follows:
>
> =========
> # ./configure
> ... no errors ...
plain configure is hardly every useful enough - in reality you need to pass
number of flags (distro packager's work)
here is an example of my testing one...
configure --prefix=/var/tmp/lvm --cache-file config.cache
--with-clvmd=singlenode --enable-dmeventd --enable-udev_sync --enable-ocf
--enable-debug --with-optimisation=-g --enable-valgrind-pool --enable-cmdlib
--enable-applib --enable-lvmetad --enable-lvmpolld --enable-dmfilemapd
--enable-pkgconfig --with-confdir=/var/tmp/lvm/etc
--with-default-system-dir=/var/tmp/lvm/etc/lvm
> # make
> ... no errors ...
> # make install
> ... no errors ...
> # make -C test
> ... no errors...
> # make -C test install
> ...
> /usr/bin/install -c -m 755 -d /usr/share/lvm2-testsuite/{shell,api,lib,dbus}
> /libexec/lvm2-testsuite
> /usr/bin/install -c -p -m 444 shell/*.sh /usr/share/lvm2-testsuite/shell
> /usr/bin/install -c -p -m 444 api/*.sh /usr/share/lvm2-testsuite/api
> /usr/bin/install -c -p -m 444 lib/mke2fs.conf /usr/share/lvm2-testsuite/lib
> /usr/bin/install -c -m 555 api/*.{t,py} /usr/share/lvm2-testsuite/api
> /usr/bin/install: cannot stat ‘api/*.t’: No such file or directory
> make: *** [install] Error 1
> make: Leaving directory `/root/lvm2/test'
> # lvm2-testsuite
> lvm2-testsuite: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found
> (required by lvm2-testsuite)
> lvm2-testsuite: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
> (required by lvm2-testsuite)
for test suite you need installed g++ & libstdc++
> =======
> # ./configure --help|grep test
> --enable-testing enable testing targets in the makefile
> [root at centos1 lvm2]# ./configure --enable-testing
> ...
> checking for CUNIT... no
> configure: error: Package requirements (cunit >= 2.0) were not met:
>
these unit 'testings' are extra (not enabled by default) as they do require
extra KnowHow to use and evaluate them and the are not all the useful..
> No package 'cunit' found
> # yum search cunit
> Warning: No matches found for: cunit
On my rawhide: CUnit-2.1.3-14.fc26.x86_64
> 2. Are all LVM testcases passed for upstream code now?
Mostly yes - but they are some issues and problems for resolving.
>
> I found many failed testcases on Tumbleweed 20170602:
>
> ======
> # rpm -qa | grep lvm2
> lvm2-2.02.170-3.2.x86_64
> lvm2-testsuite-2.02.170-3.2.x86_64
>
> # lvm2-testsuite --flavours udev-lvmetad
> ....
> ### 277 tests: 227 passed, 26 skipped, 0 timed out, 6 warned, 18 failed
Doesn't look right
I'd recommend to go to:
cd tests
make check_local
you may add 'VERBOSE=1' i.e.: 'make check_local T=lvcreate VERBOSE=1'
(see 'make help' in /test for more opts)
>
> # cat list | grep failed
> udev-lvmetad:shell/fsadm.sh failed
without passing actual log of test (stored in 'results') subdir I cannot give
any recommendation what's wrong (but I may just guess you've configured your
lvm2 without udev support - thus most of test will simply fail on udev system).
> udev-lvmetad:shell/lvchange-cache-old.sh failed
> udev-lvmetad:shell/lvchange-cache.sh failed
> udev-lvmetad:shell/lvchange-raid.sh failed
> udev-lvmetad:shell/lvconvert-cache-thin.sh failed
> udev-lvmetad:shell/lvconvert-raid-takeover.sh failed
> udev-lvmetad:shell/lvconvert-thin-external-cache.sh failed
> udev-lvmetad:shell/lvcreate-cache-snapshot.sh failed
> udev-lvmetad:shell/lvcreate-cache.sh failed
> udev-lvmetad:shell/lvcreate-usage.sh failed
> udev-lvmetad:shell/lvmetad-pvscan-nomda-bg.sh failed
> udev-lvmetad:shell/lvmetad-pvscan-nomda.sh failed
> udev-lvmetad:shell/lvrename-cache-thin.sh failed
> udev-lvmetad:shell/lvresize-full.sh failed
> udev-lvmetad:shell/metadata.sh failed
> udev-lvmetad:shell/pvmove-cache-segtypes.sh failed
> udev-lvmetad:shell/read-ahead.sh failed
> udev-lvmetad:shell/thin-overprovisioning.sh failed
> =====
>
> Curiously, some of them failed caused by, like lvcreate-usage.sh failed:
>
> ======
> field="lv_kernel_read_ahead", actual="512.00k", expected="128.00k"
> But, on openSUSE:
> # cat /sys/dev/block/253\:8/bdi/read_ahead_kb
> 512
> On centos 7.3.1611:
> # cat /sys/dev/block/253\:2/bdi/read_ahead_kb
> 4096
Well clearly Suse box is not so far in our running setup - thus some extra
kernel patches which do change some kernel defaults may need some 'tunning'....
Patches are welcome...
> ======
>
> some of failed cases disappeared when manually testing individually...
>
> So, I'm wondering if upstream code also has some of the issues. That's why I
> want to
> directly run testcases from source code, more than RPMs :-P
Yep preferred is in sources - but we also do use rpm installed one and run
them with systems' native installed tools
Regards
Zdenek
More information about the lvm-devel
mailing list