Ejemplo n.º 1
0
def test_task05(riot_ctrl):
    node = riot_ctrl(0, 'examples/gcoap', Shell, port=TAP)

    node_netif, _ = lladdr(node.ifconfig_list())
    node.ifconfig_add(node_netif, NODE_ULA)
    responses = []

    async def client_server(host):
        context = await coap_server()

        # pylint: disable=E1101
        msg = aiocoap.Message(code=aiocoap.GET,
                              uri='coap://{0}/cli/stats'.format(host),
                              observe=0)
        req = context.request(msg)

        resp = await req.response
        responses.append(resp)

        res = node.coap_get(HOST_ULA, 5683, "/time", confirmable=True)
        assert re.search(r"gcoap_cli: sending msg ID \d+, \d+ bytes", res)

        async for resp in req.observation:
            responses.append(resp)

            req.observation.cancel()
            break
        await context.shutdown()

    timeout_futures([client_server('[{}]'.format(NODE_ULA))], timeout=2)
    node.riotctrl.term.expect(r"gcoap: response Success, code 2.05, \d+ bytes")
    assert len(responses) == 2
    for i, response in enumerate(responses):
        assert str(response.code) == "2.05 Content"
        assert int(response.payload) == i
Ejemplo n.º 2
0
def test_task04(riot_ctrl, log_nodes):
    node = riot_ctrl(0, APP, Shell, port='tap0')
    pingers = [pexpect.replwrap.bash() for _ in range(10)]

    _, pinged_addr = lladdr(node.ifconfig_list())
    assert pinged_addr.startswith("fe80::")
    iface = bridge('tap0')
    pinged_addr += "%{}".format(iface)
    ping_cmd = get_ping_cmd()

    futures = []
    try:
        for pinger in pingers:
            if log_nodes:
                pinger.child.logfile = sys.stdout
            out = pinger.run_command(
                "{ping_cmd} -f -s 1452 {pinged_addr}"
                # pipe to /dev/null because output can go
                # into MiB of data ;-)
                " 2>&1 > /dev/null".format(ping_cmd=ping_cmd,
                                           pinged_addr=pinged_addr),
                async_=True,
                timeout=60 * 60)
            futures.append(out)
        timeout_futures(futures, 60 * 60)
    finally:
        for pinger in pingers:
            # interrupt prevailing `ping6`s
            pinger.child.sendintr()

    check_pktbuf(node)
Ejemplo n.º 3
0
def test_task02(riot_ctrl, start_server, expected):
    node = riot_ctrl(0, 'examples/gcoap', Shell, port=TAP)

    node_netif, _ = lladdr(node.ifconfig_list())
    node.ifconfig_add(node_netif, NODE_ULA)

    res = node.coap_get(HOST_ULA, 5683, "/time", confirmable=True)
    time.sleep(1)
    if start_server:
        # kill server after 10 seconds, then it has enough time to respond to
        # first retry
        timeout_futures([coap_server()], timeout=10)
    res = node.riotctrl.term.expect([
        r"gcoap: timeout for msg ID \d+",
        r"gcoap: response Success, code 2.05, \d+ bytes",
    ], timeout=100)
    assert res == expected