diff options
author | Alex Gorrod <alexg@wiredtiger.com> | 2015-03-31 14:23:42 +1100 |
---|---|---|
committer | Alex Gorrod <alexg@wiredtiger.com> | 2015-03-31 14:23:42 +1100 |
commit | 241fb5122b890316dbddd86458e10bd46cabc0df (patch) | |
tree | d14d57d91ae8bb899a008ec045177b1cc1e584d6 /test/suite/test_colgap.py | |
parent | e43cbd654367a73de696fed1885d089afd317dc2 (diff) | |
download | mongo-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.py | 39 |
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() |