Re: [PATCH 00/12] fix many test failures in various build config scenarios

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

 



On Tue, May 07, 2024 at 14:58:55 +0100, Daniel P. Berrangé wrote:
> I was annoyed that
> 
>   meson build --auto-features=disabled -Dtests=enabled
> 
> will fail in unit tests. Rather than just fix that scenario, I went
> down the rabbit hole and tested (almost) every single minimal build
> option.
> 
> By that I mean I looked at meson_options.txt and got a list of every
> option that has 'auto' as its default. I then attempted a minimal
> build with only that enabled. I quickly found some options have
> mandatory pre-requisite options, so I re-did the tests with such
> deps present.
> 
> This uncovered many scenarios where we didn't use the right conditions
> for tests. Surprisingly (at first, but not in retrospect) it also
> found many places where the tests failed to depend on the earlier
> build artifacts.
> 
> My test process was:
> 
>   opts=$(grep auto meson_options.txt | sed -e 's/option(//' -e 's/,.*//' -e "s/'//g")
> 
>   for opt in $opts
>   do
>     deps=`grep --before 1 "option('$opt'" meson_options.txt | grep dep: | head -1 | sed -e 's/# //' -e 's/dep:/-D/g' -e 's/$/=enabled/' -e 's/ -D/=enabled -D/g'`
>     echo "Try test $opt with $deps"
>     rm -rf build
>     meson setup build --auto-features=disabled -Dtests=enabled $deps -D$opt=enabled 1> opt-$opt.log 2>&1
>     meson test -C build --no-suite syntax-check --print-errorlogs 1>> opt-$opt.log 2>&1 ;  done
>   done
> 
> Then to check results
> 
>   grep '^Fail:' opt-*.log | grep -v 0
> 
> This is slow, but not as slow as you might think, because each
> build is very minimal, so we're not actually building more than
> 300-400 files each time, rather than 1000's, and we're not running
> as many tests either.
> 
> Might be interesting to get extensive test into CI.
> 
> Strictly speaking we care about the combinatorial expansion of
> meson_options.txt, but that would be insanely slow and is likely
> to be overkill.

Whoah, that's rather cool. But as you note I don't think this is
anything for CI and even if, this'd be something to run once a month
perhaps. Otherwise it's almost as useful as mining cryptocurrencies

With the few things I've pointed out inline:

Series:

Reviewed-by: Peter Krempa <pkrempa@xxxxxxxxxx>
_______________________________________________
Devel mailing list -- devel@xxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxx




[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