#!/usr/bin/env python import sys import argparse import yaml import os def check_result(): parser = argparse.ArgumentParser(description = "Check CBMC Batch outputs against expected result.") parser.add_argument("batch_result_dir", help = "The directory containing the CBMC Batch result.") parser.add_argument("yaml", help = "The yaml containing expected CBMC Batch result substring.") args = parser.parse_args() if not os.path.isfile(args.yaml): print "Expected file " + args.yaml + ": Not found" return with open(args.yaml, "r") as yaml_file: try: expected = yaml.load(yaml_file)["expected"] except yaml.YAMLError as e: print e return except KeyError as e: print "Expected CBMC Batch result not found in " + args.yaml return cbmc_output = os.path.join(args.batch_result_dir, "cbmc.txt") if not os.path.isfile(cbmc_output): print "Expected file " + cbmc_output + ": Not found" with open(cbmc_output, "r") as cbmc: if expected in cbmc.read(): print "Expected output matches." else: print "Expected output does not match." if __name__ == "__main__": check_result()