def main(): parser = argparse.ArgumentParser() parser.add_argument("-t", "--target-ip", dest="ip", help="The IP address of the target machine. Use this to \ overwrite the value determined from TEST_TARGET_IP at build time") parser.add_argument("-s", "--server-ip", dest="server_ip", help="The IP address of this machine. Use this to \ overwrite the value determined from TEST_SERVER_IP at build time.") parser.add_argument("-d", "--deploy-dir", dest="deploy_dir", help="Full path to the package feeds, that this \ the contents of what used to be DEPLOY_DIR on the build machine. If not specified it will use the value \ specified in the json if that directory actually exists or it will error out.") parser.add_argument("-l", "--log-dir", dest="log_dir", help="This sets the path for TEST_LOG_DIR. If not specified \ the current dir is used. This is used for usually creating a ssh log file and a scp test file.") parser.add_argument("json", help="The json file exported by the build system", default="testdata.json", nargs='?') args = parser.parse_args() with open(args.json, "r") as f: loaded = json.load(f) if args.ip: loaded["target"]["ip"] = args.ip if args.server_ip: loaded["target"]["server_ip"] = args.server_ip d = MyDataDict() for key in loaded["d"].keys(): d[key] = loaded["d"][key] if args.log_dir: d["TEST_LOG_DIR"] = args.log_dir else: d["TEST_LOG_DIR"] = os.path.abspath(os.path.dirname(__file__)) if args.deploy_dir: d["DEPLOY_DIR"] = args.deploy_dir else: if not os.path.isdir(d["DEPLOY_DIR"]): print("WARNING: The path to DEPLOY_DIR does not exist: %s" % d["DEPLOY_DIR"]) target = FakeTarget(d) for key in loaded["target"].keys(): setattr(target, key, loaded["target"][key]) host_dumper = get_host_dumper(d) host_dumper.parent_dir = loaded["host_dumper"]["parent_dir"] host_dumper.cmds = loaded["host_dumper"]["cmds"] tc = TestContext() setattr(tc, "d", d) setattr(tc, "target", target) setattr(tc, "host_dumper", host_dumper) for key in loaded.keys(): if key != "d" and key != "target" and key != "host_dumper": setattr(tc, key, loaded[key]) target.exportStart() runTests(tc) return 0
def main(): usage = "usage: %prog [options] <json file>" parser = OptionParser(usage=usage) parser.add_option("-t", "--target-ip", dest="ip", help="The IP address of the target machine. Use this to \ overwrite the value determined from TEST_TARGET_IP at build time") parser.add_option("-s", "--server-ip", dest="server_ip", help="The IP address of this machine. Use this to \ overwrite the value determined from TEST_SERVER_IP at build time.") parser.add_option("-d", "--deploy-dir", dest="deploy_dir", help="Full path to the package feeds, that this \ the contents of what used to be DEPLOY_DIR on the build machine. If not specified it will use the value \ specified in the json if that directory actually exists or it will error out.") parser.add_option("-l", "--log-dir", dest="log_dir", help="This sets the path for TEST_LOG_DIR. If not specified \ the current dir is used. This is used for usually creating a ssh log file and a scp test file.") (options, args) = parser.parse_args() if len(args) != 1: parser.error("Incorrect number of arguments. The one and only argument should be a json file exported by the build system") with open(args[0], "r") as f: loaded = json.load(f) if options.ip: loaded["target"]["ip"] = options.ip if options.server_ip: loaded["target"]["server_ip"] = options.server_ip d = MyDataDict() for key in loaded["d"].keys(): d[key] = loaded["d"][key] if options.log_dir: d["TEST_LOG_DIR"] = options.log_dir else: d["TEST_LOG_DIR"] = os.path.abspath(os.path.dirname(__file__)) if options.deploy_dir: d["DEPLOY_DIR"] = options.deploy_dir else: if not os.path.isdir(d["DEPLOY_DIR"]): raise Exception("The path to DEPLOY_DIR does not exists: %s" % d["DEPLOY_DIR"]) target = FakeTarget(d) for key in loaded["target"].keys(): setattr(target, key, loaded["target"][key]) tc = TestContext() setattr(tc, "d", d) setattr(tc, "target", target) for key in loaded.keys(): if key != "d" and key != "target": setattr(tc, key, loaded[key]) target.exportStart() runTests(tc) return 0
def main(): usage = "usage: %prog [options]" parser = OptionParser(usage=usage) parser.add_option("-t", "--target-ip", dest="ip", help="The IP address of the target machine. Use this to \ overwrite the value determined from TEST_TARGET_IP at build time") parser.add_option("-s", "--server-ip", dest="server_ip", help="The IP address of this machine. Use this to \ overwrite the value determined from TEST_SERVER_IP at build time.") parser.add_option("-d", "--deploy-dir", dest="deploy_dir", default=os.path.join(BASEDIR, "deploy"), help="Full path to the package feeds, that this \ the contents of what used to be DEPLOY_DIR on the build machine. \ If not specified it will use the value specified in the json if \ that directory actually exists or it will error out.") parser.add_option( "-l", "--log-dir", dest="log_dir", help="This sets the path for TEST_LOG_DIR. If not specified \ the current dir is used. This is used for usually creating a \ ssh log file and a scp test file.") parser.add_option("-f", "--test-manifest", dest="tests_list", help="The test list file") parser.add_option("-b", "--build-data", dest="build_data", help="The build data file.") parser.add_option("-a", "--tag", dest="tag", help="The tags to filter test case") parser.add_option( "-m", "--machine", dest="machine", help="""The target machine:quark intel-corei7-64 beaglebone""") parser.add_option("-n", "--nativearch", dest="nativearch", help="The native arch") parser.add_option( "-x", "--xunit", dest="xunit", help="Output directory to put results in xUnit XML format") (options, args) = parser.parse_args() tc = TestContext() #inject testcase list tclist = [] if not options.tests_list: options.tests_list = os.path.join(os.path.dirname(__file__), "testplan", "iottest.manifest") for each_manifest in options.tests_list.split(): with open(each_manifest, "r") as f: map( lambda y: tclist.append(y) if y not in tclist else None, filter(lambda x: not x.startswith('#'), [n.strip() for n in f.readlines()])) tc.testslist = tclist print tc.testslist #add testsrequired for skipModule tc.testsrequired = tc.testslist deployDir = os.path.abspath(options.deploy_dir) if not os.path.isdir(deployDir): raise Exception("The path to DEPLOY_DIR does not exists: %s" % deployDir) if options.machine: machine = options.machine else: parser.error("Please specify target machine by -m") if options.xunit: try: import xmlrunner except Exception: raise Exception( "xUnit output requested but unittest-xml-reporting not installed" ) unittest.TextTestRunner = wrap_runner(xmlrunner.XMLTestRunner, output=options.xunit) if options.build_data: build_data = options.build_data else: build_data = os.path.join(deployDir, "files", machine, "builddata.json") #get build data from file with open(build_data, "r") as f: loaded = json.load(f) #inject build datastore d = MyDataDict() if loaded.has_key("d"): for key in loaded["d"].keys(): d[key] = loaded["d"][key] d["DEPLOY_DIR"], d["MACHINE"] = deployDir, machine if options.log_dir: d["TEST_LOG_DIR"] = os.path.abspath(options.log_dir) else: d["TEST_LOG_DIR"] = os.path.abspath(os.path.dirname(__file__)) navarch = os.popen("uname -m").read().strip() d["BUILD_ARCH"] = "x86_64" if not navarch else navarch if options.nativearch: d["BUILD_ARCH"] = options.nativearch setattr(tc, "d", d) #inject build package manifest pkgs = [pname.strip() for pname in loaded["pkgmanifest"]] setattr(tc, "pkgmanifest", "\n".join(pkgs)) #inject target information target = FakeTarget(d) target.ip = options.ip if options.ip else "192.168.7.2" target.server_ip = options.server_ip if options.server_ip else "192.168.7.1" setattr(tc, "target", target) #inject others for key in loaded.keys(): if key not in ["testslist", "d", "target", "pkgmanifest"]: setattr(tc, key, loaded[key]) target.exportStart() setattr(tc, "tagexp", options.tag) runTests(tc) return 0
def main(): usage = "usage: %prog [options] <json file>" parser = OptionParser(usage=usage) parser.add_option("-t", "--target-ip", dest="ip", help="The IP address of the target machine. Use this to \ overwrite the value determined from TEST_TARGET_IP at build time") parser.add_option("-s", "--server-ip", dest="server_ip", help="The IP address of this machine. Use this to \ overwrite the value determined from TEST_SERVER_IP at build time.") parser.add_option("-d", "--deploy-dir", dest="deploy_dir", help="Full path to the package feeds, that this \ the contents of what used to be DEPLOY_DIR on the build machine. If not specified it will use the value \ specified in the json if that directory actually exists or it will error out." ) parser.add_option( "-l", "--log-dir", dest="log_dir", help="This sets the path for TEST_LOG_DIR. If not specified \ the current dir is used. This is used for usually creating a ssh log file and a scp test file." ) (options, args) = parser.parse_args() if len(args) != 1: parser.error( "Incorrect number of arguments. The one and only argument should be a json file exported by the build system" ) with open(args[0], "r") as f: loaded = json.load(f) if options.ip: loaded["target"]["ip"] = options.ip if options.server_ip: loaded["target"]["server_ip"] = options.server_ip d = MyDataDict() for key in loaded["d"].keys(): d[key] = loaded["d"][key] if options.log_dir: d["TEST_LOG_DIR"] = options.log_dir else: d["TEST_LOG_DIR"] = os.path.abspath(os.path.dirname(__file__)) if options.deploy_dir: d["DEPLOY_DIR"] = options.deploy_dir else: if not os.path.isdir(d["DEPLOY_DIR"]): raise Exception("The path to DEPLOY_DIR does not exists: %s" % d["DEPLOY_DIR"]) target = FakeTarget(d) for key in loaded["target"].keys(): setattr(target, key, loaded["target"][key]) host_dumper = get_host_dumper(d) host_dumper.parent_dir = loaded["host_dumper"]["parent_dir"] host_dumper.cmds = loaded["host_dumper"]["cmds"] tc = TestContext() setattr(tc, "d", d) setattr(tc, "target", target) setattr(tc, "host_dumper", host_dumper) for key in loaded.keys(): if key != "d" and key != "target" and key != "host_dumper": setattr(tc, key, loaded[key]) target.exportStart() runTests(tc) return 0