Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Atharva Lele <itsatharva@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 02/19] autobuild-run: move instance variable from kwargs to Builder class
Date: Fri, 21 Jun 2019 14:17:13 +0530	[thread overview]
Message-ID: <20190621084730.16411-2-itsatharva@gmail.com> (raw)
In-Reply-To: <20190621084730.16411-1-itsatharva@gmail.com>

As discussed in the previous patch, these common variables are needed
in many functions, and it'll be better to have them as part of the class.
This will make the code cleaner and make it easier to introduce variability
for reproducibility testing. Succeeding patches will move all variables from
kwargs to the Builder constructor.

Signed-off-by: Atharva Lele <itsatharva@gmail.com>
---
 scripts/autobuild-run | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/scripts/autobuild-run b/scripts/autobuild-run
index 254d1b6..291cd9f 100755
--- a/scripts/autobuild-run
+++ b/scripts/autobuild-run
@@ -271,6 +271,9 @@ class SystemInfo:
         return not missing_requirements
 
 class Builder:
+    def __init__(self, instance):
+        self.instance = instance
+
     def prepare_build(self, **kwargs):
         """Prepare for the next build of the specified instance
 
@@ -279,7 +282,7 @@ class Builder:
         code, and cleaning up remaining stuff from previous builds.
         """
 
-        idir = "instance-%d" % kwargs['instance']
+        idir = "instance-%d" % self.instance
         log = kwargs['log']
 
         log_write(log, "INFO: preparing a new build")
@@ -353,7 +356,7 @@ class Builder:
 
     def gen_config(self, **kwargs):
         """Generate a new random configuration."""
-        idir = "instance-%d" % kwargs['instance']
+        idir = "instance-%d" % self.instance
         log = kwargs['log']
         outputdir = os.path.abspath(os.path.join(idir, "output"))
         srcdir = os.path.join(idir, "buildroot")
@@ -403,7 +406,7 @@ class Builder:
         """
 
         log = kwargs['log']
-        idir = "instance-%d" % kwargs['instance']
+        idir = "instance-%d" % self.instance
         outputdir = os.path.join(idir, "output")
         srcdir = os.path.join(idir, "buildroot")
         reproducible_results = os.path.join(outputdir, "results", "reproducible_results")
@@ -435,7 +438,7 @@ class Builder:
     def do_build(self, **kwargs):
         """Run the build itself"""
 
-        idir = "instance-%d" % kwargs['instance']
+        idir = "instance-%d" % self.instance
         log = kwargs['log']
         nice = kwargs['nice']
 
@@ -466,9 +469,9 @@ class Builder:
         build_monitor.daemon = True
         build_monitor.start()
 
-        kwargs['buildpid'][kwargs['instance']] = sub.pid
+        kwargs['buildpid'][self.instance] = sub.pid
         ret = sub.wait()
-        kwargs['buildpid'][kwargs['instance']] = 0
+        kwargs['buildpid'][self.instance] = 0
 
         # If build failed, monitor thread would have exited at this point
         if monitor_thread_hung_build_flag.is_set():
@@ -500,7 +503,7 @@ class Builder:
         perform the actual build.
         """
 
-        idir = "instance-%d" % kwargs['instance']
+        idir = "instance-%d" % self.instance
         outputdir = os.path.abspath(os.path.join(idir, "output"))
         srcdir = os.path.join(idir, "buildroot")
         log = kwargs['log']
@@ -538,7 +541,7 @@ class Builder:
         are available) or stores them locally as tarballs.
         """
 
-        idir = "instance-%d" % kwargs['instance']
+        idir = "instance-%d" % self.instance
         log = kwargs['log']
 
         outputdir = os.path.abspath(os.path.join(idir, "output"))
@@ -690,7 +693,7 @@ class Builder:
             # No http login/password, keep tarballs locally
             with open(os.path.join(outputdir, "results.tar.bz2"), 'rb') as f:
                 sha1 = hashlib.sha1(f.read()).hexdigest()
-            resultfilename = "instance-%d-%s.tar.bz2" % (kwargs['instance'], sha1)
+            resultfilename = "instance-%d-%s.tar.bz2" % (self.instance, sha1)
             os.rename(os.path.join(outputdir, "results.tar.bz2"), resultfilename)
             log_write(log, "INFO: results saved as %s" % resultfilename)
 
@@ -701,7 +704,7 @@ class Builder:
         results.
         """
 
