def testNullableNullObjectInUnionSerialization(self):
        u = test_unions_mojom.ObjectUnion(f_nullable=None)
        (data, handles) = u.Serialize()
        context = serialization.RootDeserializationContext(data, handles)
        decoded = test_unions_mojom.ObjectUnion.Deserialize(context)

        self.assertEquals(u, decoded)
Exemplo n.º 2
0
 def testNonNullableEmptyMapSerialization(self):
     struct = sample_service_mojom.NonNullableMapStruct(map_field={})
     (data, handles) = struct.Serialize()
     context = serialization.RootDeserializationContext(data, handles)
     struct2 = sample_service_mojom.NonNullableMapStruct.Deserialize(
         context)
     self.assertEquals(struct, struct2)
    def testUnionUnknownTag(self):
        u = test_unions_mojom.NewUnion(f_int16=10)
        (data, handles) = u.Serialize()
        context = serialization.RootDeserializationContext(data, handles)
        decoded = test_unions_mojom.OldUnion.Deserialize(context)

        self.assertTrue(decoded.IsUnknown())
    def testArrayInUnionSerialization(self):
        u = test_unions_mojom.ObjectUnion(f_array_int8=[1, 2, 3, 4, 5])
        (data, handles) = u.Serialize()
        context = serialization.RootDeserializationContext(data, handles)
        decoded = test_unions_mojom.ObjectUnion.Deserialize(context)

        self.assertEquals(u, decoded)
Exemplo n.º 5
0
def _RunMessageOrClosePipe(manager, message):
    payload = message.payload
    query = (interface_control_messages_mojom.RunOrClosePipeMessageParams.
             Deserialize(
                 serialization.RootDeserializationContext(
                     payload.data, payload.handles)))
    return query.require_version.version <= manager.interface_manager.version
Exemplo n.º 6
0
    def doBoolInUnionSerializationTest(self, bool_value):
        u = test_unions_mojom.PodUnion(f_bool=bool_value)
        data, handles = u.Serialize()

        context = serialization.RootDeserializationContext(data, handles)
        decoded = test_unions_mojom.PodUnion.Deserialize(context)

        self.assertEquals(u, decoded)
    def testPodUnionSerialization(self):
        u = test_unions_mojom.PodUnion(f_uint32=32)
        (data, handles) = u.Serialize()
        context = serialization.RootDeserializationContext(data, handles)
        decoded = test_unions_mojom.PodUnion.Deserialize(context)

        self.assertFalse(decoded.IsUnknown())
        self.assertEquals(u, decoded)
    def testObjectInUnionSerialization(self):
        u = test_unions_mojom.ObjectUnion(
            f_dummy=test_unions_mojom.DummyStruct())
        u.f_dummy.f_int8 = 8
        (data, handles) = u.Serialize()
        context = serialization.RootDeserializationContext(data, handles)
        decoded = test_unions_mojom.ObjectUnion.Deserialize(context)

        self.assertEquals(u, decoded)
    def testNestedUnionSerialization(self):
        u = test_unions_mojom.ObjectUnion(
            f_pod_union=test_unions_mojom.PodUnion(f_int32=32))

        (data, handles) = u.Serialize()
        context = serialization.RootDeserializationContext(data, handles)
        decoded = test_unions_mojom.ObjectUnion.Deserialize(context)

        self.assertEquals(u, decoded)
    def testObjectInUnionInObjectSerialization(self):
        s = test_unions_mojom.SmallObjStruct()
        s.obj_union = test_unions_mojom.ObjectUnion(
            f_dummy=test_unions_mojom.DummyStruct())
        s.obj_union.f_dummy.f_int8 = 25
        (data, handles) = s.Serialize()
        context = serialization.RootDeserializationContext(data, handles)
        decoded = test_unions_mojom.SmallObjStruct.Deserialize(context)

        self.assertEquals(s, decoded)
    def testMapInUnionSerialization(self):
        u = test_unions_mojom.ObjectUnion(f_map_int8={
            'one': 1,
            'two': 2,
            'three': 3
        })
        (data, handles) = u.Serialize()
        context = serialization.RootDeserializationContext(data, handles)
        decoded = test_unions_mojom.ObjectUnion.Deserialize(context)

        self.assertEquals(u, decoded)
