def nodes(local, request, boards, iotlab_site): """ Provides the nodes for a test as a list of RIOTCtrl objects """ ctrls = [] if boards is None: boards = request.param only_native = all(b.startswith("native") for b in boards) for board in boards: if local or only_native or IoTLABExperiment.valid_board(board): env = {'BOARD': '{}'.format(board)} else: env = { 'BOARD': IoTLABExperiment.board_from_iotlab_node(board), 'IOTLAB_NODE': '{}'.format(board) } ctrls.append(RIOTCtrl(env=env)) if local or only_native: yield ctrls else: name_fmt = get_namefmt(request) # Start IoT-LAB experiment if requested exp = IoTLABExperiment( name="RIOT-release-test-{module}-{function}".format(**name_fmt), ctrls=ctrls, site=iotlab_site) RUNNING_EXPERIMENTS.append(exp) exp.start(duration=IOTLAB_EXPERIMENT_DURATION) yield ctrls exp.stop() RUNNING_EXPERIMENTS.remove(exp)
def setUpClass(cls): cls.ctrl = RIOTCtrl() cls.ctrl.reset() cls.ctrl.start_term() if cls.DEBUG: cls.ctrl.term.logfile = sys.stdout cls.shell = TwrShell(cls.ctrl) cls.logger = logging.getLogger(cls.__name__) if cls.DEBUG: cls.logger.setLevel(logging.DEBUG)
def setUpClass(cls): cls.ctrl = RIOTCtrl() cls.ctrl.start_term() if cls.DEBUG: cls.ctrl.term.logfile = sys.stdout cls.ctrl.reset() cls.shell = ShellInteraction(cls.ctrl) cls.json_parser = RapidJSONShellInteractionParser() cls.logger = logging.getLogger(cls.__name__) if cls.DEBUG: cls.logger.setLevel(logging.DEBUG)
def setUpClass(cls): cls.ctrl = RIOTCtrl() cls.ctrl.reset() cls.ctrl.start_term() if cls.DEBUG: cls.ctrl.term.logfile = sys.stdout cls.shell = CongureTest(cls.ctrl) cls.json_parser = RapidJSONShellInteractionParser() cls.json_parser.set_parser_args( parse_mode=rapidjson.PM_TRAILING_COMMAS) cls.logger = logging.getLogger(cls.__name__) if cls.DEBUG: cls.logger.setLevel(logging.DEBUG)