From 353bed10ee12c504faaa01e4fdca574f9d6f8380 Mon Sep 17 00:00:00 2001 From: Joe Ranweiler Date: Mon, 19 Feb 2018 12:37:07 -0800 Subject: [PATCH] Factor out unit test running in Manticore executor --- bin/deepstate/main_manticore.py | 38 ++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/bin/deepstate/main_manticore.py b/bin/deepstate/main_manticore.py index dc7fe2f..f1d66d3 100644 --- a/bin/deepstate/main_manticore.py +++ b/bin/deepstate/main_manticore.py @@ -21,7 +21,7 @@ import sys try: import manticore except Exception as e: - if "Z3NotFoundError" in repr(type(e)): + if "Z3NotFoundError" in repr(type(e)): print "Manticore requires Z3 to be installed." sys.exit(255) else: @@ -364,22 +364,7 @@ def run_tests(args, state, apis): exit(0) -def main(): - args = DeepManticore.parse_args() - - try: - m = manticore.Manticore(args.binary) - except Exception as e: - L.critical("Cannot create Manticore instance on binary {}: {}".format( - args.binary, e)) - return 1 - - m.verbosity(1) - - # Hack to get around current broken _get_symbol_address - m._binary_type = 'not elf' - m._binary_obj = m._initial_state.platform.elf - +def main_unit_test(m, args): setup_ea = find_symbol_ea(m, 'DeepState_Setup') if not setup_ea: L.critical("Cannot find symbol `DeepState_Setup` in binary `{}`".format( @@ -401,5 +386,24 @@ def main(): m.run() +def main(): + args = DeepManticore.parse_args() + + try: + m = manticore.Manticore(args.binary) + except Exception as e: + L.critical("Cannot create Manticore instance on binary {}: {}".format( + args.binary, e)) + return 1 + + m.verbosity(1) + + # Hack to get around current broken _get_symbol_address + m._binary_type = 'not elf' + m._binary_obj = m._initial_state.platform.elf + + return main_unit_test(m, args) + + if "__main__" == __name__: exit(main())