aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends.py13
-rwxr-xr-xmeson_test.py18
2 files changed, 19 insertions, 12 deletions
diff --git a/backends.py b/backends.py
index e7ebf30..75b0264 100644
--- a/backends.py
+++ b/backends.py
@@ -443,11 +443,18 @@ class NinjaBackend(Backend):
velem.add_item('DESC', 'Running test suite under Valgrind.')
velem.write(outfile)
- datafile = open(test_data, 'w')
- for t in self.build.get_tests():
- datafile.write(os.path.join(self.environment.get_build_dir(), self.get_target_filename(t.get_exe())) + '\n')
+ datafile = open(test_data, 'wb')
+ self.write_test_file(datafile)
datafile.close()
+ def write_test_file(self, datafile):
+ arr = []
+ for t in self.build.get_tests():
+ name = t.get_name()
+ fname = os.path.join(self.environment.get_build_dir(), self.get_target_filename(t.get_exe()))
+ arr.append([name, fname])
+ pickle.dump(arr, datafile)
+
def generate_dep_gen_rules(self, outfile):
outfile.write('# Rules for external dependency generators.\n\n')
processed = {}
diff --git a/meson_test.py b/meson_test.py
index dd6f5c2..f8da08e 100755
--- a/meson_test.py
+++ b/meson_test.py
@@ -14,7 +14,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-import sys, subprocess, time, datetime
+import sys, subprocess, time, datetime, pickle
from optparse import OptionParser
parser = OptionParser()
@@ -39,11 +39,11 @@ def run_tests(options, datafilename):
logfilename = logfile_base + '-' + options.wrapper.replace(' ', '_') + '.txt'
logfile = open(logfilename, 'w')
logfile.write('Log of Meson test suite run on %s.\n\n' % datetime.datetime.now().isoformat())
- for line in open(datafilename, 'r'):
- line = line.strip()
- if line == '':
- continue
- cmd = wrap + [line]
+ tests = pickle.load(open(datafilename, 'rb'))
+ for test in tests:
+ name = test[0]
+ fname = test[1]
+ cmd = wrap + [fname]
starttime = time.time()
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(stdo, stde) = p.communicate()
@@ -53,11 +53,11 @@ def run_tests(options, datafilename):
stde = stde.decode()
if p.returncode != 0:
- result_str = 'Test "%s": FAIL (%.3f s)' % (line, duration)
+ result_str = 'Test "%s": FAIL (%.3f s)' % (name, duration)
else:
- result_str = 'Test "%s": OK (%.3f s)' % (line, duration)
+ result_str = 'Test "%s": OK (%.3f s)' % (name, duration)
print(result_str)
- write_log(logfile, line, result_str, stdo, stde)
+ write_log(logfile, name, result_str, stdo, stde)
print('\nFull log written to %s.' % logfilename)
if __name__ == '__main__':