[PATCH] D29821: [LNT] Run configure earlier in runtest test-suite [NFC]

Kristof Beyls via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 10 04:52:16 PST 2017


kristof.beyls created this revision.

This is in preparation for follow-on work where we'll extract the
compiler used from the CMakeCache rather than from the --cc
command line option. For that to work, however, the configure step
has to be run before the first time self._get_cc_info() gets called.

This also simplifies the need-to-configure logic a bit.


https://reviews.llvm.org/D29821

Files:
  lnt/tests/test_suite.py


Index: lnt/tests/test_suite.py
===================================================================
--- lnt/tests/test_suite.py
+++ lnt/tests/test_suite.py
@@ -459,6 +459,18 @@
         basedir = os.path.join(self.opts.sandbox_path, build_dir_name)
         self._base_path = basedir
 
+        cmakecache = os.path.join(self._base_path, 'CMakeCache.txt')
+        self.configured = not self.opts.run_configure and \
+            os.path.exists(cmakecache)
+
+        #  If we are doing diagnostics, skip the usual run and do them now.
+        if opts.diagnose:
+            return self.diagnose()
+
+        # configure, so we can extract toolchain information from the cmake
+        # output.
+        self.configure_if_needed()
+
         # We don't support compiling without testing as we can't get compile-
         # time numbers from LIT without running the tests.
         if opts.compile_multisample > opts.exec_multisample:
@@ -483,9 +495,6 @@
                 fatal("Cannot detect compiler version. Specify --run-order"
                       " to manually define it.")
 
-        #  If we are doing diagnostics, skip the usual run and do them now.
-        if opts.diagnose:
-            return self.diagnose()
         # Now do the actual run.
         reports = []
         json_reports = []
@@ -518,21 +527,31 @@
 
         return self.submit(report_path, self.opts, commit=True)
 
-    def run(self, compile=True, test=True):
+    def _get_path(self):
         path = self._base_path
 
         if not os.path.exists(path):
             mkdir_p(path)
 
-        if self.opts.pgo:
-            self._collect_pgo(path)
-            self.trained = True
+        return path
 
-        if not self.configured and self._need_to_configure(path):
+    def configure_if_needed(self):
+        path = self._get_path()
+        if not self.configured:
             self._configure(path)
             self._clean(path)
             self.configured = True
 
+    def run(self, compile=True, test=True):
+        path = self._get_path()
+
+        if self.opts.pgo:
+            self._collect_pgo(path)
+            self.trained = True
+            self.configured = False
+
+        self.configure_if_needed()
+
         if self.compiled and compile:
             self._clean(path)
         if not self.compiled or compile:
@@ -552,10 +571,6 @@
         test_samples = sum([r.tests for r in reports], [])
         return lnt.testing.Report(machine, run, test_samples)
 
-    def _need_to_configure(self, path):
-        cmakecache = os.path.join(path, 'CMakeCache.txt')
-        return self.opts.run_configure or not os.path.exists(cmakecache)
-
     def _test_suite_dir(self):
         return self.opts.test_suite_root
 
@@ -731,9 +746,11 @@
         return not os.path.exists(os.path.join(path, name))
 
     def _get_target_flags(self):
+        assert self.configured is True
         return shlex.split(self.opts.cppflags + self.opts.cflags)
 
     def _get_cc_info(self):
+        assert self.configured is True
         return lnt.testing.util.compilers.get_cc_info(self.opts.cc,
                                                       self._get_target_flags())
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D29821.87983.patch
Type: text/x-patch
Size: 3175 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170210/0538d769/attachment.bin>


More information about the llvm-commits mailing list