예제 #1
0
 def test___iter__(self):
     with memory_buffer() as buff:
         buff.allocate(5)
         for i in range(5):
             buff[i] = i
         self.assertListEqual([0, 1, 2, 3, 4], [x for x in buff],
                              "Incorrect data returned")
예제 #2
0
 def test_default_construction(self):
     buff = memory_buffer()
     self.assertIsNotNone(buff.buff, "Didn't find private member _buff")
     self.assertIsNotNone(buff.size, "Didn't find private member _size")
     self.assertEqual(buff.size.value, 0, "Incorrect size")
     self.assertEqual(buff.buff.value, None, "Incorrect buffer data.")
     buff = None
예제 #3
0
 def test_indexing(self):
     with memory_buffer() as buff:
         buff.allocate(5)
         for i in range(5):
             buff[i] = i
         for i in range(5):
             self.assertEqual(i, buff[i], "Incorrect byte value")
예제 #4
0
 def test_to_list(self):
     with memory_buffer() as buff:
         buff.allocate(5)
         for i in range(5):
             buff[i] = i
         self.assertListEqual([i for i in range(5)], buff.to_list(),
                              "Incorrect list data returned")
예제 #5
0
 def test_to_string(self):
     with memory_buffer() as buff:
         expected = "This Is My String"
         buff.load_from_string(expected, "UTF-16")
         actual = buff.to_string("UTF-16")
         self.assertEqual(
             expected, actual,
             "Incorrect buffer content. Expected: {0}. Actual: {1}".format(
                 expected, actual))
예제 #6
0
    def test_set_index_testing(self):
        with memory_buffer() as buff:
            buff.allocate(5)
            for i in range(5):
                buff[i] = 0

            buff.set(1, [1, 2, 3, 4])

            self.assertListEqual([x for x in range(5)], [x for x in buff],
                                 "Incorrect list data returned")
예제 #7
0
    def test_set_full_copy(self):
        with memory_buffer() as buff:
            buff.allocate(5)
            for i in range(5):
                buff[i] = 0

            buff.set(0, [1, 2, 3, 4, 5])

            self.assertListEqual([x for x in range(1, 6)], [x for x in buff],
                                 "Incorrect list data returned")
예제 #8
0
    def test_set(self):
        with memory_buffer() as buff:
            buff.allocate(5)
            for i in range(5):
                buff[i] = 0

            buff.set(0, [1])

            self.assertListEqual([1, 0, 0, 0, 0], [x for x in buff],
                                 "Incorrect list data returned")
예제 #9
0
 def test_zero_out(self):
     with memory_buffer() as buff:
         buff.allocate(5)
         buff.set(0, [0, 1, 2, 3, 4])
         buff.zero_out()
         for i in range(5):
             self.assertEqual(
                 0, buff[i],
                 "Incorrect buffer value at index: {0}. Value: {1}".format(
                     i, buff[i]))
예제 #10
0
    def test_set_index_offset_count_invalid_combo(self):
        with memory_buffer() as buff:
            buff.allocate(5)
            for i in range(5):
                buff[i] = 0

            buff.set(0, [1, 2, 3, 4, 5], 1, 5)

            self.assertListEqual(
                [1, 2, 3, 4, 5], [x for x in buff],
                "Incorrect list data returned. Expected: {0}, Actual: {1}".
                format([x for x in range(1, 5)], [x for x in buff]))
예제 #11
0
    def test_set_index_count(self):
        with memory_buffer() as buff:
            buff.allocate(5)
            for i in range(5):
                buff[i] = 0

            buff.set(1, [1, 2, 3, 4], count=3)

            self.assertListEqual(
                [0, 1, 2, 3, 0], [x for x in buff],
                "Incorrect list data returned. Expected: {0}, Actual: {1}".
                format([x for x in range(1, 5)], [x for x in buff]))
예제 #12
0
 def test_unit_parse_memory(self):
     archive = srcml.archive()
     outputStringBuffer = StringIO.StringIO()
     archive.open_write(stream=outputStringBuffer, close_stream=False)
     unit = archive.create_unit()
     self.assertIsNotNone(unit, "Didn't get a unit.")
     self.assertIsNotNone(unit.srcml_revision(), "Didn't get a revision number.")
     mem_buff = srcml.memory_buffer()
     mem_buff._buff = ctypes.create_string_buffer(TestUnit.test_code)
     mem_buff._size = len(TestUnit.test_code)
     unit.language=srcml.LANGUAGE_CXX
     unit.parse(buff=mem_buff)
     archive.write_unit(unit)
     archive.close()
     mem_buff._buff = ctypes.c_char_p()
