All of lore.kernel.org
 help / color / mirror / Atom feed
From: Satoru Takeuchi <satoru.takeuchi@gmail.com>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Subject: [PATCH 3/3] ktest: remove the misleading $buildonly and introduce $laststep.
Date: Sun, 09 Mar 2014 23:36:49 +0900	[thread overview]
Message-ID: <87eh2b30ce.wl%satoru.takeuchi@gmail.com> (raw)
In-Reply-To: <87fvmr30kb.wl%satoru.takeuchi@gmail.com>

From: Satoru Takeuchi <satoru.takeuchi@gmail.com>

Each test of ktest consists of the following steps.

  build -> install -> boot -> run user defined tests.

$buildonly means not whether the test is build onlyor not. Actually
this variable mean the last step of the test as follows.

 0: boot or more
 1: build
 2: install

AS you can see, these are random numeric literals. In addition,
there is no explanation about them.

To improve readability, introduce $laststep instead of $buildonly.
This variable means the last step of the test as follows.

 STEP_BUILD (=0):        build
 STEP_INSTALL (=1):      install
 STEP_BOOT_OR_MORE (=2): boot or more

Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
---
 tools/testing/ktest/ktest.pl | 70 +++++++++++++++++++++-----------------------
 1 file changed, 33 insertions(+), 37 deletions(-)

diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl
index c34f0de..ec82487 100755
--- a/tools/testing/ktest/ktest.pl
+++ b/tools/testing/ktest/ktest.pl
@@ -196,9 +196,14 @@ my $patchcheck_type;
 my $patchcheck_start;
 my $patchcheck_end;
 
-# set when a test is something other that just building or install
-# which would require more options.
-my $buildonly = 1;
+# Each test of ktest consists of the following steps.
+use constant {
+    STEP_BUILD => 0,
+    STEP_INSTALL => 1,
+    STEP_BOOT_OR_MORE => 2,
+};
+# The last step of test.
+my $laststep = STEP_BUILD;
 
 # tell build not to worry about warnings, even when WARNINGS_FILE is set
 my $warnings_ok = 0;
@@ -553,30 +558,27 @@ sub get_mandatory_config {
 }
 
 sub get_mandatory_configs {
+    # Options required for build step.
     get_mandatory_config("MACHINE");
     get_mandatory_config("BUILD_DIR");
     get_mandatory_config("OUTPUT_DIR");
+    get_mandatory_config("LOCALVERSION");
 
     if ($newconfig) {
 	get_mandatory_config("BUILD_OPTIONS");
     }
+    return if ($laststep == STEP_BUILD);
 
-    # options required for other than just building a kernel
-    if (!$buildonly) {
-	get_mandatory_config("POWER_CYCLE");
-	get_mandatory_config("CONSOLE");
-    }
+    # Options required for install step.
+    get_mandatory_config("SSH_USER");
+    get_mandatory_config("BUILD_TARGET");
+    get_mandatory_config("TARGET_IMAGE");
 
-    # options required for install and more
-    if ($buildonly != 1) {
-	get_mandatory_config("SSH_USER");
-	get_mandatory_config("BUILD_TARGET");
-	get_mandatory_config("TARGET_IMAGE");
-    }
-
-    get_mandatory_config("LOCALVERSION");
+    return if ($laststep == STEP_INSTALL);
 
-    return if ($buildonly);
+    # Options required for boot step.
+    get_mandatory_config("POWER_CYCLE");
+    get_mandatory_config("CONSOLE");
 
     my $rtype = $opt{"REBOOT_TYPE"};
 
@@ -649,26 +651,20 @@ sub set_value {
 
     my $prvalue = process_variables($rvalue);
 
-    if ($buildonly && $lvalue =~ /^TEST_TYPE(\[.*\])?$/ && $prvalue ne "build") {
-	# Note if a test is something other than build, then we
-	# will need other manditory options.
-	if ($prvalue ne "install") {
-	    # for bisect, we need to check BISECT_TYPE
-	    if ($prvalue ne "bisect") {
-		$buildonly = 0;
+    if ($laststep <= STEP_INSTALL)  {
+	if ($lvalue =~ /^TEST_TYPE(\[.*\])?$/ && $prvalue ne "build") {
+	    # Note if a test is something other than build, then we
+	    # will need other manditory options.
+	    if ($prvalue eq "install") {
+		# install still limits some manditory options.
+		$laststep = STEP_INSTALL;
+	    } elsif ($prvalue ne "bisect") {
+		# for bisect, we need to check BISECT_TYPE
+		$laststep = STEP_BUILD;
 	    }
-	} else {
-	    # install still limits some manditory options.
-	    $buildonly = 2;
-	}
-    }
-
-    if ($buildonly && $lvalue =~ /^BISECT_TYPE(\[.*\])?$/ && $prvalue ne "build") {
-	if ($prvalue ne "install") {
-	    $buildonly = 0;
-	} else {
-	    # install still limits some manditory options.
-	    $buildonly = 2;
+	} elsif ($lvalue =~ /^BISECT_TYPE(\[.*\])?$/ &&
+		   $prvalue ne "build") {
+	    $laststep = ($prvalue eq "install") ? STEP_INSTALL : STEP_BUILD;
 	}
     }
 
@@ -4045,7 +4041,7 @@ for (my $i = 1; $i <= $opt{"NUM_TESTS"}; $i++) {
     $dmesg = "$tmpdir/dmesg-$machine";
     $output_config = "$outputdir/.config";
 
-    if (!$buildonly) {
+    if ($laststep >= STEP_BOOT_OR_MORE) {
 	$target = "$ssh_user\@$machine";
 	if ($reboot_type eq "grub") {
 	    dodie "GRUB_MENU not defined" if (!defined($grub_menu));
-- 
1.9.0


  reply	other threads:[~2014-03-09 14:36 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-09 14:29 [PATCH 1/3] ktest: add 2nd parameter of run_command() to set the redirect target file Satoru Takeuchi
2014-03-09 14:32 ` [PATCH 2/3] ktest: Some cleanup for improving readability Satoru Takeuchi
2014-03-09 14:36   ` Satoru Takeuchi [this message]
2014-03-10 16:13     ` [PATCH 3/3] ktest: remove the misleading $buildonly and introduce $laststep Steven Rostedt
2014-03-11 11:43       ` Satoru Takeuchi
2014-03-11 11:50         ` Satoru Takeuchi
2014-03-11 19:56           ` Steven Rostedt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87eh2b30ce.wl%satoru.takeuchi@gmail.com \
    --to=satoru.takeuchi@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.