Exemplo n.º 12
0
def DeserializeFidlFileGraph(serialized_bytes):
    """Deserializes a mojom_files.FidlFileGraph.

  Args:
    serialized_bytes: {str} The serialized mojom_files.FidlFileGraph returned
        by mojom parser
  Returns:
    {mojom_files.FidlFileGraph} The deserialized FidlFileGraph.
  """
    data = bytearray(serialized_bytes)
    context = serialization.RootDeserializationContext(data, [])
    return fidl_files_fidl.FidlFileGraph.Deserialize(context)
    def testUnionInMap(self):
        s = test_unions_mojom.SmallStruct()
        s.pod_union_map = {
            'f_uint32': test_unions_mojom.PodUnion(f_uint32=32),
            'f_uint16': test_unions_mojom.PodUnion(f_uint16=16),
            'f_uint64': test_unions_mojom.PodUnion(f_uint64=64),
        }
        (data, handles) = s.Serialize()

        context = serialization.RootDeserializationContext(data, handles)
        decoded = test_unions_mojom.SmallStruct.Deserialize(context)

        self.assertEquals(s, decoded)
Exemplo n.º 14
0
def ReadMojomFileGraphFromFile(fp):
    """Reads a mojom_files_mojom.MojomFileGraph from a file.

  Args:
    fp: A file pointer from which a serialized mojom_fileS_mojom.MojomFileGraph
        can be read.

  Returns:
    The mojom_files_mojom.MojomFileGraph that was deserialized from the file.
  """
    data = bytearray(fp.read())
    context = serialization.RootDeserializationContext(data, [])
    return mojom_files_mojom.MojomFileGraph.Deserialize(context)
    def testNullableNullUnionInArray(self):
        s = test_unions_mojom.SmallStruct()
        s.nullable_pod_union_array = [
            test_unions_mojom.PodUnion(f_uint32=32),
            None,
            test_unions_mojom.PodUnion(f_uint64=64),
        ]
        (data, handles) = s.Serialize()

        context = serialization.RootDeserializationContext(data, handles)
        decoded = test_unions_mojom.SmallStruct.Deserialize(context)

        self.assertEquals(s, decoded)
    def testUnionInObject(self):
        s = test_unions_mojom.SmallStruct()
        s.pod_union = test_unions_mojom.PodUnion(f_uint32=32)
        (data, handles) = s.Serialize()

        # This is where the data should be serialized to.
        size, tag, value = struct.unpack_from('<IIQ', buffer(data), 16)
        self.assertEquals(16, size)
        self.assertEquals(6, tag)
        self.assertEquals(32, value)

        context = serialization.RootDeserializationContext(data, handles)
        decoded = test_unions_mojom.SmallStruct.Deserialize(context)

        self.assertEquals(s, decoded)
Exemplo n.º 17
0
 def testDefaultsTestSerializationDeserialization(self):
     v1 = sample_service_mojom.DefaultsTest()
     v1.a18 = []
     v1.a19 = ""
     v1.a21 = sample_import_mojom.Point()
     v1.a22.location = sample_import_mojom.Point()
     v1.a22.size = sample_import2_mojom.Size()
     (data, handles) = v1.Serialize()
     context = serialization.RootDeserializationContext(data, handles)
     v2 = sample_service_mojom.DefaultsTest.Deserialize(context)
     # NaN needs to be a special case.
     self.assertNotEquals(v1, v2)
     self.assertTrue(math.isnan(v2.a28))
     self.assertTrue(math.isnan(v2.a31))
     v1.a28 = v2.a28 = v1.a31 = v2.a31 = 0
     self.assertEquals(v1, v2)
