Esempio n. 1
0
    def test_hash(self):
        # Check the hash of an object that doesn't exist.
        object_id1 = random_object_id()
        self.plasma_client.hash(object_id1)

        length = 1000
        # Create a random object, and check that the hash function always
        # returns the same value.
        metadata = generate_metadata(length)
        memory_buffer = self.plasma_client.create(object_id1, length, metadata)
        for i in range(length):
            memory_buffer[i] = chr(i % 256)
        self.plasma_client.seal(object_id1)
        self.assertEqual(self.plasma_client.hash(object_id1),
                         self.plasma_client.hash(object_id1))

        # Create a second object with the same value as the first, and check
        # that their hashes are equal.
        object_id2 = random_object_id()
        memory_buffer = self.plasma_client.create(object_id2, length, metadata)
        for i in range(length):
            memory_buffer[i] = chr(i % 256)
        self.plasma_client.seal(object_id2)
        self.assertEqual(self.plasma_client.hash(object_id1),
                         self.plasma_client.hash(object_id2))

        # Create a third object with a different value from the first two, and
        # check that its hash is different.
        object_id3 = random_object_id()
        metadata = generate_metadata(length)
        memory_buffer = self.plasma_client.create(object_id3, length, metadata)
        for i in range(length):
            memory_buffer[i] = chr((i + 1) % 256)
        self.plasma_client.seal(object_id3)
        self.assertNotEqual(self.plasma_client.hash(object_id1),
                            self.plasma_client.hash(object_id3))

        # Create a fourth object with the same value as the third, but
        # different metadata. Check that its hash is different from any of the
        # previous three.
        object_id4 = random_object_id()
        metadata4 = generate_metadata(length)
        memory_buffer = self.plasma_client.create(object_id4, length,
                                                  metadata4)
        for i in range(length):
            memory_buffer[i] = chr((i + 1) % 256)
        self.plasma_client.seal(object_id4)
        self.assertNotEqual(self.plasma_client.hash(object_id1),
                            self.plasma_client.hash(object_id4))
        self.assertNotEqual(self.plasma_client.hash(object_id3),
                            self.plasma_client.hash(object_id4))
Esempio n. 2
0
 def test_create_existing(self):
     # This test is partially used to test the code path in which we create
     # an object with an ID that already exists
     length = 100
     for _ in range(1000):
         object_id = random_object_id()
         self.plasma_client.create(object_id, length,
                                   generate_metadata(length))
         try:
             self.plasma_client.create(object_id, length,
                                       generate_metadata(length))
         except plasma.plasma_object_exists_error as e:
             pass
         else:
             self.assertTrue(False)
Esempio n. 3
0
 def test_create_with_metadata(self):
     for length in range(1000):
         # Create an object id string.
         object_id = random_object_id()
         # Create a random metadata string.
         metadata = generate_metadata(length)
         # Create a new buffer and write to it.
         memory_buffer = self.plasma_client.create(object_id, length,
                                                   metadata)
         for i in range(length):
             memory_buffer[i] = chr(i % 256)
         # Seal the object.
         self.plasma_client.seal(object_id)
         # Get the object.
         memory_buffer = self.plasma_client.get([object_id])[0]
         for i in range(length):
             self.assertEqual(memory_buffer[i], chr(i % 256))
         # Get the metadata.
         metadata_buffer = self.plasma_client.get_metadata([object_id])[0]
         self.assertEqual(len(metadata), len(metadata_buffer))
         for i in range(len(metadata)):
             self.assertEqual(chr(metadata[i]), metadata_buffer[i])