[PATCH 2/2] ktest: run make mrproper not only for OUTPUT_DIR but also for BUILD_DIR to avoid build failure

From: Satoru Takeuchi
Date: Sun Mar 02 2014 - 07:23:47 EST


From: Satoru Takeuchi <satoru.takeuchi@xxxxxxxxx>

Build failure hapens with the following log if BUILD_DIR is dirty.

===============================================================================
...
RUNNING TEST 1 of 1 with option build olddefconfig

make O=/home/sat/ktest/output mrproper ... CLEAN arch/x86/tools
CLEAN scripts/basic
CLEAN scripts/kconfig
CLEAN include/config include/generated arch/x86/include/generated
CLEAN .config.old include/generated/uapi/linux/version.h
SUCCESS
...
make O=/home/sat/ktest/output -j8 ... GEN /home/sat/ktest/output/Makefile
...
Using /home/sat/src/test-linux-stable/linux-stable as source for kernel
/home/sat/src/test-linux-stable/linux-stable is not clean, please run 'make mrproper'
in the '/home/sat/src/test-linux-stable/linux-stable' directory.
make[1]: *** [prepare3] Error 1
make[1]: *** Waiting for unfinished jobs....
HOSTLD arch/x86/tools/relocs
make[1]: *** wait: No child processes. Stop.
make: *** [sub-make] Error 2
FAILED!
CRITICAL FAILURE... failed build
===============================================================================

To avoid this problem, it's necessary to run make mrproper not only
for OUTPUT_DIR, but also for BUILD_DIR.

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@xxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>

---
tools/testing/ktest/ktest.pl | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl
index f731ef6..1169b2a 100755
--- a/tools/testing/ktest/ktest.pl
+++ b/tools/testing/ktest/ktest.pl
@@ -120,6 +120,7 @@ my $syslinux;
my $syslinux_path;
my $syslinux_label;
my $target;
+my $makecmd;
my $make;
my $pre_install;
my $post_install;
@@ -2198,6 +2199,11 @@ sub load_force_config {
close IN;
}

+sub mrproper {
+ run_command "$makecmd mrproper" or dodie "make mrproper for $builddir";
+ run_command "$make mrproper" or dodie "make mrproper for $outputdir";
+}
+
sub build {
my ($type) = @_;

@@ -2235,17 +2241,13 @@ sub build {
if (!$noclean) {
run_command "mv $output_config $outputdir/config_temp" or
dodie "moving .config";
-
- run_command "$make mrproper" or dodie "make mrproper";
-
+ mrproper;
run_command "mv $outputdir/config_temp $output_config" or
dodie "moving config_temp";
}
-
} elsif (!$noclean) {
unlink "$output_config";
- run_command "$make mrproper" or
- dodie "make mrproper";
+ mrproper;
}

# add something to distinguish this build
@@ -3996,7 +3998,7 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {

undef %force_config;

- my $makecmd = set_test_option("MAKE_CMD", $i);
+ $makecmd = set_test_option("MAKE_CMD", $i);

$outputdir = set_test_option("OUTPUT_DIR", $i);
$builddir = set_test_option("BUILD_DIR", $i);
--
1.8.5.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/