-        idir = "instance-%d" % kwargs['instance']
+        idir = "instance-%d" % self.instance
 
         # If it doesn't exist, create the instance directory
         if not os.path.exists(idir):
@@ -840,9 +843,8 @@ def main():
     buildpid = multiprocessing.Array('i', int(args['--ninstances']))
     processes = []
     for i in range(0, int(args['--ninstances'])):
-        builder = Builder()
+        builder = Builder(i)
         p = multiprocessing.Process(target=builder.run_instance, kwargs=dict(
-                instance = i,
                 njobs = args['--njobs'],
                 sysinfo = sysinfo,
                 http_url = args['--http-url'],
-- 
2.20.1

  reply	other threads:[~2019-06-21  8:47 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-21  8:47 [Buildroot] [PATCH 01/19] autobuild-run: introduce Builder class Atharva Lele
2019-06-21  8:47 ` Atharva Lele [this message]
2019-06-24 20:31   ` [Buildroot] [PATCH 02/19] autobuild-run: move instance variable from kwargs to " Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 03/19] autobuild-run: move njobs " Atharva Lele
2019-06-24 21:34   ` Arnout Vandecappelle
2019-06-25  4:53     ` Atharva Lele
2019-06-21  8:47 ` [Buildroot] [PATCH 04/19] autobuild-run: move sysinfo " Atharva Lele
2019-06-24 21:35   ` Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 05/19] autobuild-run: move http variables " Atharva Lele
2019-06-24 21:36   ` Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 06/19] autobuild-run: move submitter " Atharva Lele
2019-06-24 21:38   ` Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 07/19] autobuild-run: move niceness " Atharva Lele
2019-06-24 21:38   ` Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 08/19] autobuild-run: move toolchains_csv " Atharva Lele
2019-06-24 21:37   ` Arnout Vandecappelle
2019-06-25  5:01     ` Atharva Lele
2019-06-25  8:08       ` Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 09/19] autobuild-run: move repo " Atharva Lele
2019-06-24 21:39   ` Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 10/19] autobuild-run: move upload variable " Atharva Lele
2019-06-24 21:40   ` Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 11/19] autobuild-run: move buildpid " Atharva Lele
2019-06-24 21:41   ` Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 12/19] autobuild-run: move debug " Atharva Lele
2019-06-24 21:43   ` Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 13/19] autobuild-run: define instance directory as a part of " Atharva Lele
2019-06-24 21:44   ` Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 14/19] autobuild-run: move log variable to " Atharva Lele
2019-06-25 14:20   ` Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 15/19] autobuild-run: remove kwargs argument from function calls and definitions Atharva Lele
2019-06-25 20:03   ` Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 16/19] autobuild-run: define source directory as part of Builder class Atharva Lele
2019-06-25 20:07   ` Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 17/19] autobuild-run: define download " Atharva Lele
2019-06-25 20:08   ` Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 18/19] autobuild-run: define output " Atharva Lele
2019-06-25 20:10   ` Arnout Vandecappelle
2019-06-21  8:47 ` [Buildroot] [PATCH 19/19] autobuild-run: define results " Atharva Lele
2019-06-25 20:10   ` Arnout Vandecappelle
2019-06-24 21:22 ` [Buildroot] [PATCH 01/19] autobuild-run: introduce " Arnout Vandecappelle
2019-06-25  4:50   ` Atharva Lele

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=20190621084730.16411-2-itsatharva@gmail.com \
    --to=itsatharva@gmail.com \
    --cc=buildroot@busybox.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox