summaryrefslogtreecommitdiff
path: root/test/suite/test_colgap.py
diff options
context:
space:
mode:
authorAlex Gorrod <alexg@wiredtiger.com>2015-03-31 14:23:42 +1100
committerAlex Gorrod <alexg@wiredtiger.com>2015-03-31 14:23:42 +1100
commit241fb5122b890316dbddd86458e10bd46cabc0df (patch)
treed14d57d91ae8bb899a008ec045177b1cc1e584d6 /test/suite/test_colgap.py
parente43cbd654367a73de696fed1885d089afd317dc2 (diff)
downloadmongo-241fb5122b890316dbddd86458e10bd46cabc0df.tar.gz
Add a test case for a new bug in variable length column stores.
Refs #1834
Diffstat (limited to 'test/suite/test_colgap.py')
-rw-r--r--test/suite/test_colgap.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/suite/test_colgap.py b/test/suite/test_colgap.py
index fd323741ef1..6cd45d97294 100644
--- a/test/suite/test_colgap.py
+++ b/test/suite/test_colgap.py
@@ -68,6 +68,7 @@ class test_column_store_gap(wttest.WiredTigerTestCase):
cursor.set_value(value_populate(cursor, i))
cursor.insert()
+ self.nentries = 13
# In-memory cursor forward, backward.
self.forward(cursor)
self.backward(cursor)
@@ -79,6 +80,44 @@ class test_column_store_gap(wttest.WiredTigerTestCase):
self.forward(cursor)
self.backward(cursor)
+ def test_column_store_gap_traverse(self):
+ uri = 'table:gap'
+ simple_populate(self, uri, 'key_format=r,value_format=S', 0)
+ cursor = self.session.open_cursor(uri, None, None)
+
+ # Create a column store with key gaps
+ v = [ 1000, 1001, 2000, 2001]
+ for i in v:
+ cursor.set_key(key_populate(cursor, i))
+ cursor.set_value(value_populate(cursor, i))
+ cursor.insert()
+
+ # In-memory cursor forward, backward.
+ self.forward(cursor, v)
+ self.backward(cursor, list(reversed(v)))
+
+ self.reopen_conn()
+ cursor = self.session.open_cursor(uri, None, None)
+
+ # Disk page cursor forward, backward.
+ self.forward(cursor, v)
+ self.backward(cursor, list(reversed(v)))
+
+ v2 = [ 1500, 1501 ]
+ for i in v2:
+ cursor.set_key(key_populate(cursor, i))
+ cursor.set_value(value_populate(cursor, i))
+ cursor.insert()
+
+ # Disk page plus in memory updates.
+ v = [ 1000, 1001, 1500, 1501, 2000, 2001 ]
+ self.nentries = 8
+ self.forward(cursor, v)
+ self.backward(cursor, list(reversed(v)))
+
+
+if __name__ == '__main__':
+ wttest.run()
if __name__ == '__main__':
wttest.run()