Beispiel #1
0
    def test_07(self, llc):
        """Default server limits"""

        payload = bytearray(x % 256 for x in range(1024 - 32))
        records = [ndef.Record("application/octet-stream", "1", payload)]
        ndef_message = b''.join(ndef.message_encoder(records))

        snep = nfc.snep.SnepClient(llc)
        try:
            info("connect to {0}".format("urn:nfc:sn:snep"))
            snep.connect("urn:nfc:sn:snep")
        except nfc.llcp.ConnectRefused:
            raise cli.TestFail("could not connect to default server")

        try:
            info("put {0} octets ndef message".format(len(ndef_message)))
            snep.put_octets(ndef_message)

            identifier = ndef.Record("application/octet-stream", "1")
            info("request ndef message {}".format(identifier))
            identifier = b''.join(ndef.message_encoder([identifier]))
            try:
                ndef_message = snep.get_octets(identifier)
            except nfc.snep.SnepError as e:
                if e.errno != nfc.snep.NotImplemented:
                    raise cli.TestFail("received unexpected response code")
                info("received 'not implemented' response as expected")
            else:
                raise cli.TestFail("received unexpected message from server")
        finally:
            info("disconnect from server")
            snep.close()
Beispiel #2
0
    def test_05(self, llc):
        """Undeliverable resource"""

        payload = bytearray(range(122 - 29))
        records = [ndef.Record("application/octet-stream", "1", payload)]
        ndef_message_sent = b''.join(ndef.message_encoder(records))

        max_ndef_msg_recv_size = len(ndef_message_sent) - 1
        snep = nfc.snep.SnepClient(llc, max_ndef_msg_recv_size)
        try:
            info("connect to {0}".format(validation_server))
            snep.connect(validation_server)
        except nfc.llcp.ConnectRefused:
            raise cli.TestFail("could not connect to validation server")

        try:
            info("put {0} octets ndef message".format(len(ndef_message_sent)))
            snep.put_octets(ndef_message_sent)

            info(
                "request ndef message with max acceptable lenght of {} octets".
                format(max_ndef_msg_recv_size))
            identifier = ndef.Record("application/octet-stream", "1")
            identifier = b''.join(ndef.message_encoder([identifier]))
            try:
                snep.get_octets(identifier)
            except nfc.snep.SnepError as e:
                if e.errno != nfc.snep.ExcessData:
                    raise cli.TestFail("received unexpected response code")
                info("received 'excess data' response as expected")
            else:
                raise cli.TestFail("received unexpected message from server")
        finally:
            info("disconnect from {0}".format(validation_server))
            snep.close()
Beispiel #3
0
    def test_06(self, llc):
        """Unavailable resource"""

        snep = nfc.snep.SnepClient(llc)
        try:
            info("connect to {0}".format(validation_server))
            snep.connect(validation_server)
        except nfc.llcp.ConnectRefused:
            raise cli.TestFail("could not connect to validation server")

        try:
            identifier = ndef.Record("application/octet-stream", "na")
            info("request ndef message {}".format(identifier))
            identifier = b''.join(ndef.message_encoder([identifier]))
            try:
                snep.get_octets(identifier)
            except nfc.snep.SnepError as e:
                if e.errno != nfc.snep.NotFound:
                    raise cli.TestFail("received unexpected response code")
                info("received 'not found' response as expected")
            else:
                raise cli.TestFail("received unexpected message from server")
        finally:
            info("disconnect from {0}".format(validation_server))
            snep.close()
Beispiel #4
0
    def test_04(self, llc):
        """Multiple ndef messages"""

        ndef_message_sent = list()
        ndef_message_rcvd = list()

        payload = bytearray(range(50))
        records = [ndef.Record("application/octet-stream", "1", payload)]
        ndef_message_sent.append(b''.join(ndef.message_encoder(records)))
        records = [ndef.Record("application/octet-stream", "2", payload)]
        ndef_message_sent.append(b''.join(ndef.message_encoder(records)))

        snep = nfc.snep.SnepClient(llc, max_ndef_msg_recv_size=10000)
        try:
            info("connect to {0}".format(validation_server))
            snep.connect(validation_server)
        except nfc.llcp.ConnectRefused:
            raise cli.TestFail("could not connect to validation server")

        try:
            info("put 1st ndef message")
            snep.put_octets(ndef_message_sent[0])

            info("put 2nd ndef message")
            snep.put_octets(ndef_message_sent[1])

            info("get 1st ndef message")
            identifier = ndef.Record("application/octet-stream", "1")
            identifier = b''.join(ndef.message_encoder([identifier]))
            ndef_message = snep.get_octets(identifier)
            ndef_message_rcvd.append(ndef_message)

            info("get 2nd ndef message")
            identifier = ndef.Record("application/octet-stream", "2")
            identifier = b''.join(ndef.message_encoder([identifier]))
            ndef_message = snep.get_octets(identifier)
            ndef_message_rcvd.append(ndef_message)

            for i in range(len(ndef_message_sent)):
                if not ndef_message_rcvd == ndef_message_sent:
                    info("rcvd ndef message {0} differs".format(i))
                    raise cli.TestFail("rcvd message {0} differs".format(i))
                else:
                    info("rcvd message {0} is correct".format(i))
        except Exception as e:
            raise cli.TestFail("exception " + str(e))
        finally:
            info("disconnect from {0}".format(validation_server))
            snep.close()
Beispiel #5
0
    def test_01(self, llc):
        """Connect and terminate"""

        snep = nfc.snep.SnepClient(llc, max_ndef_msg_recv_size=1024)
        try:
            info("1st connect to {0}".format(validation_server))
            snep.connect(validation_server)
        except nfc.llcp.ConnectRefused:
            raise cli.TestFail("could not connect to validation server")
        else:
            info("disconnect from {0}".format(validation_server))
            snep.close()
        try:
            info("2nd connect to {0}".format(validation_server))
            snep.connect(validation_server)
        except nfc.llcp.ConnectRefused:
            raise cli.TestFail("could not connect to validation server")
        else:
            info("disconnect from {0}".format(validation_server))
            snep.close()