Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Atharva Lele <itsatharva@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v3 02/31] autobuild-run: move instance variable from kwargs to Builder class
Date: Sun,  7 Jul 2019 10:58:02 +0530	[thread overview]
Message-ID: <20190707052831.9469-2-itsatharva@gmail.com> (raw)
In-Reply-To: <20190707052831.9469-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>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
---
Changes v1 -> v2:
  - Explicitly state class constructor argument
---
 scripts/autobuild-run | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/scripts/autobuild-run b/scripts/autobuild-run
index 6bd6856..9946ddc 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(instance = i)
         p = multiprocessing.Process(target=builder.run_instance, kwargs=dict(
-                instance = i,
                 njobs = args['--njobs'],
                 sysinfo = sysinfo,
                 http_url = args['--http-url'],
-- 
2.22.0

  reply	other threads:[~2019-07-07  5:28 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-07  5:28 [Buildroot] [PATCH v3 01/31] autobuild-run: introduce Builder class Atharva Lele
2019-07-07  5:28 ` Atharva Lele [this message]
2019-07-07  5:28 ` [Buildroot] [PATCH v3 03/31] autobuild-run: move njobs from kwargs to " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 04/31] autobuild-run: move sysinfo " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 05/31] autobuild-run: move http variables " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 06/31] autobuild-run: move submitter " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 07/31] autobuild-run: move make_opts " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 08/31] autobuild-run: move niceness " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 09/31] autobuild-run: move toolchains_csv " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 10/31] autobuild-run: move repo " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 11/31] autobuild-run: move upload variable " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 12/31] autobuild-run: move buildpid " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 13/31] autobuild-run: move debug " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 14/31] autobuild-run: define instance directory as a part of " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 15/31] autobuild-run: move log variable to " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 16/31] autobuild-run: remove kwargs argument from function calls and definitions Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 17/31] autobuild-run: define source directory as part of Builder class Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 18/31] autobuild-run: define download " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 19/31] autobuild-run: define output " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 20/31] autobuild-run: define results " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 21/31] autobuild-run: move check_version() to " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 22/31] autobuild-run: move get_branch() " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 23/31] scripts/autobuild-run: make the HTTP URL really configurable Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 24/31] autobuild-run: create reason file on build failures Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 25/31] autobuild-run: account for reproducibility failures when creating the reason file Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 26/31] web/import.inc.php: support reading failure reason from " Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 27/31] scripts/autobuild-run: support changing repo Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 28/31] autobuild-run: modify do_build() to accept outputdir as argument Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 29/31] autobuild-run: define different output directory for reproducible builds Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 30/31] autobuild-run: use different output directories for reproducible builds testing Atharva Lele
2019-07-07  5:28 ` [Buildroot] [PATCH v3 31/31] autobuild-run: make prepare_build() clean the output directory used for reproducibility testing 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=20190707052831.9469-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