def test_fromdata(self): data = ByteArray('\0name.\0Variable\0able\0xx\0') st = UnpreparedElfStringTable(None, data = data) st = st.prepare(0, 0, 0) self.assertEqual(len(st.get_strings()), 5) self.assertEqual(st.get_string_idx(1), "name.") self.assertEqual(st.get_string_idx(2), "Variable") self.assertEqual(st.get_string_idx(3), "able") self.assertEqual(st.get_string_idx(4), "xx") self.assertEqual(st.get_string_ofs(0), "") self.assertEqual(st.get_string_ofs(1), "name.") self.assertEqual(st.get_string_ofs(7), "Variable") self.assertEqual(st.get_string_ofs(11), "able") self.assertEqual(st.get_string_ofs(16), "able") self.assertEqual(st.get_file_data(), data)
def test_simpletable(self): st = UnpreparedElfStringTable(None) self.assertEqual(st.add_string("name."), 1) self.assertEqual(st.add_string("Variable"), 7) self.assertEqual(st.add_string("able"), 16) # this isn't a good test. we don't know it will be at 16, it'd just be obvious. it could also be at 11 or so self.assertEqual(st.add_string("xx"), 21) self.assertEqual(len(st.get_strings()), 5) self.assertEqual(st.get_string_idx(1), "name.") self.assertEqual(st.get_string_idx(2), "Variable") self.assertEqual(st.get_string_idx(3), "able") self.assertEqual(st.get_string_idx(4), "xx") self.assertEqual(st.get_string_ofs(0), "") self.assertEqual(st.get_string_ofs(1), "name.") self.assertEqual(st.get_string_ofs(7), "Variable") self.assertEqual(st.get_string_ofs(11), "able") self.assertEqual(st.get_string_ofs(16), "able") self.assertEqual(st.get_file_data(), array.array('B', '\0name.\0Variable\0able\0xx\0'))