diff options
Diffstat (limited to 'src/third_party/wiredtiger/test/suite/test_timestamp18.py')
-rw-r--r-- | src/third_party/wiredtiger/test/suite/test_timestamp18.py | 38 |
1 files changed, 25 insertions, 13 deletions
diff --git a/src/third_party/wiredtiger/test/suite/test_timestamp18.py b/src/third_party/wiredtiger/test/suite/test_timestamp18.py index b41fc5ccb34..b6a92651ff6 100644 --- a/src/third_party/wiredtiger/test/suite/test_timestamp18.py +++ b/src/third_party/wiredtiger/test/suite/test_timestamp18.py @@ -42,29 +42,37 @@ class test_timestamp18(wttest.WiredTigerTestCase): conn_config = 'cache_size=50MB' session_config = 'isolation=snapshot' - key_format_values = [ - ('string-row', dict(key_format='S', usestrings=True)), - ('column', dict(key_format='r', usestrings=False)), + format_values = [ + ('string-row', dict(key_format='S', value_format='S')), + ('column', dict(key_format='r', value_format='S')), + ('column-fix', dict(key_format='r', value_format='8t')), ] non_ts_writes = [ ('insert', dict(delete=False)), ('delete', dict(delete=True)), ] - scenarios = make_scenarios(key_format_values, non_ts_writes) + scenarios = make_scenarios(format_values, non_ts_writes) def get_key(self, i): - return str(i) if self.usestrings else i + return str(i) if self.key_format == 'S' else i def test_ts_writes_with_non_ts_write(self): uri = 'table:test_timestamp18' - self.session.create(uri, 'key_format={},value_format=S'.format(self.key_format)) + format = 'key_format={},value_format={}'.format(self.key_format, self.value_format) + self.session.create(uri, format) self.conn.set_timestamp('oldest_timestamp=' + self.timestamp_str(1)) cursor = self.session.open_cursor(uri) - value1 = 'a' * 500 - value2 = 'b' * 500 - value3 = 'c' * 500 - value4 = 'd' * 500 + if self.value_format == '8t': + value1 = 97 # 'a' + value2 = 98 # 'b' + value3 = 99 # 'c' + value4 = 100 # 'd' + else: + value1 = 'a' * 500 + value2 = 'b' * 500 + value3 = 'c' * 500 + value4 = 'd' * 500 # A series of timestamped writes on each key. for i in range(1, 10000): @@ -98,12 +106,16 @@ class test_timestamp18(wttest.WiredTigerTestCase): for ts in range(2, 4): self.session.begin_transaction('read_timestamp=' + self.timestamp_str(ts)) for i in range(1, 10000): - # The non-timestamped delete should cover all the previous writes and make them effectively - # invisible. + # The non-timestamped delete should cover all the previous writes and make them + # effectively invisible. (For FLCS, this means they read back as zero.) if i % 2 == 0: if self.delete: cursor.set_key(self.get_key(i)) - self.assertEqual(cursor.search(), wiredtiger.WT_NOTFOUND) + if self.value_format == '8t': + self.assertEqual(cursor.search(), 0) + self.assertEqual(cursor.get_value(), 0) + else: + self.assertEqual(cursor.search(), wiredtiger.WT_NOTFOUND) else: self.assertEqual(cursor[self.get_key(i)], value4) # Otherwise, expect one of the timestamped writes. |