Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
 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)