From 0d6916073ec59839bdc728ff62fef988d9c2b5a7 Mon Sep 17 00:00:00 2001 From: Eric Rahm Date: Mon, 3 Dec 2018 11:50:45 -0800 Subject: [PATCH] Bug 1510829 - Upload AWSY artifacts even if processing fails. r=bc It's useful to get DMD reports even if we end up with negative heap-unclassified. This catches any assertions during processing and makes sure we move the reports to the upload dir even if there's a failure. --HG-- extra : rebase_source : 3268d7b8f7f33c36c9b59bfdd5f181d80a0c4201 --- testing/awsy/awsy/awsy_test_case.py | 41 ++++++++++++++++------------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/testing/awsy/awsy/awsy_test_case.py b/testing/awsy/awsy/awsy_test_case.py index b0de7a7c6bc9..73a317f7793c 100644 --- a/testing/awsy/awsy/awsy_test_case.py +++ b/testing/awsy/awsy/awsy_test_case.py @@ -80,26 +80,31 @@ class AwsyTestCase(MarionetteTestCase): def tearDown(self): MarionetteTestCase.tearDown(self) - self.logger.info("processing data in %s!" % self._resultsDir) - perf_blob = process_perf_data.create_perf_data( - self._resultsDir, self.perf_suites(), - self.perf_checkpoints()) - self.logger.info("PERFHERDER_DATA: %s" % json.dumps(perf_blob)) + try: + self.logger.info("processing data in %s!" % self._resultsDir) + perf_blob = process_perf_data.create_perf_data( + self._resultsDir, self.perf_suites(), + self.perf_checkpoints()) + self.logger.info("PERFHERDER_DATA: %s" % json.dumps(perf_blob)) - perf_file = os.path.join(self._resultsDir, "perfherder_data.json") - with open(perf_file, 'w') as fp: - json.dump(perf_blob, fp, indent=2) - self.logger.info("Perfherder data written to %s" % perf_file) + perf_file = os.path.join(self._resultsDir, "perfherder_data.json") + with open(perf_file, 'w') as fp: + json.dump(perf_blob, fp, indent=2) + self.logger.info("Perfherder data written to %s" % perf_file) + except: + raise + finally: + # Make sure we cleanup and upload any existing files even if there + # were errors processing the perf data. + if self._dmd: + self.cleanup_dmd() - if self._dmd: - self.cleanup_dmd() - - # copy it to moz upload dir if set - if 'MOZ_UPLOAD_DIR' in os.environ: - for file in os.listdir(self._resultsDir): - file = os.path.join(self._resultsDir, file) - if os.path.isfile(file): - shutil.copy2(file, os.environ["MOZ_UPLOAD_DIR"]) + # copy it to moz upload dir if set + if 'MOZ_UPLOAD_DIR' in os.environ: + for file in os.listdir(self._resultsDir): + file = os.path.join(self._resultsDir, file) + if os.path.isfile(file): + shutil.copy2(file, os.environ["MOZ_UPLOAD_DIR"]) def cleanup_dmd(self): """