Esempio n. 1
0
 def test_enqueue_state_listen_recv_connect(self, tco):
     tco.listen(backlog=1)
     tco.enqueue(nfc.llcp.pdu.Connect(tco.addr, 17))
     tco.enqueue(nfc.llcp.pdu.Connect(tco.addr, 18))
     tco.accept()
     assert tco.dequeue(128, 0) == \
         nfc.llcp.pdu.DisconnectedMode(18, tco.addr, reason=0x20)
     assert tco.dequeue(128, 1) == \
         nfc.llcp.pdu.ConnectionComplete(17, tco.addr)
Esempio n. 2
0
 def test_enqueue_state_listen_recv_connect(self, tco):
     tco.listen(backlog=1)
     tco.enqueue(nfc.llcp.pdu.Connect(tco.addr, 17))
     tco.enqueue(nfc.llcp.pdu.Connect(tco.addr, 18))
     tco.accept()
     assert tco.dequeue(128, 0) == \
         nfc.llcp.pdu.DisconnectedMode(18, tco.addr, reason=0x20)
     assert tco.dequeue(128, 1) == \
         nfc.llcp.pdu.ConnectionComplete(17, tco.addr)
Esempio n. 3
0
 def test_recv(self, tco, pdu):
     assert tco.enqueue(pdu) is True
     assert tco.enqueue(pdu) is False
     tco.setsockopt(nfc.llcp.SO_RCVBUF, 2)
     assert tco.enqueue(pdu) is True
     assert tco.enqueue(pdu) is False
     assert tco.recv() == pdu
     assert tco.recv() == pdu
     threading.Timer(0.01, tco.enqueue, (pdu, )).start()
     tco.recv()
Esempio n. 4
0
 def test_recv(self, tco, pdu):
     assert tco.enqueue(pdu) is True
     assert tco.enqueue(pdu) is False
     tco.setsockopt(nfc.llcp.SO_RCVBUF, 2)
     assert tco.enqueue(pdu) is True
     assert tco.enqueue(pdu) is False
     assert tco.recv() == pdu
     assert tco.recv() == pdu
     threading.Timer(0.01, tco.enqueue, (pdu,)).start()
     tco.recv()
Esempio n. 5
0
 def test_recvfrom(self, tco):
     pdu = nfc.llcp.pdu.Symmetry()
     assert tco.enqueue(pdu) is False
     pdu = nfc.llcp.pdu.UnnumberedInformation(1, 1, (tco.recv_miu+1) * b'1')
     assert tco.enqueue(pdu) is False
     pdu = nfc.llcp.pdu.UnnumberedInformation(1, 1, HEX('1122'))
     assert tco.enqueue(pdu) is True
     assert tco.recvfrom() == (pdu.data, pdu.ssap)
     threading.Timer(0.01, tco.close).start()
     with pytest.raises(nfc.llcp.Error) as excinfo:
         tco.recvfrom()
     assert excinfo.value.errno == errno.EPIPE
     with pytest.raises(nfc.llcp.Error) as excinfo:
         tco.recvfrom()
     assert excinfo.value.errno == errno.ESHUTDOWN
Esempio n. 6
0
 def test_recvfrom(self, tco):
     pdu = nfc.llcp.pdu.Symmetry()
     assert tco.enqueue(pdu) is False
     pdu = nfc.llcp.pdu.UnnumberedInformation(1, 1,
                                              (tco.recv_miu + 1) * b'1')
     assert tco.enqueue(pdu) is False
     pdu = nfc.llcp.pdu.UnnumberedInformation(1, 1, HEX('1122'))
     assert tco.enqueue(pdu) is True
     assert tco.recvfrom() == (pdu.data, pdu.ssap)
     threading.Timer(0.01, tco.close).start()
     with pytest.raises(nfc.llcp.Error) as excinfo:
         tco.recvfrom()
     assert excinfo.value.errno == errno.EPIPE
     with pytest.raises(nfc.llcp.Error) as excinfo:
         tco.recvfrom()
     assert excinfo.value.errno == errno.ESHUTDOWN
Esempio n. 7
0
 def test_poll(self, tco):
     pdu = nfc.llcp.pdu.UnnumberedInformation(1, 1, HEX('1122'))
     assert tco.poll("", 1.0) is None
     assert tco.poll("recv", 0.001) is None
     assert tco.enqueue(pdu) is True
     assert tco.poll("recv", 0.001) == pdu
     assert tco.poll("send", 1.0) is True
     assert tco.send(pdu, flags=nfc.llcp.MSG_DONTWAIT) is None
     assert tco.poll("send", 0.001) is False
     assert tco.dequeue(10, 4, False) == pdu
     assert tco.poll("send", 1.0) is True
Esempio n. 8
0
 def test_recv(self, tco):
     pdu = nfc.llcp.pdu.UnnumberedInformation(1, 1, HEX('1122'))
     assert tco.enqueue(pdu) is True
     assert tco.recv() == pdu
     threading.Timer(0.01, tco.close).start()
     with pytest.raises(nfc.llcp.Error) as excinfo:
         tco.recv()
     assert excinfo.value.errno == errno.EPIPE
     with pytest.raises(nfc.llcp.Error) as excinfo:
         tco.recv()
     assert excinfo.value.errno == errno.ESHUTDOWN
Esempio n. 9
0
 def test_enqueue_state_closed_recv_any(self, tco):
     pdu = nfc.llcp.pdu.DisconnectedMode(tco.addr, 17)
     threading.Timer(0.01, tco.enqueue, (pdu, )).start()
     with pytest.raises(nfc.llcp.ConnectRefused):
         tco.connect(17)
     assert tco.state.CLOSED is True
     assert tco.dequeue(128, 0) == nfc.llcp.pdu.Connect(17, tco.addr)
     pdu = nfc.llcp.pdu.Information(tco.addr, 17, 0, 0, b'123')
     assert tco.enqueue(pdu) is None
     assert tco.dequeue(128, 0) == \
         nfc.llcp.pdu.DisconnectedMode(17, tco.addr, reason=1)
Esempio n. 10
0
 def test_poll(self, tco):
     pdu = nfc.llcp.pdu.UnnumberedInformation(1, 1, HEX('1122'))
     assert tco.poll("", 1.0) is None
     assert tco.poll("recv", 0.001) is None
     assert tco.enqueue(pdu) is True
     assert tco.poll("recv", 0.001) == pdu
     assert tco.poll("send", 1.0) is True
     assert tco.send(pdu, flags=nfc.llcp.MSG_DONTWAIT) is None
     assert tco.poll("send", 0.001) is False
     assert tco.dequeue(10, 4, False) == pdu
     assert tco.poll("send", 1.0) is True
Esempio n. 11
0
 def test_enqueue_state_closed_recv_any(self, tco):
     pdu = nfc.llcp.pdu.DisconnectedMode(tco.addr, 17)
     threading.Timer(0.01, tco.enqueue, (pdu,)).start()
     with pytest.raises(nfc.llcp.ConnectRefused):
         tco.connect(17)
     assert tco.state.CLOSED is True
     assert tco.dequeue(128, 0) == nfc.llcp.pdu.Connect(17, tco.addr)
     pdu = nfc.llcp.pdu.Information(tco.addr, 17, 0, 0, b'123')
     assert tco.enqueue(pdu) is None
     assert tco.dequeue(128, 0) == \
         nfc.llcp.pdu.DisconnectedMode(17, tco.addr, reason=1)
Esempio n. 12
0
 def test_recv(self, tco):
     pdu = nfc.llcp.pdu.UnnumberedInformation(1, 1, HEX('1122'))
     assert tco.enqueue(pdu) is True
     assert tco.recv() == pdu
     threading.Timer(0.01, tco.close).start()
     with pytest.raises(nfc.llcp.Error) as excinfo:
         tco.recv()
     assert excinfo.value.errno == errno.EPIPE
     with pytest.raises(nfc.llcp.Error) as excinfo:
         tco.recv()
     assert excinfo.value.errno == errno.ESHUTDOWN
Esempio n. 13
0
 def test_accept(self, tco):
     with pytest.raises(nfc.llcp.Error) as excinfo:
         tco.accept()
     assert excinfo.value.errno == errno.EINVAL
     tco.setsockopt(nfc.llcp.SO_RCVMIU, 1000)
     tco.setsockopt(nfc.llcp.SO_RCVBUF, 2)
     tco.listen(backlog=1)
     assert tco.state.LISTEN is True
     tco.enqueue(nfc.llcp.pdu.Connect(tco.addr, 17, 500, 15))
     dlc = tco.accept()
     assert isinstance(dlc, nfc.llcp.tco.DataLinkConnection)
     assert dlc.state.ESTABLISHED is True
     assert dlc.getsockopt(nfc.llcp.SO_RCVMIU) == 1000
     assert dlc.getsockopt(nfc.llcp.SO_SNDMIU) == 500
     assert dlc.getsockopt(nfc.llcp.SO_RCVBUF) == 2
     assert tco.dequeue(128, 4) == \
         nfc.llcp.pdu.ConnectionComplete(17, tco.addr, 1000, 2)
     threading.Timer(0.01, tco.close).start()
     with pytest.raises(nfc.llcp.Error) as excinfo:
         tco.accept()
     assert excinfo.value.errno == errno.EPIPE
     with pytest.raises(nfc.llcp.Error) as excinfo:
         tco.accept()
     assert excinfo.value.errno == errno.ESHUTDOWN
Esempio n. 14
0
 def test_accept(self, tco):
     with pytest.raises(nfc.llcp.Error) as excinfo:
         tco.accept()
     assert excinfo.value.errno == errno.EINVAL
     tco.setsockopt(nfc.llcp.SO_RCVMIU, 1000)
     tco.setsockopt(nfc.llcp.SO_RCVBUF, 2)
     tco.listen(backlog=1)
     assert tco.state.LISTEN is True
     tco.enqueue(nfc.llcp.pdu.Connect(tco.addr, 17, 500, 15))
     dlc = tco.accept()
     assert isinstance(dlc, nfc.llcp.tco.DataLinkConnection)
     assert dlc.state.ESTABLISHED is True
     assert dlc.getsockopt(nfc.llcp.SO_RCVMIU) == 1000
     assert dlc.getsockopt(nfc.llcp.SO_SNDMIU) == 500
     assert dlc.getsockopt(nfc.llcp.SO_RCVBUF) == 2
     assert tco.dequeue(128, 4) == \
         nfc.llcp.pdu.ConnectionComplete(17, tco.addr, 1000, 2)
     threading.Timer(0.01, tco.close).start()
     with pytest.raises(nfc.llcp.Error) as excinfo:
         tco.accept()
     assert excinfo.value.errno == errno.EPIPE
     with pytest.raises(nfc.llcp.Error) as excinfo:
         tco.accept()
     assert excinfo.value.errno == errno.ESHUTDOWN