Exemplo n.º 18
0
    def Accept(self, message, responder=None):
        try:
            header = message.header
            assert header.expects_response == bool(responder)
            if header.message_type == interface_control_messages_mojom.RUN_MESSAGE_ID:
                return _RunMessage(self.impl.manager, message, responder)
            if (header.message_type == interface_control_messages_mojom.
                    RUN_OR_CLOSE_PIPE_MESSAGE_ID):
                return _RunMessageOrClosePipe(self.impl.manager, message)
            assert header.message_type in methods_by_ordinal
            method = methods_by_ordinal[header.message_type]
            payload = message.payload
            parameters = method.parameters_struct.Deserialize(
                serialization.RootDeserializationContext(
                    payload.data, payload.handles)).AsDict()
            response = getattr(self.impl, method.name)(**parameters)
            if header.expects_response:

                @promise. async
                def SendResponse(response):
                    if isinstance(response, dict):
                        response_message = _GetMessage(
                            method, messaging.MESSAGE_IS_RESPONSE_FLAG,
                            header.request_id, **response)
                    else:
                        response_message = _GetMessage(
                            method, messaging.MESSAGE_IS_RESPONSE_FLAG,
                            header.request_id, response)
                    return responder.Accept(response_message)

                p = SendResponse(response)
                if self.impl.manager:
                    # Close the connection in case of error.
                    p.Catch(lambda _: self.impl.manager.Close())
            return True
        # pylint: disable=W0702
        except:
            # Close the connection in case of error.
            logging.warning(
                'Error occured in accept method. Connection will be closed.')
            logging.debug("Exception", exc_info=True)
            if self.impl.manager:
                self.impl.manager.Close()
            return False
Exemplo n.º 19
0
 def Accept(message):
     try:
         assert message.header.message_type == method.ordinal
         payload = message.payload
         response = method.response_struct.Deserialize(
             serialization.RootDeserializationContext(
                 payload.data, payload.handles))
         as_dict = response.AsDict()
         if len(as_dict) == 1:
             value = as_dict.values()[0]
             if not isinstance(value, dict):
                 response = value
         resolve(response)
         return True
     except Exception as e:
         # Adding traceback similarly to python 3.0 (pep-3134)
         e.__traceback__ = sys.exc_info()[2]
         reject(e)
         return False
     finally:
         self._error_handler.RemoveCallback(reject)
Exemplo n.º 20
0
    def Accept(self, message, responder=None):
        try:
            header = message.header
            assert header.expects_response == bool(responder)
            assert header.message_type in methods_by_ordinal
            method = methods_by_ordinal[header.message_type]
            payload = message.payload
            parameters = method.parameters_struct.Deserialize(
                serialization.RootDeserializationContext(
                    payload.data, payload.handles)).AsDict()
            response = getattr(self.impl, method.name)(**parameters)
            if header.expects_response:

                def SendResponse(response):
                    if isinstance(response, dict):
                        response_message = _GetMessage(
                            method, messaging.MESSAGE_IS_RESPONSE_FLAG,
                            **response)
                    else:
                        response_message = _GetMessage(
                            method, messaging.MESSAGE_IS_RESPONSE_FLAG,
                            response)
                    response_message.header.request_id = header.request_id
                    responder.Accept(response_message)

                p = promise.Promise.Resolve(response).Then(SendResponse)
                if self.impl.manager:
                    # Close the connection in case of error.
                    p.Catch(lambda _: self.impl.manager.Close())
            return True
        # pylint: disable=W0702
        except:
            # Close the connection in case of error.
            logging.warning(
                'Error occured in accept method. Connection will be closed.')
            if self.impl.manager:
                self.impl.manager.Close()
            return False
Exemplo n.º 21
0
 def testFooSerializationDeserialization(self):
     foo1 = _NewFoo()
     (data, handles) = foo1.Serialize()
     context = serialization.RootDeserializationContext(data, handles)
     foo2 = sample_service_mojom.Foo.Deserialize(context)
     self.assertEquals(foo1, foo2)
Exemplo n.º 22
0
 def testFooDeserialization(self):
     (data, handles) = _NewFoo().Serialize()
     context = serialization.RootDeserializationContext(data, handles)
     self.assertTrue(sample_service_mojom.Foo.Deserialize(context))
Exemplo n.º 23
0
 def SerializeAndDeserialize(self, target_class, input_instance):
     (data, handles) = input_instance.Serialize()
     context = serialization.RootDeserializationContext(data, handles)
     return target_class.Deserialize(context)