summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/test/suite/test_compat03.py
diff options
context:
space:
mode:
authorLuke Chen <luke.chen@mongodb.com>2019-05-29 15:17:23 +1000
committerLuke Chen <luke.chen@mongodb.com>2019-05-29 15:17:23 +1000
commit441714bc4c70699950f3ac51a5cac41dcd413eaa (patch)
treebd9ebaedbbd2ad5e22cf0de79c1dd9e185807cca /src/third_party/wiredtiger/test/suite/test_compat03.py
parent76f671c7a714378951dc7d4d5e22073e45882633 (diff)
downloadmongo-441714bc4c70699950f3ac51a5cac41dcd413eaa.tar.gz
Import wiredtiger: 57bd75fee93b685c133281100719f886d0184589 from branch mongodb-4.2r4.1.13
ref: 5d321d0c60..57bd75fee9 for: 4.1.13 WT-4240 Document that system crashes may result in files that need salvaging WT-4710 Fix memory issue for non-verbose dump in datafile portability test WT-4712 Add debug log op record for non-logged tables WT-4732 Remove the bias from the eviction policy on the dhandle order WT-4760 Checkpoint should not read past a stable update WT-4771 Fix compatibility tests to handle a new version release WT-4799 wiredtiger.in references the wrong statistics script WT-4800 List all flags in the wt utility usage statement WT-4803 Implement file_max configuration for Cache Overflow mechanism WT-4804 Add support for ignore_prepare=force WT-4811 Fix durable timestamp assignment for updates created for truncate WT-4816 Don't disallow LSM configurations in test/format WT-4817 heap-buffer-overflow failure in timestamp_abort WT-4819 wt utility list command drops core on empty objects WT-4822 Extend statistics to track max pre compression page sizes WT-4823 Add check for uninitialised lookaside resources
Diffstat (limited to 'src/third_party/wiredtiger/test/suite/test_compat03.py')
-rw-r--r--src/third_party/wiredtiger/test/suite/test_compat03.py26
1 files changed, 16 insertions, 10 deletions
diff --git a/src/third_party/wiredtiger/test/suite/test_compat03.py b/src/third_party/wiredtiger/test/suite/test_compat03.py
index 064fe5ab7ed..421a8fbe381 100644
--- a/src/third_party/wiredtiger/test/suite/test_compat03.py
+++ b/src/third_party/wiredtiger/test/suite/test_compat03.py
@@ -56,15 +56,22 @@ class test_compat03(wttest.WiredTigerTestCase, suite_subprocess):
# The API uses only the major and minor numbers but accepts with
# and without the patch number. Test one on release and the
# required minimum just for testing of parsing.
- #
compat_release = [
('def_rel', dict(rel='none', log_rel=3)),
('future_rel', dict(rel=future_rel, log_rel=future_logv)),
('32_rel', dict(rel="3.2", log_rel=3)),
+ ('31_rel', dict(rel="3.1", log_rel=3)),
('30_rel', dict(rel="3.0", log_rel=2)),
('26_rel', dict(rel="2.6", log_rel=1)),
('26_patch_rel', dict(rel="2.6.1", log_rel=1)),
]
+
+ # Only the maximum version should exist below for each log version
+ # i.e. even though 3.1 is also log_max=3 3.2 is above it and also
+ # log_max=3 as such we don't need 3.1 in this list.
+ # However the exemption to this rule is versions which include a patch
+ # number as the patch number will get removed in the conn_reconfig.c
+ # This rule exemption applies to the minimum verison check as well.
compat_max = [
('def_max', dict(max_req='none', log_max=3)),
('future_max', dict(max_req=future_rel, log_max=future_logv)),
@@ -73,19 +80,18 @@ class test_compat03(wttest.WiredTigerTestCase, suite_subprocess):
('26_max', dict(max_req="2.6", log_max=1)),
('26_patch_max', dict(max_req="2.6.1", log_max=1)),
]
+
+ # Only the minimum version should exist below for each log version.
compat_min = [
('def_min', dict(min_req='none', log_min=3)),
('future_min', dict(min_req=future_rel, log_min=future_logv)),
- ('32_min', dict(min_req="3.2", log_min=3)),
+ ('31_min', dict(min_req="3.1", log_min=3)),
('30_min', dict(min_req="3.0", log_min=2)),
('26_min', dict(min_req="2.6", log_min=1)),
('26_patch_min', dict(min_req="2.6.1", log_min=1)),
]
- base_config = [
- ('basecfg_true', dict(basecfg='true')),
- ('basecfg_false', dict(basecfg='false')),
- ]
- scenarios = make_scenarios(compat_release, compat_max, compat_min, base_config)
+
+ scenarios = make_scenarios(compat_release, compat_max, compat_min)
# This test creates scenarios that lead to errors. This is different
# than compat02 because it is testing errors (or success) using the
@@ -93,9 +99,10 @@ class test_compat03(wttest.WiredTigerTestCase, suite_subprocess):
def test_compat03(self):
testdir = 'TEST'
os.mkdir(testdir)
- config_str = 'create,config_base=%s,' % self.basecfg
+ config_str = 'create,'
log_str = 'log=(archive=false,enabled,file_max=%s),' % self.logmax
compat_str = ''
+
if (self.rel != 'none'):
compat_str += 'compatibility=(release="%s"),' % self.rel
if (self.max_req != 'none'):
@@ -105,12 +112,11 @@ class test_compat03(wttest.WiredTigerTestCase, suite_subprocess):
config_str += log_str + compat_str
self.pr("Conn config:" + config_str)
- #
# We have a lot of error cases. There are too many and they are
# dependent on the order of the library code so don't check specific
# error messages. So just determine if an error should occur and
# make sure it does.
- #
+
if ((self.log_min >= self.future_logv) or
(self.log_max >= self.future_logv) or
(self.log_rel >= self.future_logv) or