in flexsai/p4/backend/json_stage/run-bmv2-test.py [0:0]
def main(argv):
options = Options()
options.binary = argv[0]
if len(argv) <= 2:
usage(options)
sys.exit(FAILURE)
options.compilerSrcDir = argv[1]
argv = argv[2:]
if not os.path.isdir(options.compilerSrcDir):
print(options.compilerSrcDir + " is not a folder", file=sys.stderr)
usage(options)
sys.exit(FAILURE)
while argv[0][0] == '-':
if argv[0] == "-b":
options.cleanupTmp = False
elif argv[0] == "-v":
options.verbose = True
elif argv[0] == "-f":
options.replace = True
elif argv[0] == "-a":
if len(argv) == 0:
reportError("Missing argument for -a option")
usage(options)
sys.exit(FAILURE)
else:
options.compilerOptions += argv[1].split();
argv = argv[1:]
elif argv[0][1] == 'D' or argv[0][1] == 'I' or argv[0][1] == 'T':
options.compilerOptions.append(argv[0])
elif argv[0] == "-gdb":
options.runDebugger = "gdb --args"
elif argv[0] == '-observation-log':
if len(argv) == 0:
reportError("Missing argument for -observation-log option")
usage(options)
sys.exit(FAILURE)
else:
options.observationLog = argv[1]
argv = argv[1:]
elif argv[0] == "--pp":
options.compilerOptions.append(argv[0])
argv = argv[1:]
options.compilerOptions.append(argv[0])
else:
reportError("Unknown option ", argv[0])
usage(options)
sys.exit(FAILURE)
argv = argv[1:]
config = ConfigH("config.h")
if not config.ok:
print("Error parsing config.h")
sys.exit(FAILURE)
options.hasBMv2 = "HAVE_SIMPLE_SWITCH" in config.vars
if not options.hasBMv2:
reportError("config.h indicates that BMv2 is not installed; will skip running BMv2 tests")
options.p4filename=argv[-1]
options.testName = None
if options.p4filename.startswith(options.compilerSrcDir):
options.testName = options.p4filename[len(options.compilerSrcDir):];
if options.testName.startswith('/'):
options.testName = options.testName[1:]
if options.testName.endswith('.p4'):
options.testName = options.testName[:-3]
options.testName = "bmv2/" + options.testName
if not options.observationLog:
if options.testName:
options.observationLog = os.path.join('%s.p4.obs' % options.testName)
else:
basename = os.path.basename(options.p4filename)
base, ext = os.path.splitext(basename)
dirname = os.path.dirname(options.p4filename)
options.observationLog = os.path.join(dirname, '%s.p4.obs' % base)
result = process_file(options, argv)
if result != SUCCESS:
reportError("Test failed")
sys.exit(result)