[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 6/9] ts-xen-build: Build the livepatch test-cases
On Tue, Dec 13, 2016 at 04:49:25PM +0000, Ian Jackson wrote: > Konrad Rzeszutek Wilk writes ("[PATCH v2 6/9] ts-xen-build: Build the > livepatch test-cases"): > > + buildcmd_stamped_logged(600, 'xen', 'xenlpt-build', '',<<END,'') if > > $dokconfig; > > + if test -d xen/test; then > > + $make_prefix make -C xen tests > > + fi > > Is $dokconfig really the right test for whether the livepatch build > should be attempted ? It seems like a rather arbitrary connection. The earlier patch (ts-xen-build: Enable livepatch.) enables the correct .config option to make this work. Without that you wouldn't be able to enable livepatching. And it looks like dokconfig gets changed to zero if --no-kconfig is supplied which I presume happens to older Xen versions. > > > + buildcmd_stamped_logged(600, 'xen', 'xenlpt-install', '',<<END,'') if > > $dokconfig; > > + if test -d xen/test; then > > + mkdir -p dist/xenlptinstall/usr/lib/debug > > + livepatch_files=`find xen/test/livepatch -name '*.livepatch' > > -print` > > + cp \$livepatch_files dist/xenlptinstall/usr/lib/debug > > + fi > > As I say, I don't much like this. There's a conversation ongoing > about it. [tries to recall it] It was about the make install stanza in the top root Makefile. And Jan was not too thrilled about 'make install' installing the test-cases. But I wonder, what if we had 'make -C xen/tests install' or such? That _may_ work? (Depending on whether the xen/tests Makefile can pick up the proper variables and such from the 'xen', this may require also an -f Rules.mk or such?) Something like this invocation: DESTDIR=`pwd`/dist/xenlptinstall/usr/lib/debug mkdir -p $DESTDIR BASEDIR=`pwd`/xen XEN_ROOT=`pwd` make -C xen/test -f `pwd`/xen/Rules.mk install And this diff to Xen: diff --git a/xen/test/Makefile b/xen/test/Makefile index d91b319..f9d90da 100644 --- a/xen/test/Makefile +++ b/xen/test/Makefile @@ -5,3 +5,8 @@ tests: .PHONY: clean clean:: $(MAKE) -f $(BASEDIR)/Rules.mk -C livepatch clean + +.PHONY: install +install: + $(MAKE) -f $(BASEDIR)/Rules.mk -C livepatch install seems to work. > > > sub stash () { > > - foreach my $part ('', 'xen') { > > + foreach my $part ('', 'xen', 'xenlpt') { > > if (target_dir_exists($ho, "$builddir/xen/dist/${part}install")) { > > built_stash($ho, $builddir, > > I don't much like this approach. It might result in deferring certain > failures undesirably. > > Also, I don't know why it is necessary to look on the build box for > this information. ts-xen-build ought to know whether it has run `make > xenlpt-tests-install' (or whatever it is), so it ought to simply know > whether to do the build_stash. And when you say 'xenlpt-tests-install' you mean 'xenlpt-install' (see above). So .. the one thing I am having a hard time is that certain versions of Xen would not be able to build livepatches. So how I determine that? If I do 'make -C xen tests' on older versions it would return a failure. But I don't see how buildcmd_stamped_logged reports that? Oh wait, it gives 'echo ok' so I should just do something like: my $ok = buildcmd_stamped_logged(600, 'xen', 'xenlpt-build', '',<<END,'') if $dokconfig; $make_prefix make -C xen tests END if ($ok =~ m/ok/) { store_runvar("livepatch", "built"); buildcmd_stamped_logged(600, 'xen', 'xenlpt-install', <<END,<<END,'') XEN_ROOT=$builddir DESTDIR=$builddir/dist/xenlptinstall/usr/lib/debug BASEDIR=$builddir/xen mkdir -p \${DESTDIR} END $make_prefix -C xen/test -f $builddir/xen/Rules.mk install END } And then I get get_runvar("livepatch") to figure out whether it was actually built. > > You could instead do something like > > our %skip_stash_part; > ... > if (some condition) { > make xenlpt-install > } else { > $skip_stash_part{xenlpttest}= 1; > } > ... > next if $skip_stash_part{$part} Or have an $stash_livepatch=0 And set it to 1 if the built worked? > > or an ad-hoc variable, giving > > next if $part eq $xenlpttest && !$do_xenlpt; > > or something ? > > Thanks > Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |