ext,tests: Copy test's output files from /tmp to testing-results

When a test is complete, the output files are in a random folder
in /tmp.

This commit adds a procedure copying those files to
testing-results/SuiteUID/TestUID/ folder, where SuiteUID and
TestUID are the corresponding uid's of the test.

This procedure is triggered after a test is complete and before
the folder in /tmp being removed.

Change-Id: Id960e7f2f1629769008ae99aff4c8bfafa9ca849
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/33998
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
This commit is contained in:
Hoa Nguyen
2020-09-03 01:36:35 -07:00
parent b540954e20
commit caf09cc565

View File

@@ -67,6 +67,23 @@ class TempdirFixture(Fixture):
def setup(self, testitem):
self.path = tempfile.mkdtemp(prefix='gem5out')
def post_test_procedure(self, testitem):
suiteUID = testitem.metadata.uid.suite
testUID = testitem.metadata.name
testing_result_folder = os.path.join(config.result_path,
"SuiteUID:" + suiteUID,
"TestUID:" + testUID)
# Copy the output files of the run from /tmp to testing-results
# We want to wipe the entire result folder for this test first. Why?
# If the result folder exists (probably from the previous run), if
# this run emits fewer files, there'll be files from the previous
# run in this folder, which would cause confusion if one does not
# check the timestamp of the file.
if os.path.exists(testing_result_folder):
shutil.rmtree(testing_result_folder)
shutil.copytree(self.path, testing_result_folder)
def teardown(self, testitem):
if testitem.result == Result.Passed:
shutil.rmtree(self.path)