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")
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
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")
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")
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))
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")
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")
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")
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]))
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]))
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]))
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()
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]))
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()
def test_set_index_neg_index(self): with memory_buffer() as buff: buff.allocate(5) buff[-1] = 4
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)
def test_get_index_past_end_index(self): with memory_buffer() as buff: buff.allocate(5) i = buff[5]
def test_allocate_neg(self): with memory_buffer() as buff: self.assertEqual(len(buff), 0, "Incorrect size") buff.allocate(-5)
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
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.")
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")
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
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)
def test_set_invalid_offset_neg(self): with memory_buffer() as buff: buff.allocate(5) buff.set(0, [1, 2, 3, 4], -1, 3)
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)
def test_load_from_string_TypeError(self): with memory_buffer() as buff: buff.load_from_string(None)
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)
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")