예제 #13
0
 def test_zero_out_count(self):
     with memory_buffer() as buff:
         buff.allocate(5)
         buff.set(0, [8, 1, 2, 3, 4])
         buff.zero_out(count=3)
         for i in range(3):
             self.assertEqual(
                 0, buff[i],
                 "Incorrect buffer value at index: {0}. Value: {1}".format(
                     i, buff[i]))
         self.assertEqual(
             3, buff[3],
             "Incorrect buffer value at index: {0}. Value: {1}".format(
                 3, buff[3]))
         self.assertEqual(
             4, buff[4],
             "Incorrect buffer value at index: {0}. Value: {1}".format(
                 4, buff[4]))
예제 #14
0
    def test_unit_unparse_memory(self):
        archive = srcml.archive()
        outputStringBuffer = StringIO.StringIO()
        archive.open_write(stream=outputStringBuffer, close_stream=False)
        unit = archive.create_unit()
        self.assertIsNotNone(unit, "Didn't get a unit.")
        self.assertIsNotNone(unit.srcml_revision(), "Didn't get a revision number.")
        unit.language = srcml.LANGUAGE_CXX
        unit.parse(TestUnit.test_code)
        archive.write_unit(unit)
        archive.close()
        self.assertTrue(len(outputStringBuffer.getvalue()) > 0, "Didn't get any output.")

        mem_buff = srcml.memory_buffer()
        rarchive = srcml.archive()
        rarchive.open_read(xml=outputStringBuffer.getvalue())
        runit = rarchive.read_unit()
        runit.unparse(buff=mem_buff)
        code = str(mem_buff)
        self.assertEqual(code, TestUnit.test_code, "Mismatched code and test code. Code:\"{0}\" Expected: \"{1}\"".format(code, TestUnit.test_code))
        rarchive.close()
예제 #15
0
 def test_set_index_neg_index(self):
     with memory_buffer() as buff:
         buff.allocate(5)
         buff[-1] = 4
예제 #16
0
 def test_set_invalid_index_past_end(self):
     with memory_buffer() as buff:
         buff.allocate(5)
         buff.set(5, [1, 2, 3, 4], 1, 3)
예제 #17
0
 def test_get_index_past_end_index(self):
     with memory_buffer() as buff:
         buff.allocate(5)
         i = buff[5]
예제 #18
0
 def test_allocate_neg(self):
     with memory_buffer() as buff:
         self.assertEqual(len(buff), 0, "Incorrect size")
         buff.allocate(-5)
예제 #19
0
 def test_len(self):
     buff = memory_buffer()
     self.assertEqual(len(buff), 0, "Incorrect size")
     buff.allocate(5)
     self.assertEqual(len(buff), 5, "Incorrect size")
     buff = None
예제 #20
0
 def test_with_stmt(self):
     with memory_buffer() as buff:
         self.assertIsNotNone(buff.buff, "Didn't find private member _buff")
         self.assertIsNotNone(buff.size, "Didn't find private member _size")
         self.assertEqual(buff.size.value, 0, "Incorrect size")
         self.assertEqual(buff.buff.value, None, "Incorrect buffer data.")
예제 #21
0
 def test_allocate(self):
     with memory_buffer() as buff:
         self.assertEqual(len(buff), 0, "Incorrect size")
         buff.allocate(5)
         self.assertEqual(buff.size.value, 5, "Incorrect size")
예제 #22
0
 def test_string_construction(self):
     expected = "string"
     buff = memory_buffer("string")
     self.assertEqual(len(expected), len(buff), "Incorrect size")
     self.assertEqual(expected, str(buff), "Incorrect buffer data.")
     buff = None
예제 #23
0
 def test_zero_out_count_past_end(self):
     with memory_buffer() as buff:
         buff.allocate(5)
         buff.set(0, [8, 1, 2, 3, 4])
         buff.zero_out(count=5)
예제 #24
0
 def test_set_invalid_offset_neg(self):
     with memory_buffer() as buff:
         buff.allocate(5)
         buff.set(0, [1, 2, 3, 4], -1, 3)
예제 #25
0
 def test_set_invalid_count_past_end(self):
     with memory_buffer() as buff:
         buff.allocate(5)
         buff.set(0, [1, 2, 3, 4], 1, 5)
예제 #26
0
 def test_load_from_string_TypeError(self):
     with memory_buffer() as buff:
         buff.load_from_string(None)
예제 #27
0
 def test_zero_out_index_neg(self):
     with memory_buffer() as buff:
         buff.allocate(5)
         buff.set(0, [8, 1, 2, 3, 4])
         buff.zero_out(-1)
예제 #28
0
 def test_load_from_string(self):
     with memory_buffer() as buff:
         expected = "This Is My String"
         buff.load_from_string(expected)
         self.assertEqual(expected, buff.to_string(),
                          "Incorrect buffer content")