From e2b2d583db3d7c562ecc23d014f6c14144926272 Mon Sep 17 00:00:00 2001
From: Julien Muchembled <jm@nexedi.com>
Date: Sun, 23 Oct 2016 22:21:54 +0200
Subject: [PATCH] rina: fix buildout path (test suites are already run in a
 dedicated folder)

---
 software/build-rina/runTestSuite.in | 24 +++++++-----------------
 software/build-rina/software.cfg    |  1 +
 2 files changed, 8 insertions(+), 17 deletions(-)

diff --git a/software/build-rina/runTestSuite.in b/software/build-rina/runTestSuite.in
index 66a20351e..83f0ab76d 100644
--- a/software/build-rina/runTestSuite.in
+++ b/software/build-rina/runTestSuite.in
@@ -1,6 +1,6 @@
 #!{{parameter_dict['runTestSuite_py']}}
 from __future__ import print_function
-import argparse, errno, os, shutil, subprocess, sys, traceback
+import argparse, os, subprocess, sys, traceback
 from time import gmtime, strftime, time
 # These are the 2 modules to reuse when using ERP5 for managing test bots.
 # What we do here is currently too new to reuse more from testsuite.
@@ -12,9 +12,6 @@ from erp5.util.testsuite import format_command
 dist_list = {{vm['dists'].split()}}
 publish = {{slapparameter_dict.get('publish')}}
 
-BUILDDIR = 'build'
-BUILDOUT = os.path.realpath(os.path.join('software_release', 'bin', 'buildout'))
-
 STAT_MAP = dict(
   TOTAL = 'test_count',
   PASS  = None,
@@ -82,14 +79,9 @@ def main():
   else:
     test_result = DummyTestResult(dist_list)
 
-  if os.path.exists(BUILDDIR):
-    shutil.rmtree(BUILDDIR)
-  os.mkdir(BUILDDIR)
-  oldpwd = os.getcwd()
-  os.chdir(BUILDDIR)
-
-  with open('buildout.cfg', 'w') as f:
-    f.write("""\
+  fd = os.open('buildout.cfg', os.O_CREAT | os.O_EXCL | os.O_WRONLY, 0666)
+  try:
+    os.write(fd, """\
 [buildout]
 extends = {{parameter_dict['profile_base_location']}}/build.cfg
 offline = true
@@ -106,6 +98,8 @@ location = {{parameter_dict['rina_tools']}}
 [slapos.package-repository]
 location = {{parameter_dict['slapos_package']}}
 """)
+  finally:
+    os.close(fd)
   librina_log = os.path.join('parts', 'debuild-librina', 'build.log')
   stderr_write = sys.stderr.write
 
@@ -115,7 +109,7 @@ location = {{parameter_dict['slapos_package']}}
       break
     dist = test_result_line.name
 
-    cmd = [BUILDOUT,
+    cmd = [{{repr(parameter_dict['buildout'])}},
       'vm-run-base:dist=' + dist,
       'debuild-rina-base:suite=' + (publish['suite'] if publish else ''),
     ]
@@ -188,10 +182,6 @@ location = {{parameter_dict['slapos_package']}}
 
     # TODO: upload packages if 'publish' parameter is given
 
-  if args.master_url:
-    os.chdir(oldpwd)
-    shutil.rmtree(BUILDDIR)
-
 
 if __name__ == "__main__":
     main()
diff --git a/software/build-rina/software.cfg b/software/build-rina/software.cfg
index 9674fe74c..470742078 100644
--- a/software/build-rina/software.cfg
+++ b/software/build-rina/software.cfg
@@ -39,6 +39,7 @@ template = inline:
   environment = {{dumps(environment)}}
   vm = {{dumps(vm)}}
   runTestSuite_py = ${buildout:bin-directory}/${runTestSuite_py:interpreter}
+  buildout = ${buildout:bin-directory}/buildout
   profile_base_location = ${:_profile_base_location_}
   rina_tools = ${rina-tools-repository:location}
   slapos_package = ${slapos.package-repository:location}
-- 
2.30.9