aboutsummaryrefslogtreecommitdiff
path: root/test/aarch64
diff options
context:
space:
mode:
authorJacob Bramley <jacob.bramley@arm.com>2016-10-19 14:27:52 +0100
committerJacob Bramley <jacob.bramley@arm.com>2016-10-25 11:14:32 +0100
commitbe4b75206656cdef6364944025d26e3755bb8fe3 (patch)
treea3622e738e30aaaf3a63a3b38651a1864440c8cb /test/aarch64
parent25e3987b3b684df88edc8069d60b483b95587be5 (diff)
downloadvixl-be4b75206656cdef6364944025d26e3755bb8fe3.tar.gz
Clean up temporary files after running the tests.
Change-Id: Ib69e44a3d3f4013c075689fbec992b9c844c07df
Diffstat (limited to 'test/aarch64')
-rw-r--r--test/aarch64/test-trace-aarch64.cc14
1 files changed, 9 insertions, 5 deletions
diff --git a/test/aarch64/test-trace-aarch64.cc b/test/aarch64/test-trace-aarch64.cc
index f1160e87..9156cedd 100644
--- a/test/aarch64/test-trace-aarch64.cc
+++ b/test/aarch64/test-trace-aarch64.cc
@@ -2566,8 +2566,7 @@ static void TraceTestHelper(bool coloured_trace,
MacroAssembler masm(12 * KBytes);
char trace_stream_filename[] = "/tmp/vixl-test-trace-XXXXXX";
- int trace_stream_fd = mkstemp(trace_stream_filename);
- FILE* trace_stream = fdopen(trace_stream_fd, "w");
+ FILE* trace_stream = fdopen(mkstemp(trace_stream_filename), "w");
Decoder decoder;
Simulator simulator(&decoder, trace_stream);
@@ -2627,6 +2626,7 @@ static void TraceTestHelper(bool coloured_trace,
fclose(trace_stream);
MaskAddresses(trace_stream_filename);
+ bool trace_matched_reference;
if (Test::generate_test_trace()) {
// Copy trace_stream to stdout.
trace_stream = fopen(trace_stream_filename, "r");
@@ -2639,21 +2639,25 @@ static void TraceTestHelper(bool coloured_trace,
putc(c, stdout);
}
fclose(trace_stream);
+ trace_matched_reference = true;
} else {
// Check trace_stream against ref_file.
char command[1024];
size_t length = snprintf(command, sizeof(command),
"diff -u %s %s", ref_file, trace_stream_filename);
VIXL_CHECK(length < sizeof(command));
- VIXL_CHECK(system(command) == 0);
+ trace_matched_reference = (system(command) == 0);
}
uint64_t offset_base = simulator.ReadRegister<uint64_t>(0);
uint64_t index_base = simulator.ReadRegister<uint64_t>(1);
+
+ // Clean up before checking the result; VIXL_CHECK aborts.
+ remove(trace_stream_filename);
+
+ VIXL_CHECK(trace_matched_reference);
VIXL_CHECK(index_base >= offset_base);
VIXL_CHECK((index_base - offset_base) <= kScratchSize);
-
- // remove(trace_stream_filename);
}