コード例 #1
0
ファイル: benchmark_test.py プロジェクト: rainser/grr
    def ProtoEncodeDecode():
      s = jobs_pb2.GrrMessage(
          name=u"foo", request_id=1, response_id=1, session_id=u"session")
      data = s.SerializeToString()

      new_s = jobs_pb2.GrrMessage()
      new_s.ParseFromString(data)

      return s, new_s
コード例 #2
0
    def testEncode(self):
        """Comparing encoding speed of a typical protobuf."""
        s = jobs_pb2.GrrMessage(name=u"foo",
                                request_id=1,
                                response_id=1,
                                session_id=u"session")
        serialized = s.SerializeToString()

        def ProtoEncode():
            s1 = jobs_pb2.GrrMessage(name=u"foo",
                                     request_id=1,
                                     response_id=1,
                                     session_id=u"session")

            test = s1.SerializeToString()
            self.assertLen(serialized, len(test))

        def RDFStructEncode():
            s2 = StructGrrMessage(name=u"foo",
                                  request_id=1,
                                  response_id=1,
                                  session_id=u"session")

            test = s2.SerializeToBytes()
            self.assertLen(serialized, len(test))

        self.TimeIt(RDFStructEncode)
        self.TimeIt(ProtoEncode)
コード例 #3
0
ファイル: benchmark_test.py プロジェクト: youngjun-chang/grr
    def testDecode(self):
        """Test decoding performance."""

        s = jobs_pb2.GrrMessage(name=u"foo",
                                request_id=1,
                                response_id=1,
                                session_id=u"session")
        data = s.SerializeToString()

        def ProtoDecode():
            new_s = jobs_pb2.GrrMessage()
            new_s.ParseFromString(data)

            self.assertEqual(new_s.session_id, "session")
            self.assertEqual(new_s.session_id.__class__, unicode)

        def RDFStructDecode():
            new_s = StructGrrMessage()
            new_s.ParseFromString(data)

            self.assertEqual(new_s.session_id, "session")
            self.assertEqual(new_s.session_id.__class__, unicode)

        self.TimeIt(RDFStructDecode)
        self.TimeIt(ProtoDecode)
コード例 #4
0
        def ProtoEncode():
            s1 = jobs_pb2.GrrMessage(name=u"foo",
                                     request_id=1,
                                     response_id=1,
                                     session_id=u"session")

            test = s1.SerializeToString()
            self.assertLen(serialized, len(test))
コード例 #5
0
def StoreMessage(fs_msg: common_pb2.Message):
  """Emulates sending of a message to Fleetspeak by storing it in-memory."""
  if not fs_msg.destination.client_id:
    raise ValueError("No destination set for Fleetspeak message:\n%s" % fs_msg)

  grr_id = fleetspeak_utils.FleetspeakIDToGRRID(fs_msg.destination.client_id)
  raw_grr_msg = jobs_pb2.GrrMessage()
  fs_msg.data.Unpack(raw_grr_msg)
  grr_msg = rdf_flows.GrrMessage.FromSerializedBytes(
      raw_grr_msg.SerializeToString())
  with _message_lock:
    try:
      _messages_by_client_id[grr_id].append(grr_msg)
    except KeyError:
      _messages_by_client_id[grr_id] = collections.deque([grr_msg])
コード例 #6
0
ファイル: benchmark_test.py プロジェクト: rainser/grr
  def testDecodeEncode(self):
    """Test performance of decode/encode cycle."""

    s = jobs_pb2.GrrMessage(
        name=u"foo", request_id=1, response_id=1, session_id=u"session")
    data = s.SerializeToString()

    def ProtoDecodeEncode():
      new_s = jobs_pb2.GrrMessage()
      new_s.ParseFromString(data)
      new_s.SerializeToString()

    def RDFStructDecodeEncode():
      new_s = StructGrrMessage.FromSerializedString(data)
      new_s.SerializeToString()

    self.TimeIt(RDFStructDecodeEncode)
    self.TimeIt(ProtoDecodeEncode)
コード例 #7
0
ファイル: benchmark_test.py プロジェクト: rainser/grr
 def ProtoDecodeEncode():
   new_s = jobs_pb2.GrrMessage()
   new_s.ParseFromString(data)
   new_s.SerializeToString()
コード例 #8
0
ファイル: benchmark_test.py プロジェクト: rainser/grr
    def ProtoDecode():
      new_s = jobs_pb2.GrrMessage()
      new_s.ParseFromString(data)

      self.assertEqual(new_s.session_id, "session")
      self.assertEqual(new_s.session_id.__class__, unicode)
コード例 #9
0
ファイル: benchmark_test.py プロジェクト: rainser/grr
 def ProtoCreateAndSerialize():
   s = jobs_pb2.GrrMessage(
       name=u"foo", request_id=1, response_id=1, session_id=u"session")
   return len(s.SerializeToString())
コード例 #10
0
        def ProtoDecode():
            new_s = jobs_pb2.GrrMessage()
            new_s.ParseFromString(data)

            self.assertEqual(new_s.session_id, "session")
            self.assertIsInstance(new_s.session_id, Text)
コード例 #11
0
 def SendCallback(fs_msg):
     pb_msg = jobs_pb2.GrrMessage()
     fs_msg.data.Unpack(pb_msg)
     msg = rdf_flows.GrrMessage.FromSerializedString(
         pb_msg.SerializeToString())
     client_mock.mock_task_queue.append(msg)