From 8ec44074ad601943ccc158768c52ea628d9e5ea7 Mon Sep 17 00:00:00 2001 From: Peter Goodman Date: Mon, 30 Oct 2017 14:39:15 -0400 Subject: [PATCH] Make sure to make new lists of messages so that messages from one test don't get put into another. --- bin/mctest/main_angr.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/bin/mctest/main_angr.py b/bin/mctest/main_angr.py index aec0a66..b8ef318 100644 --- a/bin/mctest/main_angr.py +++ b/bin/mctest/main_angr.py @@ -147,10 +147,9 @@ class Assume(angr.SimProcedure): def report_state(state): test = state.globals['test'] if state.globals['failed']: - message = (3, "Failed: {}".format(test.name)) + add_log_message(state, 3, "Failed: {}".format(test.name)) else: - message = (1, "Passed: {}".format(test.name)) - state.globals['log_messages'].append(message) + add_log_message(state, 1, "Passed: {}".format(test.name)) class Pass(angr.SimProcedure): @@ -174,6 +173,13 @@ class SoftFail(angr.SimProcedure): self.state.globals['failed'] = 1 +def add_log_message(state, level, message): + """Add a log message to a state.""" + messages = list(state.globals['log_messages']) + messages.append((level, message)) + state.globals['log_messages'] = messages + + LEVEL_TO_LOGGER = { 0: L.debug, 1: L.info, @@ -202,7 +208,8 @@ class Log(angr.SimProcedure): break data.append(b) - self.state.globals['log_messages'].append((level, data)) + # Deep copy the message. + add_log_message(self.state, level, data) if 3 == level: self.state.globals['failed'] = 1 # Soft failure on an error log message.