summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/test/suite
diff options
context:
space:
mode:
authorAlex Gorrod <alexander.gorrod@mongodb.com>2017-06-07 07:20:49 +1000
committerAlex Gorrod <alexander.gorrod@mongodb.com>2017-06-07 07:20:49 +1000
commit60341ff5b540ed35c8378910d92fe6c128f398e6 (patch)
tree989cb325f5ea6e335fda4852ae6cfca6a13d3b11 /src/third_party/wiredtiger/test/suite
parenta85685ce5ed0e07107476e1f4098034452cf7d6a (diff)
downloadmongo-60341ff5b540ed35c8378910d92fe6c128f398e6.tar.gz
Import wiredtiger: 7aaeaaa054d1ac27a95c79984f7ca69ba739caae from branch mongodb-3.6
ref: 78109ca3fe..7aaeaaa054 for: 3.5.9 SERVER-28820 Recovery failed: WT_NOTFOUND: item not found SERVER-28835 Fix a memory leak in WiredTiger on error when creating thread group WT-2972 Add interface allowing partial updates to existing values WT-3041 Failure of test_perf01 on PPC WT-3063 Reserve records for read-modify-write WT-3076 Add a general-purpose epoch manager WT-3123 Thread group holding lock across thread join WT-3142 Add a workload generator application WT-3158 Fix structure layout on Windows. WT-3160 Improve eviction of internal pages from idle trees WT-3197 aarch64 CRC32C support fails to compile on non-linux ARM platforms WT-3219 Make the clang-analyzer job fail when lint is introduced WT-3222 Review and enhance log statistics WT-3245 Avoid hangs on shutdown when a utility thread encounters an error WT-3247 Test should exit instead of abort to avoid a core dump WT-3248 Performance degradation in workload with large overflow items WT-3253 txn07 test problem WT-3258 Improve visibility into thread wait time due to pages exceeding memory_page_max WT-3261 add a checkpoint epoch to avoid draining the eviction queue WT-3262 Schema operations shouldn't wait for cache WT-3263 Allow archive on restart/recovery if clean shutdown WT-3264 Permanent change to disable logging should eventually remove all logs WT-3265 Verify hits assertion in eviction when transiting handle to exclusive mode WT-3266 Thread group deadlock WT-3267 Upgrade copyright notices from 2016 to 2017. WT-3268 Failure to close cursor can get wiredtiger stuck in a cursor-close loop WT-3269 Miscellaneous cleanup changes WT-3271 Eviction tuning stuck in a loop WT-3275 stress test sanitizer failure WT-3278 log the row-store cursor key instead of page key WT-3281 stress test sanitizer failure WT-3282 Stuck in conn cache pool destroy join WT-3284 tree-walk restart bug WT-3287 review WiredTiger internal panic checks WT-3288 fix error codes for event_handler to be consistent in file operations WT-3292 review/cleanup full-barrier calls in WiredTiger WT-3293 Make internal symbols externally visible WT-3296 LAS table fixes/improvements WT-3297 support the gcc/clang -fvisibility=hidden flag WT-3300 Coverity 1374542: Dereference after null check WT-3302 Failure to create cache pool manager thread results in crash when destroying cache pool WT-3303 Deadlock during first access to lookaside table WT-3307 FI testing: segfault in python test test_bug013 when fault introduced reading turtle file WT-3312 encryption btree configuration test WT-3313 Replace calls to the deprecated LZ4_compress function WT-3314 clarify error handling WT-3327 Checkpoints can hang if time runs backward WT-3331 Test format aborted due to time rollback WT-3333 Make it possible to store 0 bytes into a 'u' format via Python WT-3334 static test suite's BaseDataSet class has 'u' value format bugs WT-3339 The CURSOR_UPDATE_API_CALL macro will dump core on a NULL btree handle WT-3342 Create a new WiredTiger 2.9.2 release WT-3343 WiredTiger database close can attempt unlock of a lock that's not held. WT-3345 Improve rwlock scaling WT-3348 Lint, Windows warnings. WT-3351 Recovery assertion failure: old_lognum < lognum WT-3354 Coverity issues 1375904-1375907 WT-3356 rwlock assertion failure on PPC
Diffstat (limited to 'src/third_party/wiredtiger/test/suite')
-rw-r--r--src/third_party/wiredtiger/test/suite/helper.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/run.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/suite_random.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/suite_subprocess.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_alter01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_async01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_async02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_async03.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_autoclose.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_backup01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_backup02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_backup03.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_backup04.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_backup05.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_backup06.py4
-rw-r--r--src/third_party/wiredtiger/test/suite/test_base01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_base02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_base03.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_base04.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_base05.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_baseconfig.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug001.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug003.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug004.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug005.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug006.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug007.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug008.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug009.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug010.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug011.py4
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug012.py4
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug013.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug014.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug015.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug016.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bug017.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bulk01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_bulk02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_checkpoint01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_checkpoint02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_colgap.py4
-rw-r--r--src/third_party/wiredtiger/test/suite/test_collator.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_compact01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_compact02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_compress01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_config01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_config02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_config03.py4
-rw-r--r--src/third_party/wiredtiger/test/suite/test_config04.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_config05.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_config06.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor03.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor04.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor05.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor06.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor07.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor08.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor09.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor10.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor11.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor12.py165
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor_compare.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor_pin.py4
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor_random.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor_random02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_cursor_tracker.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_drop.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_drop02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_drop_create.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_dump.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_dupc.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_durability01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_empty.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_encrypt01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_encrypt02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_encrypt03.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_encrypt04.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_encrypt05.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_encrypt06.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_encrypt07.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_env01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_excl.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_hazard.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_home.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_huffman01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_huffman02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_index01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_index02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_inmem01.py5
-rw-r--r--src/third_party/wiredtiger/test/suite/test_inmem02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_intpack.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_join01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_join02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_join03.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_join04.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_join05.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_join06.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_join07.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_join08.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_join09.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_jsondump01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_jsondump02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_las.py60
-rw-r--r--src/third_party/wiredtiger/test/suite/test_lsm01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_lsm02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_lsm03.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_metadata_cursor01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_nsnap01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_nsnap02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_nsnap03.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_nsnap04.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_overwrite.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_pack.py7
-rw-r--r--src/third_party/wiredtiger/test/suite/test_perf001.py70
-rw-r--r--src/third_party/wiredtiger/test/suite/test_readonly01.py4
-rw-r--r--src/third_party/wiredtiger/test/suite/test_readonly02.py4
-rw-r--r--src/third_party/wiredtiger/test/suite/test_readonly03.py4
-rw-r--r--src/third_party/wiredtiger/test/suite/test_rebalance.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_reconfig01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_reconfig02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_reconfig03.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_reconfig04.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_rename.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_reserve.py211
-rw-r--r--src/third_party/wiredtiger/test/suite/test_salvage.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_schema01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_schema02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_schema03.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_schema04.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_schema05.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_schema06.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_schema07.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_shared_cache01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_shared_cache02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_split.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_stat01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_stat02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_stat03.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_stat04.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_stat05.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_stat_log01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_sweep01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_sweep02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_sweep03.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_truncate01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_truncate02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_truncate03.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn02.py8
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn03.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn04.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn05.py18
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn06.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn07.py7
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn08.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn09.py6
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn10.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn11.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn12.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn13.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn14.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn15.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_txn16.py140
-rw-r--r--src/third_party/wiredtiger/test/suite/test_unicode01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_upgrade.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_util01.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_util02.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_util03.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_util04.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_util07.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_util08.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_util09.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_util11.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_util12.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_util13.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_verify.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/test_version.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/wtdataset.py23
-rw-r--r--src/third_party/wiredtiger/test/suite/wtscenario.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/wttest.py2
-rw-r--r--src/third_party/wiredtiger/test/suite/wtthread.py2
184 files changed, 806 insertions, 276 deletions
diff --git a/src/third_party/wiredtiger/test/suite/helper.py b/src/third_party/wiredtiger/test/suite/helper.py
index d1f41f05e8b..2f9bbf8aa68 100644
--- a/src/third_party/wiredtiger/test/suite/helper.py
+++ b/src/third_party/wiredtiger/test/suite/helper.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/run.py b/src/third_party/wiredtiger/test/suite/run.py
index 97c58bfdccf..8a936de584b 100644
--- a/src/third_party/wiredtiger/test/suite/run.py
+++ b/src/third_party/wiredtiger/test/suite/run.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/suite_random.py b/src/third_party/wiredtiger/test/suite/suite_random.py
index fd580cec43b..16a8b89113c 100644
--- a/src/third_party/wiredtiger/test/suite/suite_random.py
+++ b/src/third_party/wiredtiger/test/suite/suite_random.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/suite_subprocess.py b/src/third_party/wiredtiger/test/suite/suite_subprocess.py
index c56c8d8e933..86134db5f88 100644
--- a/src/third_party/wiredtiger/test/suite/suite_subprocess.py
+++ b/src/third_party/wiredtiger/test/suite/suite_subprocess.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_alter01.py b/src/third_party/wiredtiger/test/suite/test_alter01.py
index dfdf6b7a17e..7a143afb32c 100644
--- a/src/third_party/wiredtiger/test/suite/test_alter01.py
+++ b/src/third_party/wiredtiger/test/suite/test_alter01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_async01.py b/src/third_party/wiredtiger/test/suite/test_async01.py
index 158c16a9381..4faaad6b8f4 100644
--- a/src/third_party/wiredtiger/test/suite/test_async01.py
+++ b/src/third_party/wiredtiger/test/suite/test_async01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_async02.py b/src/third_party/wiredtiger/test/suite/test_async02.py
index 28435fe85b2..fbd743fec29 100644
--- a/src/third_party/wiredtiger/test/suite/test_async02.py
+++ b/src/third_party/wiredtiger/test/suite/test_async02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_async03.py b/src/third_party/wiredtiger/test/suite/test_async03.py
index 4859360924a..cf993071d73 100644
--- a/src/third_party/wiredtiger/test/suite/test_async03.py
+++ b/src/third_party/wiredtiger/test/suite/test_async03.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_autoclose.py b/src/third_party/wiredtiger/test/suite/test_autoclose.py
index c5633d5a21e..ce152b24fe3 100644
--- a/src/third_party/wiredtiger/test/suite/test_autoclose.py
+++ b/src/third_party/wiredtiger/test/suite/test_autoclose.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_backup01.py b/src/third_party/wiredtiger/test/suite/test_backup01.py
index 4e98b6d8e77..52d71ab53bb 100644
--- a/src/third_party/wiredtiger/test/suite/test_backup01.py
+++ b/src/third_party/wiredtiger/test/suite/test_backup01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_backup02.py b/src/third_party/wiredtiger/test/suite/test_backup02.py
index d4089273be0..7d8f653feae 100644
--- a/src/third_party/wiredtiger/test/suite/test_backup02.py
+++ b/src/third_party/wiredtiger/test/suite/test_backup02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_backup03.py b/src/third_party/wiredtiger/test/suite/test_backup03.py
index c1ed3cc9e1a..7d0bfd5eaaf 100644
--- a/src/third_party/wiredtiger/test/suite/test_backup03.py
+++ b/src/third_party/wiredtiger/test/suite/test_backup03.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_backup04.py b/src/third_party/wiredtiger/test/suite/test_backup04.py
index be52a5e1e97..9f40ae2427b 100644
--- a/src/third_party/wiredtiger/test/suite/test_backup04.py
+++ b/src/third_party/wiredtiger/test/suite/test_backup04.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_backup05.py b/src/third_party/wiredtiger/test/suite/test_backup05.py
index 4ecb782a0d5..fb44de04694 100644
--- a/src/third_party/wiredtiger/test/suite/test_backup05.py
+++ b/src/third_party/wiredtiger/test/suite/test_backup05.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_backup06.py b/src/third_party/wiredtiger/test/suite/test_backup06.py
index 9f7a247f2b9..d416ba035b5 100644
--- a/src/third_party/wiredtiger/test/suite/test_backup06.py
+++ b/src/third_party/wiredtiger/test/suite/test_backup06.py
@@ -1,8 +1,8 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
-
+#
# This is free and unencumbered software released into the public domain.
#
# Anyone is free to copy, modify, publish, use, compile, sell, or
diff --git a/src/third_party/wiredtiger/test/suite/test_base01.py b/src/third_party/wiredtiger/test/suite/test_base01.py
index 2a5f96cbae2..f39ec3eb739 100644
--- a/src/third_party/wiredtiger/test/suite/test_base01.py
+++ b/src/third_party/wiredtiger/test/suite/test_base01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_base02.py b/src/third_party/wiredtiger/test/suite/test_base02.py
index 2b51fe1b530..5e1140a5700 100644
--- a/src/third_party/wiredtiger/test/suite/test_base02.py
+++ b/src/third_party/wiredtiger/test/suite/test_base02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_base03.py b/src/third_party/wiredtiger/test/suite/test_base03.py
index fe6fa53c288..ad1629db77e 100644
--- a/src/third_party/wiredtiger/test/suite/test_base03.py
+++ b/src/third_party/wiredtiger/test/suite/test_base03.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_base04.py b/src/third_party/wiredtiger/test/suite/test_base04.py
index 973ee1327a5..f9fdddce157 100644
--- a/src/third_party/wiredtiger/test/suite/test_base04.py
+++ b/src/third_party/wiredtiger/test/suite/test_base04.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_base05.py b/src/third_party/wiredtiger/test/suite/test_base05.py
index 4bee0efcfe2..5ba6d5eda4b 100644
--- a/src/third_party/wiredtiger/test/suite/test_base05.py
+++ b/src/third_party/wiredtiger/test/suite/test_base05.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_baseconfig.py b/src/third_party/wiredtiger/test/suite/test_baseconfig.py
index 89b3b29544e..3a5778b3bb5 100644
--- a/src/third_party/wiredtiger/test/suite/test_baseconfig.py
+++ b/src/third_party/wiredtiger/test/suite/test_baseconfig.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug001.py b/src/third_party/wiredtiger/test/suite/test_bug001.py
index 4c4a722285c..4353dad5e68 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug001.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug001.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug003.py b/src/third_party/wiredtiger/test/suite/test_bug003.py
index 73d9cd13ab9..799c004e17d 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug003.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug003.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug004.py b/src/third_party/wiredtiger/test/suite/test_bug004.py
index 464cc57e272..a47bdc6dd1e 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug004.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug004.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug005.py b/src/third_party/wiredtiger/test/suite/test_bug005.py
index 69df175ae67..6d099bf2708 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug005.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug005.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug006.py b/src/third_party/wiredtiger/test/suite/test_bug006.py
index c0f6055f720..505325de200 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug006.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug006.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug007.py b/src/third_party/wiredtiger/test/suite/test_bug007.py
index 16cb5da903c..806d75d8394 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug007.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug007.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug008.py b/src/third_party/wiredtiger/test/suite/test_bug008.py
index c54c92fc864..cb0bb390ad4 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug008.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug008.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug009.py b/src/third_party/wiredtiger/test/suite/test_bug009.py
index 2bdfb7dec52..7f2af55f2d0 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug009.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug009.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug010.py b/src/third_party/wiredtiger/test/suite/test_bug010.py
index 89f21e1da04..dfe317bf94e 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug010.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug010.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug011.py b/src/third_party/wiredtiger/test/suite/test_bug011.py
index 5e0721b93f1..2c3fd831f93 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug011.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug011.py
@@ -1,6 +1,6 @@
-#!usr/bin/env python
+#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug012.py b/src/third_party/wiredtiger/test/suite/test_bug012.py
index 91f49d14b3f..ae80a9c7179 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug012.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug012.py
@@ -1,6 +1,6 @@
-#!usr/bin/env python
+#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug013.py b/src/third_party/wiredtiger/test/suite/test_bug013.py
index a42809aea5f..a15bd42c9da 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug013.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug013.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug014.py b/src/third_party/wiredtiger/test/suite/test_bug014.py
index 1dee933e839..81e47bc331b 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug014.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug014.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug015.py b/src/third_party/wiredtiger/test/suite/test_bug015.py
index 68cca49688f..5b2a64dc76e 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug015.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug015.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug016.py b/src/third_party/wiredtiger/test/suite/test_bug016.py
index 4b8867e1e93..a2a40118008 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug016.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug016.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bug017.py b/src/third_party/wiredtiger/test/suite/test_bug017.py
index 03e7b2ba714..43aeee07bb6 100644
--- a/src/third_party/wiredtiger/test/suite/test_bug017.py
+++ b/src/third_party/wiredtiger/test/suite/test_bug017.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bulk01.py b/src/third_party/wiredtiger/test/suite/test_bulk01.py
index 8d5b6a04385..da399faba2d 100644
--- a/src/third_party/wiredtiger/test/suite/test_bulk01.py
+++ b/src/third_party/wiredtiger/test/suite/test_bulk01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_bulk02.py b/src/third_party/wiredtiger/test/suite/test_bulk02.py
index fb9240e91e7..de9ebec5204 100644
--- a/src/third_party/wiredtiger/test/suite/test_bulk02.py
+++ b/src/third_party/wiredtiger/test/suite/test_bulk02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_checkpoint01.py b/src/third_party/wiredtiger/test/suite/test_checkpoint01.py
index c0d004db78d..1964a94b31c 100644
--- a/src/third_party/wiredtiger/test/suite/test_checkpoint01.py
+++ b/src/third_party/wiredtiger/test/suite/test_checkpoint01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_checkpoint02.py b/src/third_party/wiredtiger/test/suite/test_checkpoint02.py
index b5d20fb73b1..3a0a47d8163 100644
--- a/src/third_party/wiredtiger/test/suite/test_checkpoint02.py
+++ b/src/third_party/wiredtiger/test/suite/test_checkpoint02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_colgap.py b/src/third_party/wiredtiger/test/suite/test_colgap.py
index 91df0fd6c1c..01e52ea1da5 100644
--- a/src/third_party/wiredtiger/test/suite/test_colgap.py
+++ b/src/third_party/wiredtiger/test/suite/test_colgap.py
@@ -1,6 +1,6 @@
-#!usr/bin/env python
+#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_collator.py b/src/third_party/wiredtiger/test/suite/test_collator.py
index 7ce135c8976..320c4e7d7b4 100644
--- a/src/third_party/wiredtiger/test/suite/test_collator.py
+++ b/src/third_party/wiredtiger/test/suite/test_collator.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_compact01.py b/src/third_party/wiredtiger/test/suite/test_compact01.py
index 56ab6d39076..cfe5c909b1f 100644
--- a/src/third_party/wiredtiger/test/suite/test_compact01.py
+++ b/src/third_party/wiredtiger/test/suite/test_compact01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_compact02.py b/src/third_party/wiredtiger/test/suite/test_compact02.py
index 803600eea14..eb1eb641191 100644
--- a/src/third_party/wiredtiger/test/suite/test_compact02.py
+++ b/src/third_party/wiredtiger/test/suite/test_compact02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_compress01.py b/src/third_party/wiredtiger/test/suite/test_compress01.py
index ef1064d294e..1190a9dbe00 100644
--- a/src/third_party/wiredtiger/test/suite/test_compress01.py
+++ b/src/third_party/wiredtiger/test/suite/test_compress01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_config01.py b/src/third_party/wiredtiger/test/suite/test_config01.py
index cbcb6835525..5252d805e07 100644
--- a/src/third_party/wiredtiger/test/suite/test_config01.py
+++ b/src/third_party/wiredtiger/test/suite/test_config01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_config02.py b/src/third_party/wiredtiger/test/suite/test_config02.py
index 112a93ef2e0..441aa41d218 100644
--- a/src/third_party/wiredtiger/test/suite/test_config02.py
+++ b/src/third_party/wiredtiger/test/suite/test_config02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_config03.py b/src/third_party/wiredtiger/test/suite/test_config03.py
index 89038d71319..810d399613a 100644
--- a/src/third_party/wiredtiger/test/suite/test_config03.py
+++ b/src/third_party/wiredtiger/test/suite/test_config03.py
@@ -1,6 +1,6 @@
-#!usr/bin/env python
+#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_config04.py b/src/third_party/wiredtiger/test/suite/test_config04.py
index db8a5f4a16a..b09189be8ea 100644
--- a/src/third_party/wiredtiger/test/suite/test_config04.py
+++ b/src/third_party/wiredtiger/test/suite/test_config04.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_config05.py b/src/third_party/wiredtiger/test/suite/test_config05.py
index bee63d48da6..5960f01dc8e 100644
--- a/src/third_party/wiredtiger/test/suite/test_config05.py
+++ b/src/third_party/wiredtiger/test/suite/test_config05.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_config06.py b/src/third_party/wiredtiger/test/suite/test_config06.py
index 55619e8774c..f39fe2d3a4f 100644
--- a/src/third_party/wiredtiger/test/suite/test_config06.py
+++ b/src/third_party/wiredtiger/test/suite/test_config06.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor01.py b/src/third_party/wiredtiger/test/suite/test_cursor01.py
index 8c66042eec0..41b017aa882 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor01.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor02.py b/src/third_party/wiredtiger/test/suite/test_cursor02.py
index 0771a275cd2..35dc2587b1f 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor02.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor03.py b/src/third_party/wiredtiger/test/suite/test_cursor03.py
index b4598483c12..8910dc741a4 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor03.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor03.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor04.py b/src/third_party/wiredtiger/test/suite/test_cursor04.py
index 8cbf922b5eb..b7457ec623d 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor04.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor04.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor05.py b/src/third_party/wiredtiger/test/suite/test_cursor05.py
index 4c276f06ff4..e0cce3dcb5e 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor05.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor05.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor06.py b/src/third_party/wiredtiger/test/suite/test_cursor06.py
index 117e29b0605..280d6f09171 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor06.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor06.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor07.py b/src/third_party/wiredtiger/test/suite/test_cursor07.py
index 19db718fd11..a31d0d401e0 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor07.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor07.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor08.py b/src/third_party/wiredtiger/test/suite/test_cursor08.py
index cc76f528aa9..82b4a3b7c7c 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor08.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor08.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor09.py b/src/third_party/wiredtiger/test/suite/test_cursor09.py
index 9a1fc06b617..de9ae5163b6 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor09.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor09.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor10.py b/src/third_party/wiredtiger/test/suite/test_cursor10.py
index 6cabfde9f1f..11fb43825ad 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor10.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor10.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor11.py b/src/third_party/wiredtiger/test/suite/test_cursor11.py
index e159ec499e6..1f3ea1555f2 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor11.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor11.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor12.py b/src/third_party/wiredtiger/test/suite/test_cursor12.py
new file mode 100644
index 00000000000..827f37cfcef
--- /dev/null
+++ b/src/third_party/wiredtiger/test/suite/test_cursor12.py
@@ -0,0 +1,165 @@
+#!/usr/bin/env python
+#
+# Public Domain 2014-2017 MongoDB, Inc.
+# Public Domain 2008-2014 WiredTiger, Inc.
+#
+# This is free and unencumbered software released into the public domain.
+#
+# Anyone is free to copy, modify, publish, use, compile, sell, or
+# distribute this software, either in source code form or as a compiled
+# binary, for any purpose, commercial or non-commercial, and by any
+# means.
+#
+# In jurisdictions that recognize copyright laws, the author or authors
+# of this software dedicate any and all copyright interest in the
+# software to the public domain. We make this dedication for the benefit
+# of the public at large and to the detriment of our heirs and
+# successors. We intend this dedication to be an overt act of
+# relinquishment in perpetuity of all present and future rights to this
+# software under copyright law.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+
+import wiredtiger, wttest
+from wtscenario import make_scenarios
+
+# test_cursor12.py
+# Test cursor modify call
+class test_cursor12(wttest.WiredTigerTestCase):
+ types = [
+ ('file', dict(uri='file:modify')),
+ ('lsm', dict(uri='lsm:modify')),
+ ('table', dict(uri='table:modify')),
+ ]
+ scenarios = make_scenarios(types)
+
+ # Smoke-test the modify API.
+ def test_modify_smoke(self):
+ # List with original value, final value, and modifications to get
+ # there.
+ list = [
+ {
+ 'o' : 'ABCDEFGH', # no operation
+ 'f' : 'ABCDEFGH',
+ 'mods' : [['', 0, 0]]
+ },{
+ 'o' : 'ABCDEFGH', # no operation with offset
+ 'f' : 'ABCDEFGH',
+ 'mods' : [['', 4, 0]]
+ },{
+ 'o' : 'ABCDEFGH', # rewrite beginning
+ 'f' : '--CDEFGH',
+ 'mods' : [['--', 0, 2]]
+ },{
+ 'o' : 'ABCDEFGH', # rewrite end
+ 'f' : 'ABCDEF--',
+ 'mods' : [['--', 6, 2]]
+ },{
+ 'o' : 'ABCDEFGH', # append
+ 'f' : 'ABCDEFGH--',
+ 'mods' : [['--', 8, 2]]
+ },{
+ 'o' : 'ABCDEFGH', # append with gap
+ 'f' : 'ABCDEFGH\00\00--',
+ 'mods' : [['--', 10, 2]]
+ },{
+ 'o' : 'ABCDEFGH', # multiple replacements
+ 'f' : 'A-C-E-G-',
+ 'mods' : [['-', 1, 1], ['-', 3, 1], ['-', 5, 1], ['-', 7, 1]]
+ },{
+ 'o' : 'ABCDEFGH', # multiple overlapping replacements
+ 'f' : 'A-CDEFGH',
+ 'mods' : [['+', 1, 1], ['+', 1, 1], ['+', 1, 1], ['-', 1, 1]]
+ },{
+ 'o' : 'ABCDEFGH', # multiple overlapping gap replacements
+ 'f' : 'ABCDEFGH\00\00--',
+ 'mods' : [['+', 10, 1], ['+', 10, 1], ['+', 10, 1], ['--', 10, 2]]
+ },{
+ 'o' : 'ABCDEFGH', # shrink beginning
+ 'f' : '--EFGH',
+ 'mods' : [['--', 0, 4]]
+ },{
+ 'o' : 'ABCDEFGH', # shrink middle
+ 'f' : 'AB--GH',
+ 'mods' : [['--', 2, 4]]
+ },{
+ 'o' : 'ABCDEFGH', # shrink end
+ 'f' : 'ABCD--',
+ 'mods' : [['--', 4, 4]]
+ },{
+ 'o' : 'ABCDEFGH', # grow beginning
+ 'f' : '--ABCDEFGH',
+ 'mods' : [['--', 0, 0]]
+ },{
+ 'o' : 'ABCDEFGH', # grow middle
+ 'f' : 'ABCD--EFGH',
+ 'mods' : [['--', 4, 0]]
+ },{
+ 'o' : 'ABCDEFGH', # grow end
+ 'f' : 'ABCDEFGH--',
+ 'mods' : [['--', 8, 0]]
+ },{
+ 'o' : 'ABCDEFGH', # discard beginning
+ 'f' : 'EFGH',
+ 'mods' : [['', 0, 4]]
+ },{
+ 'o' : 'ABCDEFGH', # discard middle
+ 'f' : 'ABGH',
+ 'mods' : [['', 2, 4]]
+ },{
+ 'o' : 'ABCDEFGH', # discard end
+ 'f' : 'ABCD',
+ 'mods' : [['', 4, 4]]
+ },{
+ 'o' : 'ABCDEFGH', # overlap the end and append
+ 'f' : 'ABCDEF--XX',
+ 'mods' : [['--XX', 6, 2]]
+ },{
+ 'o' : 'ABCDEFGH', # overlap the end with incorrect size
+ 'f' : 'ABCDEFG01234567',
+ 'mods' : [['01234567', 7, 2000]]
+ }
+ ]
+
+ self.session.create(self.uri, 'key_format=S,value_format=u')
+ cursor = self.session.open_cursor(self.uri, None, None)
+
+ # For each test in the list, set the original value, apply modifications
+ # in order, then confirm the final state.
+ for i in list:
+ cursor['ABC'] = i['o']
+
+ mods = []
+ for j in i['mods']:
+ mod = wiredtiger.Modify(j[0], j[1], j[2])
+ mods.append(mod)
+
+ cursor.set_key('ABC')
+ cursor.modify(mods)
+ self.assertEquals(str(cursor['ABC']), i['f'])
+
+ # Check that modify returns not-found after a delete.
+ def test_modify_delete(self):
+ self.session.create(self.uri, 'key_format=S,value_format=u')
+ cursor = self.session.open_cursor(self.uri, None, None)
+ cursor['ABC'] = 'ABCDEFGH'
+ cursor.set_key('ABC')
+ cursor.remove()
+
+ mods = []
+ mod = wiredtiger.Modify('ABCD', 3, 3)
+ mods.append(mod)
+
+ cursor.set_key('ABC')
+ #self.assertEqual(cursor.modify(mods), wiredtiger.WT_NOTFOUND)
+ self.assertRaises(
+ wiredtiger.WiredTigerError, lambda:cursor.modify(mods))
+
+if __name__ == '__main__':
+ wttest.run()
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor_compare.py b/src/third_party/wiredtiger/test/suite/test_cursor_compare.py
index c0feb1d4867..7cf9ebfb0ca 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor_compare.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor_compare.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor_pin.py b/src/third_party/wiredtiger/test/suite/test_cursor_pin.py
index cb7045c7e41..91690ef6ed2 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor_pin.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor_pin.py
@@ -1,6 +1,6 @@
-#!usr/bin/env python
+#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor_random.py b/src/third_party/wiredtiger/test/suite/test_cursor_random.py
index ee0f85a29ee..c7736e322e1 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor_random.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor_random.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor_random02.py b/src/third_party/wiredtiger/test/suite/test_cursor_random02.py
index d18d8efd94d..11ea8e1f489 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor_random02.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor_random02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_cursor_tracker.py b/src/third_party/wiredtiger/test/suite/test_cursor_tracker.py
index a703e6cea70..dee3c6d1b45 100644
--- a/src/third_party/wiredtiger/test/suite/test_cursor_tracker.py
+++ b/src/third_party/wiredtiger/test/suite/test_cursor_tracker.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_drop.py b/src/third_party/wiredtiger/test/suite/test_drop.py
index e241c05aa68..4be311b8bb2 100644
--- a/src/third_party/wiredtiger/test/suite/test_drop.py
+++ b/src/third_party/wiredtiger/test/suite/test_drop.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_drop02.py b/src/third_party/wiredtiger/test/suite/test_drop02.py
index 017aa64e312..7ab891daf15 100644
--- a/src/third_party/wiredtiger/test/suite/test_drop02.py
+++ b/src/third_party/wiredtiger/test/suite/test_drop02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_drop_create.py b/src/third_party/wiredtiger/test/suite/test_drop_create.py
index 654f054a583..eb851c3212f 100644
--- a/src/third_party/wiredtiger/test/suite/test_drop_create.py
+++ b/src/third_party/wiredtiger/test/suite/test_drop_create.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_dump.py b/src/third_party/wiredtiger/test/suite/test_dump.py
index 3127c7aef00..37f4572b5c9 100644
--- a/src/third_party/wiredtiger/test/suite/test_dump.py
+++ b/src/third_party/wiredtiger/test/suite/test_dump.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_dupc.py b/src/third_party/wiredtiger/test/suite/test_dupc.py
index c0cf6acc75e..6e35eb361a0 100644
--- a/src/third_party/wiredtiger/test/suite/test_dupc.py
+++ b/src/third_party/wiredtiger/test/suite/test_dupc.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_durability01.py b/src/third_party/wiredtiger/test/suite/test_durability01.py
index 32cdd795914..97c89aabc4c 100644
--- a/src/third_party/wiredtiger/test/suite/test_durability01.py
+++ b/src/third_party/wiredtiger/test/suite/test_durability01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_empty.py b/src/third_party/wiredtiger/test/suite/test_empty.py
index 578bec618c9..82a3bb406ee 100644
--- a/src/third_party/wiredtiger/test/suite/test_empty.py
+++ b/src/third_party/wiredtiger/test/suite/test_empty.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_encrypt01.py b/src/third_party/wiredtiger/test/suite/test_encrypt01.py
index 317bed93246..5b4be01c861 100644
--- a/src/third_party/wiredtiger/test/suite/test_encrypt01.py
+++ b/src/third_party/wiredtiger/test/suite/test_encrypt01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_encrypt02.py b/src/third_party/wiredtiger/test/suite/test_encrypt02.py
index d950be067e2..c62828cf607 100644
--- a/src/third_party/wiredtiger/test/suite/test_encrypt02.py
+++ b/src/third_party/wiredtiger/test/suite/test_encrypt02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_encrypt03.py b/src/third_party/wiredtiger/test/suite/test_encrypt03.py
index 302572bd044..85be38a27ae 100644
--- a/src/third_party/wiredtiger/test/suite/test_encrypt03.py
+++ b/src/third_party/wiredtiger/test/suite/test_encrypt03.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_encrypt04.py b/src/third_party/wiredtiger/test/suite/test_encrypt04.py
index 19c0b85d427..7bbc4c617f1 100644
--- a/src/third_party/wiredtiger/test/suite/test_encrypt04.py
+++ b/src/third_party/wiredtiger/test/suite/test_encrypt04.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_encrypt05.py b/src/third_party/wiredtiger/test/suite/test_encrypt05.py
index d8862321821..d4653b2e9b6 100644
--- a/src/third_party/wiredtiger/test/suite/test_encrypt05.py
+++ b/src/third_party/wiredtiger/test/suite/test_encrypt05.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_encrypt06.py b/src/third_party/wiredtiger/test/suite/test_encrypt06.py
index 72718e53b2b..62e32597f3d 100644
--- a/src/third_party/wiredtiger/test/suite/test_encrypt06.py
+++ b/src/third_party/wiredtiger/test/suite/test_encrypt06.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_encrypt07.py b/src/third_party/wiredtiger/test/suite/test_encrypt07.py
index 81c9f1a49ea..4846a520b00 100644
--- a/src/third_party/wiredtiger/test/suite/test_encrypt07.py
+++ b/src/third_party/wiredtiger/test/suite/test_encrypt07.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_env01.py b/src/third_party/wiredtiger/test/suite/test_env01.py
index 491ef9e8eac..c4ce7f69dd2 100644
--- a/src/third_party/wiredtiger/test/suite/test_env01.py
+++ b/src/third_party/wiredtiger/test/suite/test_env01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_excl.py b/src/third_party/wiredtiger/test/suite/test_excl.py
index f8628d96ff7..539d599fe32 100644
--- a/src/third_party/wiredtiger/test/suite/test_excl.py
+++ b/src/third_party/wiredtiger/test/suite/test_excl.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_hazard.py b/src/third_party/wiredtiger/test/suite/test_hazard.py
index f2891fce526..73c63099c85 100644
--- a/src/third_party/wiredtiger/test/suite/test_hazard.py
+++ b/src/third_party/wiredtiger/test/suite/test_hazard.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_home.py b/src/third_party/wiredtiger/test/suite/test_home.py
index 48bf10d7618..667d466266b 100644
--- a/src/third_party/wiredtiger/test/suite/test_home.py
+++ b/src/third_party/wiredtiger/test/suite/test_home.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_huffman01.py b/src/third_party/wiredtiger/test/suite/test_huffman01.py
index 8a880f7bae7..04a13210e40 100644
--- a/src/third_party/wiredtiger/test/suite/test_huffman01.py
+++ b/src/third_party/wiredtiger/test/suite/test_huffman01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_huffman02.py b/src/third_party/wiredtiger/test/suite/test_huffman02.py
index d74704daf58..e009734ffb6 100644
--- a/src/third_party/wiredtiger/test/suite/test_huffman02.py
+++ b/src/third_party/wiredtiger/test/suite/test_huffman02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_index01.py b/src/third_party/wiredtiger/test/suite/test_index01.py
index 5dfa5506277..bd3794bf730 100644
--- a/src/third_party/wiredtiger/test/suite/test_index01.py
+++ b/src/third_party/wiredtiger/test/suite/test_index01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_index02.py b/src/third_party/wiredtiger/test/suite/test_index02.py
index 4f424e5d3d2..d2b7b66dfe3 100644
--- a/src/third_party/wiredtiger/test/suite/test_index02.py
+++ b/src/third_party/wiredtiger/test/suite/test_index02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_inmem01.py b/src/third_party/wiredtiger/test/suite/test_inmem01.py
index 388485db29b..694bcabbe77 100644
--- a/src/third_party/wiredtiger/test/suite/test_inmem01.py
+++ b/src/third_party/wiredtiger/test/suite/test_inmem01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
@@ -108,12 +108,15 @@ class test_inmem01(wttest.WiredTigerTestCase):
cursor.reset()
# Spin inserting to give eviction a chance to reclaim space
+ sleeps = 0
inserted = False
for i in range(1, 1000):
try:
cursor[ds.key(1)] = ds.value(1)
except wiredtiger.WiredTigerError:
cursor.reset()
+ sleeps = sleeps + 1
+ self.assertLess(sleeps, 60 * 5)
sleep(1)
continue
inserted = True
diff --git a/src/third_party/wiredtiger/test/suite/test_inmem02.py b/src/third_party/wiredtiger/test/suite/test_inmem02.py
index b5e07fea967..f2340f6af69 100644
--- a/src/third_party/wiredtiger/test/suite/test_inmem02.py
+++ b/src/third_party/wiredtiger/test/suite/test_inmem02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_intpack.py b/src/third_party/wiredtiger/test/suite/test_intpack.py
index ae391e68fca..215ebc8856a 100644
--- a/src/third_party/wiredtiger/test/suite/test_intpack.py
+++ b/src/third_party/wiredtiger/test/suite/test_intpack.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_join01.py b/src/third_party/wiredtiger/test/suite/test_join01.py
index bdd86a06d4f..167f4793ce4 100644
--- a/src/third_party/wiredtiger/test/suite/test_join01.py
+++ b/src/third_party/wiredtiger/test/suite/test_join01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_join02.py b/src/third_party/wiredtiger/test/suite/test_join02.py
index db11ed01039..7b85791f17a 100644
--- a/src/third_party/wiredtiger/test/suite/test_join02.py
+++ b/src/third_party/wiredtiger/test/suite/test_join02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_join03.py b/src/third_party/wiredtiger/test/suite/test_join03.py
index dd8111f6ead..552e27632d2 100644
--- a/src/third_party/wiredtiger/test/suite/test_join03.py
+++ b/src/third_party/wiredtiger/test/suite/test_join03.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_join04.py b/src/third_party/wiredtiger/test/suite/test_join04.py
index e65b8b53333..c5ba1ad8c79 100644
--- a/src/third_party/wiredtiger/test/suite/test_join04.py
+++ b/src/third_party/wiredtiger/test/suite/test_join04.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_join05.py b/src/third_party/wiredtiger/test/suite/test_join05.py
index 7dcb3e08911..aedf7a04c24 100644
--- a/src/third_party/wiredtiger/test/suite/test_join05.py
+++ b/src/third_party/wiredtiger/test/suite/test_join05.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_join06.py b/src/third_party/wiredtiger/test/suite/test_join06.py
index a6681cdccd0..c3d2aa2b9ca 100644
--- a/src/third_party/wiredtiger/test/suite/test_join06.py
+++ b/src/third_party/wiredtiger/test/suite/test_join06.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_join07.py b/src/third_party/wiredtiger/test/suite/test_join07.py
index 8fae3539246..87bcc8040d3 100644
--- a/src/third_party/wiredtiger/test/suite/test_join07.py
+++ b/src/third_party/wiredtiger/test/suite/test_join07.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_join08.py b/src/third_party/wiredtiger/test/suite/test_join08.py
index d344653717b..cdcd89a207a 100644
--- a/src/third_party/wiredtiger/test/suite/test_join08.py
+++ b/src/third_party/wiredtiger/test/suite/test_join08.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_join09.py b/src/third_party/wiredtiger/test/suite/test_join09.py
index d48353b1580..0441349803e 100644
--- a/src/third_party/wiredtiger/test/suite/test_join09.py
+++ b/src/third_party/wiredtiger/test/suite/test_join09.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_jsondump01.py b/src/third_party/wiredtiger/test/suite/test_jsondump01.py
index c7fa9cdf397..13eb7e7be26 100644
--- a/src/third_party/wiredtiger/test/suite/test_jsondump01.py
+++ b/src/third_party/wiredtiger/test/suite/test_jsondump01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_jsondump02.py b/src/third_party/wiredtiger/test/suite/test_jsondump02.py
index 60863c4aa97..5c6bf810e08 100644
--- a/src/third_party/wiredtiger/test/suite/test_jsondump02.py
+++ b/src/third_party/wiredtiger/test/suite/test_jsondump02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_las.py b/src/third_party/wiredtiger/test/suite/test_las.py
new file mode 100644
index 00000000000..d0bd1d108fa
--- /dev/null
+++ b/src/third_party/wiredtiger/test/suite/test_las.py
@@ -0,0 +1,60 @@
+#!/usr/bin/env python
+#
+# Public Domain 2014-2017 MongoDB, Inc.
+# Public Domain 2008-2014 WiredTiger, Inc.
+#
+# This is free and unencumbered software released into the public domain.
+#
+# Anyone is free to copy, modify, publish, use, compile, sell, or
+# distribute this software, either in source code form or as a compiled
+# binary, for any purpose, commercial or non-commercial, and by any
+# means.
+#
+# In jurisdictions that recognize copyright laws, the author or authors
+# of this software dedicate any and all copyright interest in the
+# software to the public domain. We make this dedication for the benefit
+# of the public at large and to the detriment of our heirs and
+# successors. We intend this dedication to be an overt act of
+# relinquishment in perpetuity of all present and future rights to this
+# software under copyright law.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+
+import wiredtiger, wttest
+from wtdataset import SimpleDataSet
+
+# test_las.py
+# Smoke tests to ensure lookaside tables are working.
+class test_las(wttest.WiredTigerTestCase):
+ # Force a small cache.
+ def conn_config(self):
+ return 'cache_size=1GB'
+
+ @wttest.longtest('lookaside table smoke test')
+ def test_las(self):
+ # Create a small table.
+ uri = "table:test_las"
+ nrows = 100
+ ds = SimpleDataSet(self, uri, nrows, key_format="S")
+ ds.populate()
+
+ # Take a snapshot.
+ self.session.snapshot("name=xxx")
+
+ # Insert a large number of records, we'll hang if the lookaside table
+ # isn't doing its thing.
+ c = self.session.open_cursor(uri)
+ bigvalue = "abcde" * 100
+ for i in range(1, 1000000):
+ c.set_key(ds.key(nrows + i))
+ c.set_value(bigvalue)
+ self.assertEquals(c.insert(), 0)
+
+if __name__ == '__main__':
+ wttest.run()
diff --git a/src/third_party/wiredtiger/test/suite/test_lsm01.py b/src/third_party/wiredtiger/test/suite/test_lsm01.py
index f705b09b0a4..8a9972261fd 100644
--- a/src/third_party/wiredtiger/test/suite/test_lsm01.py
+++ b/src/third_party/wiredtiger/test/suite/test_lsm01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_lsm02.py b/src/third_party/wiredtiger/test/suite/test_lsm02.py
index e9628139a97..c35dfa43646 100644
--- a/src/third_party/wiredtiger/test/suite/test_lsm02.py
+++ b/src/third_party/wiredtiger/test/suite/test_lsm02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_lsm03.py b/src/third_party/wiredtiger/test/suite/test_lsm03.py
index d916db415da..0eb02d546f0 100644
--- a/src/third_party/wiredtiger/test/suite/test_lsm03.py
+++ b/src/third_party/wiredtiger/test/suite/test_lsm03.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_metadata_cursor01.py b/src/third_party/wiredtiger/test/suite/test_metadata_cursor01.py
index 284e26bc936..f9476a06642 100644
--- a/src/third_party/wiredtiger/test/suite/test_metadata_cursor01.py
+++ b/src/third_party/wiredtiger/test/suite/test_metadata_cursor01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_nsnap01.py b/src/third_party/wiredtiger/test/suite/test_nsnap01.py
index 4d5555277fe..ee97e4f9985 100644
--- a/src/third_party/wiredtiger/test/suite/test_nsnap01.py
+++ b/src/third_party/wiredtiger/test/suite/test_nsnap01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_nsnap02.py b/src/third_party/wiredtiger/test/suite/test_nsnap02.py
index ed1c96ebe50..689c704c97e 100644
--- a/src/third_party/wiredtiger/test/suite/test_nsnap02.py
+++ b/src/third_party/wiredtiger/test/suite/test_nsnap02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_nsnap03.py b/src/third_party/wiredtiger/test/suite/test_nsnap03.py
index 6964fb914c3..7be6557d458 100644
--- a/src/third_party/wiredtiger/test/suite/test_nsnap03.py
+++ b/src/third_party/wiredtiger/test/suite/test_nsnap03.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_nsnap04.py b/src/third_party/wiredtiger/test/suite/test_nsnap04.py
index 8d491540d74..f53c9b5b3cd 100644
--- a/src/third_party/wiredtiger/test/suite/test_nsnap04.py
+++ b/src/third_party/wiredtiger/test/suite/test_nsnap04.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_overwrite.py b/src/third_party/wiredtiger/test/suite/test_overwrite.py
index c894de99bd0..0e026235302 100644
--- a/src/third_party/wiredtiger/test/suite/test_overwrite.py
+++ b/src/third_party/wiredtiger/test/suite/test_overwrite.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_pack.py b/src/third_party/wiredtiger/test/suite/test_pack.py
index 9d833f49e16..a24ef4fdfe1 100644
--- a/src/third_party/wiredtiger/test/suite/test_pack.py
+++ b/src/third_party/wiredtiger/test/suite/test_pack.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
@@ -95,6 +95,11 @@ class test_pack(wttest.WiredTigerTestCase):
self.check('3u', r"\x4")
self.check('3uu', r"\x4", r"\x42" * 10)
self.check('u3u', r"\x42" * 10, r"\x4")
+ self.check('u', '\x00')
+ self.check('u', '')
+ self.check('uu', '', '\x00')
+ self.check('uu', '\x00', '')
+ self.check('uu', '', '')
self.check('s', "4")
self.check("1s", "4")
diff --git a/src/third_party/wiredtiger/test/suite/test_perf001.py b/src/third_party/wiredtiger/test/suite/test_perf001.py
deleted file mode 100644
index 6331a3f64d6..00000000000
--- a/src/third_party/wiredtiger/test/suite/test_perf001.py
+++ /dev/null
@@ -1,70 +0,0 @@
-#!/usr/bin/env python
-#
-# Public Domain 2014-2016 MongoDB, Inc.
-# Public Domain 2008-2014 WiredTiger, Inc.
-#
-# This is free and unencumbered software released into the public domain.
-#
-# Anyone is free to copy, modify, publish, use, compile, sell, or
-# distribute this software, either in source code form or as a compiled
-# binary, for any purpose, commercial or non-commercial, and by any
-# means.
-#
-# In jurisdictions that recognize copyright laws, the author or authors
-# of this software dedicate any and all copyright interest in the
-# software to the public domain. We make this dedication for the benefit
-# of the public at large and to the detriment of our heirs and
-# successors. We intend this dedication to be an overt act of
-# relinquishment in perpetuity of all present and future rights to this
-# software under copyright law.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-# OTHER DEALINGS IN THE SOFTWARE.
-#
-# test_perf001.py
-# Test performance when inserting into a table with an index.
-
-import wiredtiger, wttest
-import random
-from time import clock, time
-from wtscenario import make_scenarios
-
-# Test performance of inserting into a table with an index.
-class test_perf001(wttest.WiredTigerTestCase):
- table_name = 'test_perf001'
-
- scenarios = make_scenarios([
- #('file-file', dict(tabletype='file',indextype='file')),
- ('file-lsm', dict(tabletype='file',indextype='lsm', cfg='',
- conn_config="statistics=(fast),statistics_log=(wait=1)")),
- #('lsm-file', dict(tabletype='lsm',indextype='file')),
- #('lsm-lsm', dict(tabletype='lsm',indextype='lsm')),
- ])
- conn_config = 'cache_size=512M'
-
- def test_performance_of_indices(self):
- uri = 'table:' + self.table_name
- create_args = 'key_format=i,value_format=ii,columns=(a,c,d),type=' + self.tabletype
- self.session.create(uri, create_args)
- self.session.create('index:' + self.table_name + ':ia',
- 'columns=(d,c),type=' + self.indextype)
-
- c = self.session.open_cursor('table:' + self.table_name, None, None)
- start_time = clock()
- for i in xrange(750000):
- # 100 operations should never take 5 seconds, sometimes they take
- # 2 seconds when a page is being force-evicted.
- if i % 100 == 0 and i != 0:
- end_time = clock()
- self.assertTrue(end_time - start_time < 5)
- start_time = end_time
- c[i] = (int(time()), random.randint(1,5))
- c.close()
-
-if __name__ == '__main__':
- wttest.run()
diff --git a/src/third_party/wiredtiger/test/suite/test_readonly01.py b/src/third_party/wiredtiger/test/suite/test_readonly01.py
index f41280a3283..ee5f78294f4 100644
--- a/src/third_party/wiredtiger/test/suite/test_readonly01.py
+++ b/src/third_party/wiredtiger/test/suite/test_readonly01.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
#
-# Public Domain 2016-2016 MongoDB, Inc.
-# Public Domain 2008-2016 WiredTiger, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
+# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
#
diff --git a/src/third_party/wiredtiger/test/suite/test_readonly02.py b/src/third_party/wiredtiger/test/suite/test_readonly02.py
index 0df5465642d..3d3de8186d9 100644
--- a/src/third_party/wiredtiger/test/suite/test_readonly02.py
+++ b/src/third_party/wiredtiger/test/suite/test_readonly02.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
#
-# Public Domain 2016-2016 MongoDB, Inc.
-# Public Domain 2008-2016 WiredTiger, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
+# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
#
diff --git a/src/third_party/wiredtiger/test/suite/test_readonly03.py b/src/third_party/wiredtiger/test/suite/test_readonly03.py
index f30c591ca59..6fe2942ca18 100644
--- a/src/third_party/wiredtiger/test/suite/test_readonly03.py
+++ b/src/third_party/wiredtiger/test/suite/test_readonly03.py
@@ -1,7 +1,7 @@
#!/usr/bin/env python
#
-# Public Domain 2016-2016 MongoDB, Inc.
-# Public Domain 2008-2016 WiredTiger, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
+# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
#
diff --git a/src/third_party/wiredtiger/test/suite/test_rebalance.py b/src/third_party/wiredtiger/test/suite/test_rebalance.py
index 2d160bafec0..867d71b6d35 100644
--- a/src/third_party/wiredtiger/test/suite/test_rebalance.py
+++ b/src/third_party/wiredtiger/test/suite/test_rebalance.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_reconfig01.py b/src/third_party/wiredtiger/test/suite/test_reconfig01.py
index cbc8bca5740..646b8622a72 100644
--- a/src/third_party/wiredtiger/test/suite/test_reconfig01.py
+++ b/src/third_party/wiredtiger/test/suite/test_reconfig01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_reconfig02.py b/src/third_party/wiredtiger/test/suite/test_reconfig02.py
index 042d3bbe71f..3bdc19fb2f8 100644
--- a/src/third_party/wiredtiger/test/suite/test_reconfig02.py
+++ b/src/third_party/wiredtiger/test/suite/test_reconfig02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_reconfig03.py b/src/third_party/wiredtiger/test/suite/test_reconfig03.py
index 0019bf4814e..3ab21735bf0 100644
--- a/src/third_party/wiredtiger/test/suite/test_reconfig03.py
+++ b/src/third_party/wiredtiger/test/suite/test_reconfig03.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_reconfig04.py b/src/third_party/wiredtiger/test/suite/test_reconfig04.py
index 51d9b91c1f4..37288150d35 100644
--- a/src/third_party/wiredtiger/test/suite/test_reconfig04.py
+++ b/src/third_party/wiredtiger/test/suite/test_reconfig04.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_rename.py b/src/third_party/wiredtiger/test/suite/test_rename.py
index 4e3af8e13e0..0e55a445cd4 100644
--- a/src/third_party/wiredtiger/test/suite/test_rename.py
+++ b/src/third_party/wiredtiger/test/suite/test_rename.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_reserve.py b/src/third_party/wiredtiger/test/suite/test_reserve.py
new file mode 100644
index 00000000000..23159ed7f8a
--- /dev/null
+++ b/src/third_party/wiredtiger/test/suite/test_reserve.py
@@ -0,0 +1,211 @@
+#!/usr/bin/env python
+#
+# Public Domain 2014-2017 MongoDB, Inc.
+# Public Domain 2008-2014 WiredTiger, Inc.
+#
+# This is free and unencumbered software released into the public domain.
+#
+# Anyone is free to copy, modify, publish, use, compile, sell, or
+# distribute this software, either in source code form or as a compiled
+# binary, for any purpose, commercial or non-commercial, and by any
+# means.
+#
+# In jurisdictions that recognize copyright laws, the author or authors
+# of this software dedicate any and all copyright interest in the
+# software to the public domain. We make this dedication for the benefit
+# of the public at large and to the detriment of our heirs and
+# successors. We intend this dedication to be an overt act of
+# relinquishment in perpetuity of all present and future rights to this
+# software under copyright law.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+#
+# test_reserve.py
+# Reserve update tests.
+
+import wiredtiger, wttest
+from wtdataset import SimpleDataSet, SimpleIndexDataSet
+from wtdataset import SimpleLSMDataSet, ComplexDataSet, ComplexLSMDataSet
+from wtscenario import make_scenarios
+
+# Test WT_CURSOR.reserve.
+class test_reserve(wttest.WiredTigerTestCase):
+
+ keyfmt = [
+ ('integer', dict(keyfmt='i')),
+ ('recno', dict(keyfmt='r')),
+ ('string', dict(keyfmt='S')),
+ ]
+ types = [
+ ('file', dict(uri='file', ds=SimpleDataSet)),
+ ('lsm', dict(uri='lsm', ds=SimpleDataSet)),
+ ('table-complex', dict(uri='table', ds=ComplexDataSet)),
+ ('table-complex-lsm', dict(uri='table', ds=ComplexLSMDataSet)),
+ ('table-index', dict(uri='table', ds=SimpleIndexDataSet)),
+ ('table-simple', dict(uri='table', ds=SimpleDataSet)),
+ ('table-simple-lsm', dict(uri='table', ds=SimpleLSMDataSet)),
+ ]
+ scenarios = make_scenarios(types, keyfmt)
+
+ def skip(self):
+ return self.keyfmt == 'r' and \
+ (self.ds.is_lsm() or self.uri == 'lsm')
+
+ def test_reserve(self):
+ if self.skip():
+ return
+
+ uri = self.uri + ':test_reserve'
+
+ ds = self.ds(self, uri, 500, key_format=self.keyfmt)
+ ds.populate()
+ s = self.conn.open_session()
+ c = s.open_cursor(uri, None)
+
+ # Repeatedly update a record.
+ for i in range(1, 5):
+ s.begin_transaction('isolation=snapshot')
+ c.set_key(ds.key(100))
+ c.set_value(ds.value(100))
+ self.assertEquals(c.update(), 0)
+ s.commit_transaction()
+
+ # Confirm reserve fails if the record doesn't exist.
+ s.begin_transaction('isolation=snapshot')
+ c.set_key(ds.key(600))
+ self.assertRaises(wiredtiger.WiredTigerError, lambda:c.reserve())
+ s.rollback_transaction()
+
+ # Repeatedly reserve a record and commit.
+ for i in range(1, 5):
+ s.begin_transaction('isolation=snapshot')
+ c.set_key(ds.key(100))
+ self.assertEquals(c.reserve(), 0)
+ s.commit_transaction()
+
+ # Repeatedly reserve a record and rollback.
+ for i in range(1, 5):
+ s.begin_transaction('isolation=snapshot')
+ c.set_key(ds.key(100))
+ self.assertEquals(c.reserve(), 0)
+ s.rollback_transaction()
+
+ # Repeatedly reserve, then update, a record, and commit.
+ for i in range(1, 5):
+ s.begin_transaction('isolation=snapshot')
+ c.set_key(ds.key(100))
+ self.assertEquals(c.reserve(), 0)
+ c.set_value(ds.value(100))
+ self.assertEquals(c.update(), 0)
+ s.commit_transaction()
+
+ # Repeatedly reserve, then update, a record, and rollback.
+ for i in range(1, 5):
+ s.begin_transaction('isolation=snapshot')
+ c.set_key(ds.key(100))
+ self.assertEquals(c.reserve(), 0)
+ c.set_value(ds.value(100))
+ self.assertEquals(c.update(), 0)
+ s.commit_transaction()
+
+ # Reserve a slot, repeatedly try and update a record from another
+ # transaction (which should fail), repeatedly update a record and
+ # commit.
+ s2 = self.conn.open_session()
+ c2 = s2.open_cursor(uri, None)
+ for i in range(1, 2):
+ s.begin_transaction('isolation=snapshot')
+ c.set_key(ds.key(100))
+ self.assertEquals(c.reserve(), 0)
+
+ s2.begin_transaction('isolation=snapshot')
+ c2.set_key(ds.key(100))
+ c2.set_value(ds.value(100))
+ self.assertRaises(wiredtiger.WiredTigerError, lambda:c2.update())
+ s2.rollback_transaction()
+
+ c.set_key(ds.key(100))
+ c.set_value(ds.value(100))
+ self.assertEquals(c.update(), 0)
+ s.commit_transaction()
+
+ # Test cursor.reserve will fail if a key has not yet been set.
+ def test_reserve_without_key(self):
+ if self.skip():
+ return
+
+ uri = self.uri + ':test_reserve_without_key'
+
+ ds = self.ds(self, uri, 10, key_format=self.keyfmt)
+ ds.populate()
+ s = self.conn.open_session()
+ c = s.open_cursor(uri, None)
+ s.begin_transaction('isolation=snapshot')
+ msg = "/requires key be set/"
+ self.assertRaisesWithMessage(
+ wiredtiger.WiredTigerError, lambda:c.reserve(), msg)
+
+ # Test cursor.reserve will fail if there's no running transaction.
+ def test_reserve_without_txn(self):
+ if self.skip():
+ return
+
+ uri = self.uri + ':test_reserve_without_txn'
+
+ ds = self.ds(self, uri, 10, key_format=self.keyfmt)
+ ds.populate()
+ s = self.conn.open_session()
+ c = s.open_cursor(uri, None)
+ c.set_key(ds.key(5))
+ msg = "/only permitted in a running transaction/"
+ self.assertRaisesWithMessage(
+ wiredtiger.WiredTigerError, lambda:c.reserve(), msg)
+
+ # Test cursor.reserve returns a value on success.
+ def test_reserve_returns_value(self):
+ if self.skip():
+ return
+
+ uri = self.uri + ':test_reserve_returns_value'
+
+ ds = self.ds(self, uri, 10, key_format=self.keyfmt)
+ ds.populate()
+ s = self.conn.open_session()
+ c = s.open_cursor(uri, None)
+ s.begin_transaction('isolation=snapshot')
+ c.set_key(ds.key(5))
+ self.assertEquals(c.reserve(), 0)
+ self.assertEqual(c.get_value(), ds.comparable_value(5))
+
+ # Test cursor.reserve fails on non-standard cursors.
+ def test_reserve_not_supported(self):
+ if self.skip():
+ return
+
+ uri = self.uri + ':test_reserve_not_supported'
+ s = self.conn.open_session()
+ s.create(uri, 'key_format=' + self.keyfmt + ",value_format=S")
+
+ list = [ "bulk", "dump=json" ]
+ for l in list:
+ c = s.open_cursor(uri, None, l)
+ msg = "/Operation not supported/"
+ self.assertRaisesWithMessage(wiredtiger.WiredTigerError,
+ lambda:self.assertEquals(c.reserve(), 0), msg)
+ c.close()
+
+ list = [ "backup:", "config:" "log:" "metadata:" "statistics:" ]
+ for l in list:
+ c = s.open_cursor(l, None, None)
+ msg = "/Operation not supported/"
+ self.assertRaisesWithMessage(wiredtiger.WiredTigerError,
+ lambda:self.assertEquals(c.reserve(), 0), msg)
+
+if __name__ == '__main__':
+ wttest.run()
diff --git a/src/third_party/wiredtiger/test/suite/test_salvage.py b/src/third_party/wiredtiger/test/suite/test_salvage.py
index 3b648a7f170..14045afa21e 100644
--- a/src/third_party/wiredtiger/test/suite/test_salvage.py
+++ b/src/third_party/wiredtiger/test/suite/test_salvage.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_schema01.py b/src/third_party/wiredtiger/test/suite/test_schema01.py
index 52bff7a13ff..983593dad83 100644
--- a/src/third_party/wiredtiger/test/suite/test_schema01.py
+++ b/src/third_party/wiredtiger/test/suite/test_schema01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_schema02.py b/src/third_party/wiredtiger/test/suite/test_schema02.py
index ffe710b7d3e..e34063aa66b 100644
--- a/src/third_party/wiredtiger/test/suite/test_schema02.py
+++ b/src/third_party/wiredtiger/test/suite/test_schema02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_schema03.py b/src/third_party/wiredtiger/test/suite/test_schema03.py
index e5a6528914a..e5471a4de73 100644
--- a/src/third_party/wiredtiger/test/suite/test_schema03.py
+++ b/src/third_party/wiredtiger/test/suite/test_schema03.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_schema04.py b/src/third_party/wiredtiger/test/suite/test_schema04.py
index 63c638b916c..765040ae73f 100644
--- a/src/third_party/wiredtiger/test/suite/test_schema04.py
+++ b/src/third_party/wiredtiger/test/suite/test_schema04.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_schema05.py b/src/third_party/wiredtiger/test/suite/test_schema05.py
index d536a629373..f3a75447ee4 100644
--- a/src/third_party/wiredtiger/test/suite/test_schema05.py
+++ b/src/third_party/wiredtiger/test/suite/test_schema05.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_schema06.py b/src/third_party/wiredtiger/test/suite/test_schema06.py
index e0eec189137..ef8434a1eaa 100644
--- a/src/third_party/wiredtiger/test/suite/test_schema06.py
+++ b/src/third_party/wiredtiger/test/suite/test_schema06.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_schema07.py b/src/third_party/wiredtiger/test/suite/test_schema07.py
index 3e4b1d28a4d..8de0c477157 100644
--- a/src/third_party/wiredtiger/test/suite/test_schema07.py
+++ b/src/third_party/wiredtiger/test/suite/test_schema07.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_shared_cache01.py b/src/third_party/wiredtiger/test/suite/test_shared_cache01.py
index c3bd946cc4b..5b348a0ca87 100644
--- a/src/third_party/wiredtiger/test/suite/test_shared_cache01.py
+++ b/src/third_party/wiredtiger/test/suite/test_shared_cache01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_shared_cache02.py b/src/third_party/wiredtiger/test/suite/test_shared_cache02.py
index 67f9bf7c6b7..c6e5209ff8a 100644
--- a/src/third_party/wiredtiger/test/suite/test_shared_cache02.py
+++ b/src/third_party/wiredtiger/test/suite/test_shared_cache02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_split.py b/src/third_party/wiredtiger/test/suite/test_split.py
index 411778f21ae..b3de91d3cdb 100644
--- a/src/third_party/wiredtiger/test/suite/test_split.py
+++ b/src/third_party/wiredtiger/test/suite/test_split.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_stat01.py b/src/third_party/wiredtiger/test/suite/test_stat01.py
index 2b04a3cbcd5..03f0507ced4 100644
--- a/src/third_party/wiredtiger/test/suite/test_stat01.py
+++ b/src/third_party/wiredtiger/test/suite/test_stat01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_stat02.py b/src/third_party/wiredtiger/test/suite/test_stat02.py
index 45af283ed02..d3bc18cb3e6 100644
--- a/src/third_party/wiredtiger/test/suite/test_stat02.py
+++ b/src/third_party/wiredtiger/test/suite/test_stat02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_stat03.py b/src/third_party/wiredtiger/test/suite/test_stat03.py
index 7e5cf46ef13..d486cbda0b6 100644
--- a/src/third_party/wiredtiger/test/suite/test_stat03.py
+++ b/src/third_party/wiredtiger/test/suite/test_stat03.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_stat04.py b/src/third_party/wiredtiger/test/suite/test_stat04.py
index b5309efff37..af5f0e282bf 100644
--- a/src/third_party/wiredtiger/test/suite/test_stat04.py
+++ b/src/third_party/wiredtiger/test/suite/test_stat04.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_stat05.py b/src/third_party/wiredtiger/test/suite/test_stat05.py
index ef4d65e85e4..6478bb5e58c 100644
--- a/src/third_party/wiredtiger/test/suite/test_stat05.py
+++ b/src/third_party/wiredtiger/test/suite/test_stat05.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_stat_log01.py b/src/third_party/wiredtiger/test/suite/test_stat_log01.py
index 65ce80dfe7d..8f17be042d6 100644
--- a/src/third_party/wiredtiger/test/suite/test_stat_log01.py
+++ b/src/third_party/wiredtiger/test/suite/test_stat_log01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_sweep01.py b/src/third_party/wiredtiger/test/suite/test_sweep01.py
index 5559190caca..4d11942dc54 100644
--- a/src/third_party/wiredtiger/test/suite/test_sweep01.py
+++ b/src/third_party/wiredtiger/test/suite/test_sweep01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_sweep02.py b/src/third_party/wiredtiger/test/suite/test_sweep02.py
index cff45e0d2f9..76931ecbfbd 100644
--- a/src/third_party/wiredtiger/test/suite/test_sweep02.py
+++ b/src/third_party/wiredtiger/test/suite/test_sweep02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_sweep03.py b/src/third_party/wiredtiger/test/suite/test_sweep03.py
index 61078fa96b5..5ff747b1056 100644
--- a/src/third_party/wiredtiger/test/suite/test_sweep03.py
+++ b/src/third_party/wiredtiger/test/suite/test_sweep03.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_truncate01.py b/src/third_party/wiredtiger/test/suite/test_truncate01.py
index 98b741ba6a4..88d29d8443a 100644
--- a/src/third_party/wiredtiger/test/suite/test_truncate01.py
+++ b/src/third_party/wiredtiger/test/suite/test_truncate01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_truncate02.py b/src/third_party/wiredtiger/test/suite/test_truncate02.py
index 729825b26d4..06fa6bfc94f 100644
--- a/src/third_party/wiredtiger/test/suite/test_truncate02.py
+++ b/src/third_party/wiredtiger/test/suite/test_truncate02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_truncate03.py b/src/third_party/wiredtiger/test/suite/test_truncate03.py
index 2b4628950b3..613ab772571 100644
--- a/src/third_party/wiredtiger/test/suite/test_truncate03.py
+++ b/src/third_party/wiredtiger/test/suite/test_truncate03.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_txn01.py b/src/third_party/wiredtiger/test/suite/test_txn01.py
index d4ca2ac8d12..e0030909331 100644
--- a/src/third_party/wiredtiger/test/suite/test_txn01.py
+++ b/src/third_party/wiredtiger/test/suite/test_txn01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_txn02.py b/src/third_party/wiredtiger/test/suite/test_txn02.py
index 01626057b9e..b61a9ed9f99 100644
--- a/src/third_party/wiredtiger/test/suite/test_txn02.py
+++ b/src/third_party/wiredtiger/test/suite/test_txn02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
@@ -137,7 +137,10 @@ class test_txn02(wttest.WiredTigerTestCase, suite_subprocess):
self.check(self.session2, "isolation=read-uncommitted", current)
# Opening a clone of the database home directory should run
- # recovery and see the committed results.
+ # recovery and see the committed results. Flush the log because
+ # the backup may not get all the log records if we are running
+ # without a sync option. Use sync=off to force a write to the OS.
+ self.session.log_flush('sync=off')
self.backup(self.backup_dir)
backup_conn_params = 'log=(enabled,file_max=%s)' % self.logmax
backup_conn = self.wiredtiger_open(self.backup_dir, backup_conn_params)
@@ -169,7 +172,6 @@ class test_txn02(wttest.WiredTigerTestCase, suite_subprocess):
try:
session = backup_conn.open_session()
finally:
- session.checkpoint("force")
self.check(backup_conn.open_session(), None, committed)
# Sleep long enough so that the archive thread is guaranteed
# to run before we close the connection.
diff --git a/src/third_party/wiredtiger/test/suite/test_txn03.py b/src/third_party/wiredtiger/test/suite/test_txn03.py
index 18a0e096767..53e9b8e6206 100644
--- a/src/third_party/wiredtiger/test/suite/test_txn03.py
+++ b/src/third_party/wiredtiger/test/suite/test_txn03.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_txn04.py b/src/third_party/wiredtiger/test/suite/test_txn04.py
index d8f6774ded1..470e37d6a9c 100644
--- a/src/third_party/wiredtiger/test/suite/test_txn04.py
+++ b/src/third_party/wiredtiger/test/suite/test_txn04.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_txn05.py b/src/third_party/wiredtiger/test/suite/test_txn05.py
index 7aaff221ba4..6a5be0a5df4 100644
--- a/src/third_party/wiredtiger/test/suite/test_txn05.py
+++ b/src/third_party/wiredtiger/test/suite/test_txn05.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
@@ -101,7 +101,10 @@ class test_txn05(wttest.WiredTigerTestCase, suite_subprocess):
self.check(self.session2, "isolation=read-uncommitted", current)
# Opening a clone of the database home directory should run
- # recovery and see the committed results.
+ # recovery and see the committed results. Flush the log because
+ # the backup may not get all the log records if we are running
+ # without a sync option. Use sync=off to force a write to the OS.
+ self.session.log_flush('sync=off')
self.backup(self.backup_dir)
backup_conn_params = 'log=(enabled,file_max=%s)' % self.logmax
backup_conn = self.wiredtiger_open(self.backup_dir, backup_conn_params)
@@ -134,12 +137,12 @@ class test_txn05(wttest.WiredTigerTestCase, suite_subprocess):
session = backup_conn.open_session()
finally:
self.check(session, None, committed)
- # Force a checkpoint because we don't record the recovery
- # checkpoint as available for archiving.
- session.checkpoint("force")
# Sleep long enough so that the archive thread is guaranteed
# to run before we close the connection.
time.sleep(1.0)
+ if count == 0:
+ first_logs = \
+ fnmatch.filter(os.listdir(self.backup_dir), "*Log*")
backup_conn.close()
count += 1
#
@@ -149,6 +152,11 @@ class test_txn05(wttest.WiredTigerTestCase, suite_subprocess):
#
cur_logs = fnmatch.filter(os.listdir(self.backup_dir), "*Log*")
for o in orig_logs:
+ # Creating the backup was effectively an unclean shutdown so
+ # even after sleeping, we should never archive log files
+ # because a checkpoint has not run. Later opens and runs of
+ # recovery will detect a clean shutdown and allow archiving.
+ self.assertEqual(True, o in first_logs)
if self.archive == 'true':
self.assertEqual(False, o in cur_logs)
else:
diff --git a/src/third_party/wiredtiger/test/suite/test_txn06.py b/src/third_party/wiredtiger/test/suite/test_txn06.py
index c91dc6a623b..520c25f9b86 100644
--- a/src/third_party/wiredtiger/test/suite/test_txn06.py
+++ b/src/third_party/wiredtiger/test/suite/test_txn06.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_txn07.py b/src/third_party/wiredtiger/test/suite/test_txn07.py
index e26cf5aaaea..fe1bdd346a0 100644
--- a/src/third_party/wiredtiger/test/suite/test_txn07.py
+++ b/src/third_party/wiredtiger/test/suite/test_txn07.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
@@ -112,7 +112,10 @@ class test_txn07(wttest.WiredTigerTestCase, suite_subprocess):
self.check(self.session2, "isolation=read-uncommitted", current)
# Opening a clone of the database home directory should run
- # recovery and see the committed results.
+ # recovery and see the committed results. Flush the log because
+ # the backup may not get all the log records if we are running
+ # without a sync option. Use sync=off to force a write to the OS.
+ self.session.log_flush('sync=off')
self.backup(self.backup_dir)
backup_conn_params = 'log=(enabled,file_max=%s,' % self.logmax + \
'compressor=%s)' % self.compress + \
diff --git a/src/third_party/wiredtiger/test/suite/test_txn08.py b/src/third_party/wiredtiger/test/suite/test_txn08.py
index 04faed9d45a..5ba0a529a31 100644
--- a/src/third_party/wiredtiger/test/suite/test_txn08.py
+++ b/src/third_party/wiredtiger/test/suite/test_txn08.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_txn09.py b/src/third_party/wiredtiger/test/suite/test_txn09.py
index 768d714e248..cc5771ef681 100644
--- a/src/third_party/wiredtiger/test/suite/test_txn09.py
+++ b/src/third_party/wiredtiger/test/suite/test_txn09.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
@@ -26,8 +26,8 @@
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.
#
-# test_txn02.py
-# Transactions: commits and rollbacks
+# test_txn09.py
+# Transactions: recovery toggling logging
#
import fnmatch, os, shutil, time
diff --git a/src/third_party/wiredtiger/test/suite/test_txn10.py b/src/third_party/wiredtiger/test/suite/test_txn10.py
index a4745e60066..d27f83bf2e4 100644
--- a/src/third_party/wiredtiger/test/suite/test_txn10.py
+++ b/src/third_party/wiredtiger/test/suite/test_txn10.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_txn11.py b/src/third_party/wiredtiger/test/suite/test_txn11.py
index 3c02b1e86e3..4b4db9ce315 100644
--- a/src/third_party/wiredtiger/test/suite/test_txn11.py
+++ b/src/third_party/wiredtiger/test/suite/test_txn11.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_txn12.py b/src/third_party/wiredtiger/test/suite/test_txn12.py
index 32c058bea85..a0ecfb42bdb 100644
--- a/src/third_party/wiredtiger/test/suite/test_txn12.py
+++ b/src/third_party/wiredtiger/test/suite/test_txn12.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_txn13.py b/src/third_party/wiredtiger/test/suite/test_txn13.py
index 2bf49486b3a..b9172662da0 100644
--- a/src/third_party/wiredtiger/test/suite/test_txn13.py
+++ b/src/third_party/wiredtiger/test/suite/test_txn13.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_txn14.py b/src/third_party/wiredtiger/test/suite/test_txn14.py
index f9ccabaab8b..7579bbc8e54 100644
--- a/src/third_party/wiredtiger/test/suite/test_txn14.py
+++ b/src/third_party/wiredtiger/test/suite/test_txn14.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_txn15.py b/src/third_party/wiredtiger/test/suite/test_txn15.py
index a2bfb626338..762c0613735 100644
--- a/src/third_party/wiredtiger/test/suite/test_txn15.py
+++ b/src/third_party/wiredtiger/test/suite/test_txn15.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_txn16.py b/src/third_party/wiredtiger/test/suite/test_txn16.py
new file mode 100644
index 00000000000..929da2291c7
--- /dev/null
+++ b/src/third_party/wiredtiger/test/suite/test_txn16.py
@@ -0,0 +1,140 @@
+#!/usr/bin/env python
+#
+# Public Domain 2014-2017 MongoDB, Inc.
+# Public Domain 2008-2014 WiredTiger, Inc.
+#
+# This is free and unencumbered software released into the public domain.
+#
+# Anyone is free to copy, modify, publish, use, compile, sell, or
+# distribute this software, either in source code form or as a compiled
+# binary, for any purpose, commercial or non-commercial, and by any
+# means.
+#
+# In jurisdictions that recognize copyright laws, the author or authors
+# of this software dedicate any and all copyright interest in the
+# software to the public domain. We make this dedication for the benefit
+# of the public at large and to the detriment of our heirs and
+# successors. We intend this dedication to be an overt act of
+# relinquishment in perpetuity of all present and future rights to this
+# software under copyright law.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+# OTHER DEALINGS IN THE SOFTWARE.
+#
+# test_txn16.py
+# Recovery: Test that toggling between logging and not logging does not
+# continue to generate more log files.
+#
+
+import fnmatch, os, shutil, time
+from suite_subprocess import suite_subprocess
+import wttest
+
+class test_txn16(wttest.WiredTigerTestCase, suite_subprocess):
+ t1 = 'table:test_txn16_1'
+ t2 = 'table:test_txn16_2'
+ t3 = 'table:test_txn16_3'
+ nentries = 1000
+ create_params = 'key_format=i,value_format=i'
+ # Set the log file size small so we generate checkpoints
+ # with LSNs in different files.
+ conn_config = 'config_base=false,' + \
+ 'log=(archive=false,enabled,file_max=100K),' + \
+ 'transaction_sync=(method=dsync,enabled)'
+ conn_on = 'config_base=false,' + \
+ 'log=(archive=false,enabled,file_max=100K),' + \
+ 'transaction_sync=(method=dsync,enabled)'
+ conn_off = 'config_base=false,log=(enabled=false)'
+
+ def populate_table(self, uri):
+ self.session.create(uri, self.create_params)
+ c = self.session.open_cursor(uri, None, None)
+ # Populate with an occasional checkpoint to generate
+ # some varying LSNs.
+ for i in range(self.nentries):
+ c[i] = i + 1
+ if i % 900 == 0:
+ self.session.checkpoint()
+ c.close()
+
+ def copy_dir(self, olddir, newdir):
+ ''' Simulate a crash from olddir and restart in newdir. '''
+ # with the connection still open, copy files to new directory
+ shutil.rmtree(newdir, ignore_errors=True)
+ os.mkdir(newdir)
+ for fname in os.listdir(olddir):
+ fullname = os.path.join(olddir, fname)
+ # Skip lock file on Windows since it is locked
+ if os.path.isfile(fullname) and \
+ "WiredTiger.lock" not in fullname and \
+ "Tmplog" not in fullname and \
+ "Preplog" not in fullname:
+ shutil.copy(fullname, newdir)
+ # close the original connection.
+ self.close_conn()
+
+ def run_toggle(self, homedir):
+ loop = 0
+ # Record original log files. There should never be overlap
+ # with these even after they're removed.
+ orig_logs = fnmatch.filter(os.listdir(homedir), "*Log*")
+ while loop < 3:
+ # Reopen with logging on to run recovery first time
+ on_conn = self.wiredtiger_open(homedir, self.conn_on)
+ on_conn.close()
+ if loop > 0:
+ # Get current log files.
+ cur_logs = fnmatch.filter(os.listdir(homedir), "*Log*")
+ scur = set(cur_logs)
+ sorig = set(orig_logs)
+ # There should never be overlap with the log files that
+ # were there originally. Mostly this checks that after
+ # opening with logging disabled and then re-enabled, we
+ # don't see log file 1.
+ self.assertEqual(scur.isdisjoint(sorig), True)
+ if loop > 1:
+ # We should be creating the same log files each time.
+ for l in cur_logs:
+ self.assertEqual(l in last_logs, True)
+ for l in last_logs:
+ self.assertEqual(l in cur_logs, True)
+ last_logs = cur_logs
+ loop += 1
+ # Remove all log files before opening without logging.
+ cur_logs = fnmatch.filter(os.listdir(homedir), "*Log*")
+ for l in cur_logs:
+ path=homedir + "/" + l
+ os.remove(path)
+ off_conn = self.wiredtiger_open(homedir, self.conn_off)
+ off_conn.close()
+
+ def test_recovery(self):
+ ''' Check log file creation when toggling. '''
+
+ # Here's the strategy:
+ # - With logging populate 4 tables. Checkpoint
+ # them at different times.
+ # - Copy to a new directory to simulate a crash.
+ # - Close the original connection.
+ # On both a "copy" to simulate a crash and the original (3x):
+ # - Record log files existing.
+ # - Reopen with logging to run recovery. Close connection.
+ # - Record log files existing.
+ # - Remove all log files.
+ # - Open connection with logging disabled.
+ # - Record log files existing. Verify we don't keep adding.
+ #
+ self.populate_table(self.t1)
+ self.populate_table(self.t2)
+ self.populate_table(self.t3)
+ self.copy_dir(".", "RESTART")
+ self.run_toggle(".")
+ self.run_toggle("RESTART")
+
+if __name__ == '__main__':
+ wttest.run()
diff --git a/src/third_party/wiredtiger/test/suite/test_unicode01.py b/src/third_party/wiredtiger/test/suite/test_unicode01.py
index 0796abf4607..21d6a714268 100644
--- a/src/third_party/wiredtiger/test/suite/test_unicode01.py
+++ b/src/third_party/wiredtiger/test/suite/test_unicode01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_upgrade.py b/src/third_party/wiredtiger/test/suite/test_upgrade.py
index 4eb6a9e6817..6672daf11d6 100644
--- a/src/third_party/wiredtiger/test/suite/test_upgrade.py
+++ b/src/third_party/wiredtiger/test/suite/test_upgrade.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_util01.py b/src/third_party/wiredtiger/test/suite/test_util01.py
index 5795bb5b2e6..a181acd5568 100644
--- a/src/third_party/wiredtiger/test/suite/test_util01.py
+++ b/src/third_party/wiredtiger/test/suite/test_util01.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_util02.py b/src/third_party/wiredtiger/test/suite/test_util02.py
index 7aa24605ed1..59c34e6ef0e 100644
--- a/src/third_party/wiredtiger/test/suite/test_util02.py
+++ b/src/third_party/wiredtiger/test/suite/test_util02.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_util03.py b/src/third_party/wiredtiger/test/suite/test_util03.py
index ac93d04f799..e5e4f624991 100644
--- a/src/third_party/wiredtiger/test/suite/test_util03.py
+++ b/src/third_party/wiredtiger/test/suite/test_util03.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_util04.py b/src/third_party/wiredtiger/test/suite/test_util04.py
index d165d350adb..cbfd63b6b65 100644
--- a/src/third_party/wiredtiger/test/suite/test_util04.py
+++ b/src/third_party/wiredtiger/test/suite/test_util04.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_util07.py b/src/third_party/wiredtiger/test/suite/test_util07.py
index 1175ad8eb13..7d3d6ec5f37 100644
--- a/src/third_party/wiredtiger/test/suite/test_util07.py
+++ b/src/third_party/wiredtiger/test/suite/test_util07.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_util08.py b/src/third_party/wiredtiger/test/suite/test_util08.py
index 456b68675c6..3c4561da263 100644
--- a/src/third_party/wiredtiger/test/suite/test_util08.py
+++ b/src/third_party/wiredtiger/test/suite/test_util08.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_util09.py b/src/third_party/wiredtiger/test/suite/test_util09.py
index 4b514401478..3138ea087a2 100644
--- a/src/third_party/wiredtiger/test/suite/test_util09.py
+++ b/src/third_party/wiredtiger/test/suite/test_util09.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_util11.py b/src/third_party/wiredtiger/test/suite/test_util11.py
index d5d1cda8c39..68cb751d364 100644
--- a/src/third_party/wiredtiger/test/suite/test_util11.py
+++ b/src/third_party/wiredtiger/test/suite/test_util11.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_util12.py b/src/third_party/wiredtiger/test/suite/test_util12.py
index 3821139f266..6f4638e93aa 100644
--- a/src/third_party/wiredtiger/test/suite/test_util12.py
+++ b/src/third_party/wiredtiger/test/suite/test_util12.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_util13.py b/src/third_party/wiredtiger/test/suite/test_util13.py
index 7890d4fdb1b..79dc232f5ef 100644
--- a/src/third_party/wiredtiger/test/suite/test_util13.py
+++ b/src/third_party/wiredtiger/test/suite/test_util13.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_verify.py b/src/third_party/wiredtiger/test/suite/test_verify.py
index 46ae667464a..615b8e278ac 100644
--- a/src/third_party/wiredtiger/test/suite/test_verify.py
+++ b/src/third_party/wiredtiger/test/suite/test_verify.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/test_version.py b/src/third_party/wiredtiger/test/suite/test_version.py
index 569f181acda..c854a393c2b 100644
--- a/src/third_party/wiredtiger/test/suite/test_version.py
+++ b/src/third_party/wiredtiger/test/suite/test_version.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/wtdataset.py b/src/third_party/wiredtiger/test/suite/wtdataset.py
index 946b97d995f..3093f550e8b 100644
--- a/src/third_party/wiredtiger/test/suite/wtdataset.py
+++ b/src/third_party/wiredtiger/test/suite/wtdataset.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
@@ -71,9 +71,9 @@ class BaseDataSet(object):
# Create a key for a Simple or Complex data set.
@staticmethod
def key_by_format(i, key_format):
- if key_format == 'i' or key_format == 'r' or key_format == 'u':
+ if key_format == 'i' or key_format == 'r':
return i
- elif key_format == 'S':
+ elif key_format == 'S' or key_format == 'u':
return str('%015d' % i)
else:
raise AssertionError(
@@ -82,9 +82,9 @@ class BaseDataSet(object):
# Create a value for a Simple data set.
@staticmethod
def value_by_format(i, value_format):
- if value_format == 'i' or value_format == 'r' or value_format == 'u':
+ if value_format == 'i' or value_format == 'r':
return i
- elif value_format == 'S':
+ elif value_format == 'S' or value_format == 'u':
return str(i) + ': abcdefghijklmnopqrstuvwxyz'
elif value_format == '8t':
value = (
@@ -94,8 +94,7 @@ class BaseDataSet(object):
return value[i % len(value)]
else:
raise AssertionError(
- 'value: object has unexpected format: '
- + value_format)
+ 'value: object has unexpected format: ' + value_format)
# Create a key for this data set. Simple and Complex data sets have
# the same key space.
@@ -119,6 +118,11 @@ class SimpleDataSet(BaseDataSet):
def __init__(self, testcase, uri, rows, **kwargs):
super(SimpleDataSet, self).__init__(testcase, uri, rows, **kwargs)
+ # A value suitable for checking the value returned by a cursor.
+ def comparable_value(self, i):
+ return BaseDataSet.value_by_format(i, self.value_format)
+
+ # A value suitable for assigning to a cursor.
def value(self, i):
return BaseDataSet.value_by_format(i, self.value_format)
@@ -260,9 +264,8 @@ class ComplexDataSet(BaseDataSet):
str(i) + ': abcdefghijklmnopqrstuvwxyz'[0:i%23],
str(i) + ': abcdefghijklmnopqrstuvwxyz'[0:i%18]]
- # A value suitable for assigning to a cursor, as
- # cursor.set_value() expects a tuple when there it is used with
- # a single argument and the value is composite.
+ # A value suitable for assigning to a cursor, as cursor.set_value() expects
+ # a tuple when it is used with a single argument and the value is composite.
def value(self, i):
return tuple(self.comparable_value(i))
diff --git a/src/third_party/wiredtiger/test/suite/wtscenario.py b/src/third_party/wiredtiger/test/suite/wtscenario.py
index 8576b3ac876..86faea330a3 100644
--- a/src/third_party/wiredtiger/test/suite/wtscenario.py
+++ b/src/third_party/wiredtiger/test/suite/wtscenario.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/wttest.py b/src/third_party/wiredtiger/test/suite/wttest.py
index e91838544b9..1c95eb355ae 100644
--- a/src/third_party/wiredtiger/test/suite/wttest.py
+++ b/src/third_party/wiredtiger/test/suite/wttest.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.
diff --git a/src/third_party/wiredtiger/test/suite/wtthread.py b/src/third_party/wiredtiger/test/suite/wtthread.py
index 046a915394d..54fc4a1961e 100644
--- a/src/third_party/wiredtiger/test/suite/wtthread.py
+++ b/src/third_party/wiredtiger/test/suite/wtthread.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Public Domain 2014-2016 MongoDB, Inc.
+# Public Domain 2014-2017 MongoDB, Inc.
# Public Domain 2008-2014 WiredTiger, Inc.
#
# This is free and unencumbered software released into the public domain.