Make sure to make new lists of messages so that messages from one test don't get put into another.

This commit is contained in:
Peter Goodman 2017-10-30 14:39:15 -04:00
parent 3702bfcb81
commit 8ec44074ad

View File

@ -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.