summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/test/suite/test_timestamp18.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/test/suite/test_timestamp18.py')
-rw-r--r--src/third_party/wiredtiger/test/suite/test_timestamp18.py38
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.