summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/test
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
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')
-rw-r--r--src/third_party/wiredtiger/test/bloom/test_bloom.c2
-rw-r--r--src/third_party/wiredtiger/test/checkpoint/checkpointer.c2
-rw-r--r--src/third_party/wiredtiger/test/checkpoint/test_checkpoint.c2
-rw-r--r--src/third_party/wiredtiger/test/checkpoint/test_checkpoint.h2
-rw-r--r--src/third_party/wiredtiger/test/checkpoint/workers.c4
-rw-r--r--src/third_party/wiredtiger/test/csuite/Makefile.am3
-rw-r--r--src/third_party/wiredtiger/test/csuite/rwlock/main.c184
-rw-r--r--src/third_party/wiredtiger/test/csuite/scope/main.c108
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt1965_col_efficiency/main.c2
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2246_col_append/main.c2
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2323_join_visibility/main.c2
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2403_lsm_workload/main.c2
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2447_join_main_table/main.c2
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2535_insert_race/main.c2
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2592_join_schema/main.c2
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2695_checksum/main.c2
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2719_reconfig/main.c2
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2834_join_bloom_fix/main.c2
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2853_perf/main.c2
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2909_checkpoint_integrity/main.c30
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt2999_join_extractor/main.c2
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt3135_search_near_collator/main.c2
-rw-r--r--src/third_party/wiredtiger/test/csuite/wt3184_dup_index_collator/main.c2
-rw-r--r--src/third_party/wiredtiger/test/cursor_order/cursor_order.c2
-rw-r--r--src/third_party/wiredtiger/test/cursor_order/cursor_order.h2
-rw-r--r--src/third_party/wiredtiger/test/cursor_order/cursor_order_file.c2
-rw-r--r--src/third_party/wiredtiger/test/cursor_order/cursor_order_ops.c2
-rw-r--r--src/third_party/wiredtiger/test/fops/file.c2
-rw-r--r--src/third_party/wiredtiger/test/fops/fops.c2
-rw-r--r--src/third_party/wiredtiger/test/fops/t.c2
-rw-r--r--src/third_party/wiredtiger/test/fops/thread.h2
-rw-r--r--src/third_party/wiredtiger/test/format/backup.c2
-rw-r--r--src/third_party/wiredtiger/test/format/bdb.c2
-rw-r--r--src/third_party/wiredtiger/test/format/bulk.c2
-rw-r--r--src/third_party/wiredtiger/test/format/compact.c2
-rw-r--r--src/third_party/wiredtiger/test/format/config.c19
-rw-r--r--src/third_party/wiredtiger/test/format/config.h8
-rw-r--r--src/third_party/wiredtiger/test/format/format.h29
-rw-r--r--src/third_party/wiredtiger/test/format/lrt.c2
-rw-r--r--src/third_party/wiredtiger/test/format/ops.c286
-rw-r--r--src/third_party/wiredtiger/test/format/rebalance.c2
-rw-r--r--src/third_party/wiredtiger/test/format/salvage.c2
-rw-r--r--src/third_party/wiredtiger/test/format/t.c2
-rw-r--r--src/third_party/wiredtiger/test/format/util.c2
-rw-r--r--src/third_party/wiredtiger/test/format/wts.c56
-rw-r--r--src/third_party/wiredtiger/test/huge/huge.c2
-rw-r--r--src/third_party/wiredtiger/test/java/com/wiredtiger/test/AsyncTest.java2
-rw-r--r--src/third_party/wiredtiger/test/java/com/wiredtiger/test/AutoCloseTest.java2
-rw-r--r--src/third_party/wiredtiger/test/java/com/wiredtiger/test/BackupCursorTest.java2
-rw-r--r--src/third_party/wiredtiger/test/java/com/wiredtiger/test/ConcurrentCloseTest.java2
-rw-r--r--src/third_party/wiredtiger/test/java/com/wiredtiger/test/ConfigTest.java2
-rw-r--r--src/third_party/wiredtiger/test/java/com/wiredtiger/test/CursorTest.java2
-rw-r--r--src/third_party/wiredtiger/test/java/com/wiredtiger/test/CursorTest02.java2
-rw-r--r--src/third_party/wiredtiger/test/java/com/wiredtiger/test/CursorTest03.java2
-rw-r--r--src/third_party/wiredtiger/test/java/com/wiredtiger/test/ExceptionTest.java2
-rw-r--r--src/third_party/wiredtiger/test/java/com/wiredtiger/test/PackTest.java43
-rw-r--r--src/third_party/wiredtiger/test/java/com/wiredtiger/test/PackTest02.java2
-rw-r--r--src/third_party/wiredtiger/test/java/com/wiredtiger/test/PackTest03.java2
-rw-r--r--src/third_party/wiredtiger/test/java/com/wiredtiger/test/WiredTigerSuite.java2
-rw-r--r--src/third_party/wiredtiger/test/manydbs/manydbs.c2
-rw-r--r--src/third_party/wiredtiger/test/packing/intpack-test.c2
-rw-r--r--src/third_party/wiredtiger/test/packing/intpack-test2.c2
-rw-r--r--src/third_party/wiredtiger/test/packing/intpack-test3.c2
-rw-r--r--src/third_party/wiredtiger/test/packing/packing-test.c2
-rw-r--r--src/third_party/wiredtiger/test/readonly/readonly.c2
-rw-r--r--src/third_party/wiredtiger/test/recovery/random-abort.c6
-rw-r--r--src/third_party/wiredtiger/test/recovery/truncated-log.c10
-rw-r--r--src/third_party/wiredtiger/test/salvage/salvage.c4
-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
-rw-r--r--src/third_party/wiredtiger/test/syscall/syscall.py2
-rw-r--r--src/third_party/wiredtiger/test/syscall/wt2336_base/base.run61
-rw-r--r--src/third_party/wiredtiger/test/syscall/wt2336_base/main.c28
-rw-r--r--src/third_party/wiredtiger/test/thread/file.c2
-rw-r--r--src/third_party/wiredtiger/test/thread/rw.c2
-rw-r--r--src/third_party/wiredtiger/test/thread/stats.c2
-rw-r--r--src/third_party/wiredtiger/test/thread/t.c2
-rw-r--r--src/third_party/wiredtiger/test/thread/thread.h2
-rw-r--r--src/third_party/wiredtiger/test/utility/misc.c2
-rw-r--r--src/third_party/wiredtiger/test/utility/parse_opts.c2
-rw-r--r--src/third_party/wiredtiger/test/utility/test_util.h22
-rw-r--r--src/third_party/wiredtiger/test/utility/thread.c2
-rw-r--r--src/third_party/wiredtiger/test/windows/windows_shim.c2
-rw-r--r--src/third_party/wiredtiger/test/windows/windows_shim.h54
-rw-r--r--src/third_party/wiredtiger/test/wtperf/test_conf_dump.py28
267 files changed, 1687 insertions, 506 deletions
diff --git a/src/third_party/wiredtiger/test/bloom/test_bloom.c b/src/third_party/wiredtiger/test/bloom/test_bloom.c
index b6299bbbadc..e12a0ed1550 100644
--- a/src/third_party/wiredtiger/test/bloom/test_bloom.c
+++ b/src/third_party/wiredtiger/test/bloom/test_bloom.c
@@ -1,5 +1,5 @@
/*-
- * 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/checkpoint/checkpointer.c b/src/third_party/wiredtiger/test/checkpoint/checkpointer.c
index 84d2765843a..634a8db9124 100644
--- a/src/third_party/wiredtiger/test/checkpoint/checkpointer.c
+++ b/src/third_party/wiredtiger/test/checkpoint/checkpointer.c
@@ -1,5 +1,5 @@
/*-
- * 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/checkpoint/test_checkpoint.c b/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.c
index e7e1a0b81a5..ca13c2bc4ec 100644
--- a/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.c
+++ b/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.c
@@ -1,5 +1,5 @@
/*-
- * 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/checkpoint/test_checkpoint.h b/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.h
index 347bd2c6e89..223b580c611 100644
--- a/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.h
+++ b/src/third_party/wiredtiger/test/checkpoint/test_checkpoint.h
@@ -1,5 +1,5 @@
/*-
- * 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/checkpoint/workers.c b/src/third_party/wiredtiger/test/checkpoint/workers.c
index 82d1b8685c4..520266adf55 100644
--- a/src/third_party/wiredtiger/test/checkpoint/workers.c
+++ b/src/third_party/wiredtiger/test/checkpoint/workers.c
@@ -1,5 +1,5 @@
/*-
- * 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.
@@ -215,7 +215,7 @@ real_worker(void)
}
} else if (ret == WT_ROLLBACK) {
if ((ret = session->rollback_transaction(
- session, NULL)) != 0) {
+ session, NULL)) != 0) {
(void)log_print_err(
"real_worker:rollback_transaction", ret, 1);
goto err;
diff --git a/src/third_party/wiredtiger/test/csuite/Makefile.am b/src/third_party/wiredtiger/test/csuite/Makefile.am
index 10ab890f2f5..f2b4fcacdc8 100644
--- a/src/third_party/wiredtiger/test/csuite/Makefile.am
+++ b/src/third_party/wiredtiger/test/csuite/Makefile.am
@@ -57,6 +57,9 @@ noinst_PROGRAMS += test_wt3135_search_near_collator
test_wt3184_dup_index_collator_SOURCES = wt3184_dup_index_collator/main.c
noinst_PROGRAMS += test_wt3184_dup_index_collator
+test_rwlock_SOURCES = rwlock/main.c
+noinst_PROGRAMS += test_rwlock
+
# Run this during a "make check" smoke test.
TESTS = $(noinst_PROGRAMS)
LOG_COMPILER = $(TEST_WRAPPER)
diff --git a/src/third_party/wiredtiger/test/csuite/rwlock/main.c b/src/third_party/wiredtiger/test/csuite/rwlock/main.c
new file mode 100644
index 00000000000..04813182478
--- /dev/null
+++ b/src/third_party/wiredtiger/test/csuite/rwlock/main.c
@@ -0,0 +1,184 @@
+/*-
+ * 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.
+ */
+#include "test_util.h"
+
+/*
+ * JIRA ticket reference: HELP-4355
+ * Test rwlock collapse under load.
+ */
+#define MAX_THREADS 1000
+#define READS_PER_WRITE 10000
+//#define READS_PER_WRITE 1000000
+//#define READS_PER_WRITE 100
+
+#define CHECK_CORRECTNESS 1
+//#define USE_POSIX 1
+
+static WT_RWLOCK rwlock;
+static pthread_rwlock_t p_rwlock;
+static bool running;
+static uint64_t shared_counter;
+
+void *thread_rwlock(void *);
+void *thread_dump(void *);
+
+int
+main(int argc, char *argv[])
+{
+ TEST_OPTS *opts, _opts;
+ struct timespec te, ts;
+ pthread_t dump_id, id[MAX_THREADS];
+ int i;
+
+ if (!testutil_enable_long_tests()) /* Ignore unless requested */
+ return (EXIT_SUCCESS);
+
+ opts = &_opts;
+ memset(opts, 0, sizeof(*opts));
+ opts->nthreads = 100;
+ opts->nops = 1000000; /* per thread */
+ testutil_check(testutil_parse_opts(argc, argv, opts));
+ running = true;
+
+ testutil_make_work_dir(opts->home);
+ testutil_check(wiredtiger_open(opts->home, NULL,
+ "create,session_max=1000,statistics=(fast)", &opts->conn));
+
+ testutil_check(__wt_rwlock_init(NULL, &rwlock));
+ testutil_check(pthread_rwlock_init(&p_rwlock, NULL));
+
+ testutil_check(pthread_create(
+ &dump_id, NULL, thread_dump, (void *)opts));
+
+ __wt_epoch(NULL, &ts);
+ for (i = 0; i < (int)opts->nthreads; ++i)
+ testutil_check(pthread_create(
+ &id[i], NULL, thread_rwlock, (void *)opts));
+
+ while (--i >= 0)
+ testutil_check(pthread_join(id[i], NULL));
+ __wt_epoch(NULL, &te);
+ printf("%.2lf\n", WT_TIMEDIFF_MS(te, ts) / 1000.0);
+
+ running = false;
+ testutil_check(pthread_join(dump_id, NULL));
+
+ testutil_check(pthread_rwlock_destroy(&p_rwlock));
+ testutil_cleanup(opts);
+ return (EXIT_SUCCESS);
+}
+
+/*
+ * Acquire a rwlock, every Nth operation, acquire exclusive.
+ */
+void *
+thread_rwlock(void *arg)
+{
+ TEST_OPTS *opts;
+ WT_SESSION *wt_session;
+ WT_SESSION_IMPL *session;
+ uint64_t i, counter;
+ bool writelock;
+
+ opts = (TEST_OPTS *)arg;
+ testutil_check(
+ opts->conn->open_session(opts->conn, NULL, NULL, &wt_session));
+ session = (WT_SESSION_IMPL *)wt_session;
+
+ printf("Running rwlock thread\n");
+ for (i = 1; i <= opts->nops; ++i) {
+ writelock = (i % READS_PER_WRITE == 0);
+
+#ifdef USE_POSIX
+ if (writelock)
+ testutil_check(pthread_rwlock_wrlock(&p_rwlock));
+ else
+ testutil_check(pthread_rwlock_rdlock(&p_rwlock));
+#else
+ if (writelock)
+ __wt_writelock(session, &rwlock);
+ else
+ __wt_readlock(session, &rwlock);
+#endif
+
+ /*
+ * Do a tiny amount of work inside the lock so the compiler
+ * can't optimize everything away.
+ */
+ (void)__wt_atomic_add64(&counter, 1);
+
+#ifdef CHECK_CORRECTNESS
+ if (writelock)
+ counter = ++shared_counter;
+ else
+ counter = shared_counter;
+
+ __wt_yield();
+
+ testutil_assert(counter == shared_counter);
+#endif
+
+#ifdef USE_POSIX
+ testutil_check(pthread_rwlock_unlock(&p_rwlock));
+#else
+ if (writelock)
+ __wt_writeunlock(session, &rwlock);
+ else
+ __wt_readunlock(session, &rwlock);
+#endif
+
+ if (i % 10000 == 0) {
+ printf("%s", session->id == 20 ? ".\n" : ".");
+ fflush(stdout);
+ }
+ }
+
+ opts->running = false;
+
+ return (NULL);
+}
+
+void *
+thread_dump(void *arg) {
+ WT_UNUSED(arg);
+
+ while (running) {
+ sleep(1);
+ printf("\n"
+ "rwlock { current %" PRIu8 ", next %" PRIu8
+ ", reader %" PRIu8 ", readers_active %" PRIu16
+ ", readers_queued %" PRIu16 " }\n",
+ rwlock.u.s.current,
+ rwlock.u.s.next,
+ rwlock.u.s.reader,
+ rwlock.u.s.readers_active,
+ rwlock.u.s.readers_queued);
+ }
+
+ return (NULL);
+}
diff --git a/src/third_party/wiredtiger/test/csuite/scope/main.c b/src/third_party/wiredtiger/test/csuite/scope/main.c
index 15dabd97c40..83d6bd479d9 100644
--- a/src/third_party/wiredtiger/test/csuite/scope/main.c
+++ b/src/third_party/wiredtiger/test/csuite/scope/main.c
@@ -1,5 +1,5 @@
/*-
- * 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.
@@ -28,7 +28,7 @@
#include "test_util.h"
#define KEY "key"
-#define VALUE "value"
+#define VALUE "value,value,value"
static int ignore_errors;
@@ -63,46 +63,55 @@ cursor_scope_ops(WT_SESSION *session, const char *uri)
{
struct {
const char *op;
- enum { INSERT, SEARCH, SEARCH_NEAR,
+ enum { INSERT, MODIFY, SEARCH, SEARCH_NEAR,
REMOVE, REMOVE_POS, RESERVE, UPDATE } func;
const char *config;
} *op, ops[] = {
/*
- * The ops order is fixed and shouldn't change, that is, insert
- * has to happen first so search, update and remove operations
- * are possible, and remove has to be last.
+ * The ops order is specific: insert has to happen first so
+ * other operations are possible, and remove has to be last.
*/
{ "insert", INSERT, NULL, },
{ "search", SEARCH, NULL, },
{ "search", SEARCH_NEAR, NULL, },
-#if 0
{ "reserve", RESERVE, NULL, },
-#endif
+ { "insert", MODIFY, NULL, },
{ "update", UPDATE, NULL, },
{ "remove", REMOVE, NULL, },
{ "remove", REMOVE_POS, NULL, },
{ NULL, INSERT, NULL }
};
WT_CURSOR *cursor;
+#define MODIFY_ENTRIES 2
+ WT_MODIFY entries[MODIFY_ENTRIES];
+ WT_ITEM vu;
uint64_t keyr;
- const char *key, *value;
+ const char *key, *vs;
char keybuf[100], valuebuf[100];
int exact;
- bool recno;
+ bool recno, vstring;
/* Reserve requires a running transaction. */
testutil_check(session->begin_transaction(session, NULL));
cursor = NULL;
for (op = ops; op->op != NULL; op++) {
- key = value = NULL;
+ key = vs = NULL;
+ memset(&vu, 0, sizeof(vu));
/* Open a cursor. */
if (cursor != NULL)
testutil_check(cursor->close(cursor));
testutil_check(session->open_cursor(
session, uri, NULL, op->config, &cursor));
+
+ /* Operations change based on the key/value formats. */
recno = strcmp(cursor->key_format, "r") == 0;
+ vstring = strcmp(cursor->value_format, "S") == 0;
+
+ /* Modify is only possible with "item" values. */
+ if (vstring && op->func == MODIFY)
+ continue;
/*
* Set up application buffers so we can detect overwrites
@@ -116,7 +125,12 @@ cursor_scope_ops(WT_SESSION *session, const char *uri)
cursor->set_key(cursor, keybuf);
}
strcpy(valuebuf, VALUE);
- cursor->set_value(cursor, valuebuf);
+ if (vstring)
+ cursor->set_value(cursor, valuebuf);
+ else {
+ vu.size = strlen(vu.data = valuebuf);
+ cursor->set_value(cursor, &vu);
+ }
/*
* The application must keep key and value memory valid until
@@ -129,6 +143,20 @@ cursor_scope_ops(WT_SESSION *session, const char *uri)
case INSERT:
testutil_check(cursor->insert(cursor));
break;
+ case MODIFY:
+ /* Modify, but don't really change anything. */
+ entries[0].data.data = &VALUE[0];
+ entries[0].data.size = 2;
+ entries[0].offset = 0;
+ entries[0].size = 2;
+ entries[1].data.data = &VALUE[3];
+ entries[1].data.size = 5;
+ entries[1].offset = 3;
+ entries[1].size = 5;
+
+ testutil_check(
+ cursor->modify(cursor, entries, MODIFY_ENTRIES));
+ break;
case SEARCH:
testutil_check(cursor->search(cursor));
break;
@@ -148,9 +176,7 @@ cursor_scope_ops(WT_SESSION *session, const char *uri)
testutil_check(cursor->remove(cursor));
break;
case RESERVE:
-#if 0
testutil_check(cursor->reserve(cursor));
-#endif
break;
case UPDATE:
testutil_check(cursor->update(cursor));
@@ -184,7 +210,12 @@ cursor_scope_ops(WT_SESSION *session, const char *uri)
else
testutil_assert(
cursor->get_key(cursor, &key) != 0);
- testutil_assert(cursor->get_value(cursor, &value) != 0);
+ if (vstring)
+ testutil_assert(
+ cursor->get_value(cursor, &vs) != 0);
+ else
+ testutil_assert(
+ cursor->get_value(cursor, &vu) != 0);
testutil_assert(ignore_errors == 0);
break;
case REMOVE_POS:
@@ -205,16 +236,22 @@ cursor_scope_ops(WT_SESSION *session, const char *uri)
testutil_assert(strcmp(key, KEY) == 0);
}
ignore_errors = 1;
- testutil_assert(cursor->get_value(cursor, &value) != 0);
+ if (vstring)
+ testutil_assert(
+ cursor->get_value(cursor, &vs) != 0);
+ else
+ testutil_assert(
+ cursor->get_value(cursor, &vu) != 0);
testutil_assert(ignore_errors == 0);
break;
+ case MODIFY:
case RESERVE:
case SEARCH:
case SEARCH_NEAR:
case UPDATE:
/*
- * Reserve, search, search-near and update position the
- * cursor and have both a key and value.
+ * Modify, reserve, search, search-near and update all
+ * position the cursor and have both a key and value.
*
* Any key/value should not reference application
* memory.
@@ -229,9 +266,19 @@ cursor_scope_ops(WT_SESSION *session, const char *uri)
testutil_assert(key != keybuf);
testutil_assert(strcmp(key, KEY) == 0);
}
- testutil_assert(cursor->get_value(cursor, &value) == 0);
- testutil_assert(value != valuebuf);
- testutil_assert(strcmp(value, VALUE) == 0);
+ if (vstring) {
+ testutil_assert(
+ cursor->get_value(cursor, &vs) == 0);
+ testutil_assert(vs != valuebuf);
+ testutil_assert(strcmp(vs, VALUE) == 0);
+ } else {
+ testutil_assert(
+ cursor->get_value(cursor, &vu) == 0);
+ testutil_assert(vu.data != valuebuf);
+ testutil_assert(vu.size == strlen(VALUE));
+ testutil_assert(
+ memcmp(vu.data, VALUE, strlen(VALUE)) == 0);
+ }
break;
}
@@ -243,9 +290,16 @@ cursor_scope_ops(WT_SESSION *session, const char *uri)
if (recno)
cursor->set_key(cursor, (uint64_t)1);
else {
- cursor->set_key(cursor, KEY);
+ strcpy(keybuf, KEY);
+ cursor->set_key(cursor, keybuf);
+ }
+ strcpy(valuebuf, VALUE);
+ if (vstring)
+ cursor->set_value(cursor, valuebuf);
+ else {
+ vu.size = strlen(vu.data = valuebuf);
+ cursor->set_value(cursor, &vu);
}
- cursor->set_value(cursor, VALUE);
testutil_check(cursor->insert(cursor));
}
}
@@ -276,11 +330,19 @@ main(int argc, char *argv[])
wiredtiger_open(opts->home, &event_handler, "create", &opts->conn));
run(opts->conn, "file:file.SS", "key_format=S,value_format=S");
+ run(opts->conn, "file:file.Su", "key_format=S,value_format=u");
run(opts->conn, "file:file.rS", "key_format=r,value_format=S");
+ run(opts->conn, "file:file.ru", "key_format=r,value_format=u");
+
run(opts->conn, "lsm:lsm.SS", "key_format=S,value_format=S");
+ run(opts->conn, "lsm:lsm.Su", "key_format=S,value_format=S");
run(opts->conn, "lsm:lsm.rS", "key_format=r,value_format=S");
+ run(opts->conn, "lsm:lsm.ru", "key_format=r,value_format=S");
+
run(opts->conn, "table:table.SS", "key_format=S,value_format=S");
+ run(opts->conn, "table:table.Su", "key_format=S,value_format=u");
run(opts->conn, "table:table.rS", "key_format=r,value_format=S");
+ run(opts->conn, "table:table.ru", "key_format=r,value_format=u");
testutil_cleanup(opts);
diff --git a/src/third_party/wiredtiger/test/csuite/wt1965_col_efficiency/main.c b/src/third_party/wiredtiger/test/csuite/wt1965_col_efficiency/main.c
index e5b73d5e642..e6801d8d37e 100644
--- a/src/third_party/wiredtiger/test/csuite/wt1965_col_efficiency/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt1965_col_efficiency/main.c
@@ -1,5 +1,5 @@
/*-
- * 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/csuite/wt2246_col_append/main.c b/src/third_party/wiredtiger/test/csuite/wt2246_col_append/main.c
index 9876582fffa..de7916b6859 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2246_col_append/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2246_col_append/main.c
@@ -1,5 +1,5 @@
/*-
- * 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/csuite/wt2323_join_visibility/main.c b/src/third_party/wiredtiger/test/csuite/wt2323_join_visibility/main.c
index 617490fec4d..a3ab8c153ed 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2323_join_visibility/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2323_join_visibility/main.c
@@ -1,5 +1,5 @@
/*-
- * 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/csuite/wt2403_lsm_workload/main.c b/src/third_party/wiredtiger/test/csuite/wt2403_lsm_workload/main.c
index 0c287484b9e..214276bda21 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2403_lsm_workload/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2403_lsm_workload/main.c
@@ -1,5 +1,5 @@
/*-
- * 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/csuite/wt2447_join_main_table/main.c b/src/third_party/wiredtiger/test/csuite/wt2447_join_main_table/main.c
index 656cea04145..8ad721c8d51 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2447_join_main_table/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2447_join_main_table/main.c
@@ -1,5 +1,5 @@
/*-
- * 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/csuite/wt2535_insert_race/main.c b/src/third_party/wiredtiger/test/csuite/wt2535_insert_race/main.c
index ba17d485e07..6ea599fc118 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2535_insert_race/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2535_insert_race/main.c
@@ -1,5 +1,5 @@
/*-
- * 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/csuite/wt2592_join_schema/main.c b/src/third_party/wiredtiger/test/csuite/wt2592_join_schema/main.c
index be3eff6136c..04fe954c427 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2592_join_schema/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2592_join_schema/main.c
@@ -1,5 +1,5 @@
/*-
- * 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/csuite/wt2695_checksum/main.c b/src/third_party/wiredtiger/test/csuite/wt2695_checksum/main.c
index db4fed5dc53..3bd9bfca3c0 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2695_checksum/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2695_checksum/main.c
@@ -1,5 +1,5 @@
/*-
- * 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/csuite/wt2719_reconfig/main.c b/src/third_party/wiredtiger/test/csuite/wt2719_reconfig/main.c
index 0942cfc73b2..cef95490c7e 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2719_reconfig/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2719_reconfig/main.c
@@ -1,5 +1,5 @@
/*-
- * 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/csuite/wt2834_join_bloom_fix/main.c b/src/third_party/wiredtiger/test/csuite/wt2834_join_bloom_fix/main.c
index e128df29f41..74128406a8e 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2834_join_bloom_fix/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2834_join_bloom_fix/main.c
@@ -1,5 +1,5 @@
/*-
- * 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/csuite/wt2853_perf/main.c b/src/third_party/wiredtiger/test/csuite/wt2853_perf/main.c
index 46ba71372e5..096bc64cf82 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2853_perf/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2853_perf/main.c
@@ -1,5 +1,5 @@
/*-
- * 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/csuite/wt2909_checkpoint_integrity/main.c b/src/third_party/wiredtiger/test/csuite/wt2909_checkpoint_integrity/main.c
index ce7bd72fa3f..c93da4c1068 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2909_checkpoint_integrity/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2909_checkpoint_integrity/main.c
@@ -1,5 +1,5 @@
/*-
- * 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.
@@ -445,6 +445,31 @@ run_process(TEST_OPTS *opts, const char *prog, char *argv[], int *status)
}
/*
+* subtest_error_handler --
+* Error event handler.
+*/
+static int
+subtest_error_handler(WT_EVENT_HANDLER *handler,
+ WT_SESSION *session, int error, const char *message)
+{
+ (void)(handler);
+ (void)(session);
+ (void)(message);
+
+ /* Exit on panic, there's no checking to be done. */
+ if (error == WT_PANIC)
+ exit (1);
+ return (0);
+}
+
+static WT_EVENT_HANDLER event_handler = {
+ subtest_error_handler,
+ NULL, /* Message handler */
+ NULL, /* Progress handler */
+ NULL /* Close handler */
+};
+
+/*
* subtest_main --
* The main program for the subtest
*/
@@ -478,7 +503,8 @@ subtest_main(int argc, char *argv[], bool close_test)
WT_FAIL_FS_LIB
"=(early_load,config={environment=true,verbose=true})]"));
- testutil_check(wiredtiger_open(opts->home, NULL, config, &opts->conn));
+ testutil_check(
+ wiredtiger_open(opts->home, &event_handler, config, &opts->conn));
testutil_check(
opts->conn->open_session(opts->conn, NULL, NULL, &session));
diff --git a/src/third_party/wiredtiger/test/csuite/wt2999_join_extractor/main.c b/src/third_party/wiredtiger/test/csuite/wt2999_join_extractor/main.c
index 646a7077af1..194ff143610 100644
--- a/src/third_party/wiredtiger/test/csuite/wt2999_join_extractor/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt2999_join_extractor/main.c
@@ -1,5 +1,5 @@
/*-
- * 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/csuite/wt3135_search_near_collator/main.c b/src/third_party/wiredtiger/test/csuite/wt3135_search_near_collator/main.c
index 8783034a7d8..103a502f808 100644
--- a/src/third_party/wiredtiger/test/csuite/wt3135_search_near_collator/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt3135_search_near_collator/main.c
@@ -1,5 +1,5 @@
/*-
- * 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/csuite/wt3184_dup_index_collator/main.c b/src/third_party/wiredtiger/test/csuite/wt3184_dup_index_collator/main.c
index c969e7a1d7e..cd166780c6b 100644
--- a/src/third_party/wiredtiger/test/csuite/wt3184_dup_index_collator/main.c
+++ b/src/third_party/wiredtiger/test/csuite/wt3184_dup_index_collator/main.c
@@ -1,5 +1,5 @@
/*-
- * 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/cursor_order/cursor_order.c b/src/third_party/wiredtiger/test/cursor_order/cursor_order.c
index d3c64b54ab5..2cbca9baf0e 100644
--- a/src/third_party/wiredtiger/test/cursor_order/cursor_order.c
+++ b/src/third_party/wiredtiger/test/cursor_order/cursor_order.c
@@ -1,5 +1,5 @@
/*-
- * 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/cursor_order/cursor_order.h b/src/third_party/wiredtiger/test/cursor_order/cursor_order.h
index 98a7d03c6f3..4f9240f77e8 100644
--- a/src/third_party/wiredtiger/test/cursor_order/cursor_order.h
+++ b/src/third_party/wiredtiger/test/cursor_order/cursor_order.h
@@ -1,5 +1,5 @@
/*-
- * 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/cursor_order/cursor_order_file.c b/src/third_party/wiredtiger/test/cursor_order/cursor_order_file.c
index 42d7af54de4..c1f69a65c88 100644
--- a/src/third_party/wiredtiger/test/cursor_order/cursor_order_file.c
+++ b/src/third_party/wiredtiger/test/cursor_order/cursor_order_file.c
@@ -1,5 +1,5 @@
/*-
- * 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/cursor_order/cursor_order_ops.c b/src/third_party/wiredtiger/test/cursor_order/cursor_order_ops.c
index 299f22684c9..5c6cfe363b6 100644
--- a/src/third_party/wiredtiger/test/cursor_order/cursor_order_ops.c
+++ b/src/third_party/wiredtiger/test/cursor_order/cursor_order_ops.c
@@ -1,5 +1,5 @@
/*-
- * 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/fops/file.c b/src/third_party/wiredtiger/test/fops/file.c
index d1cd22ab391..1bb13f8a4de 100644
--- a/src/third_party/wiredtiger/test/fops/file.c
+++ b/src/third_party/wiredtiger/test/fops/file.c
@@ -1,5 +1,5 @@
/*-
- * 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/fops/fops.c b/src/third_party/wiredtiger/test/fops/fops.c
index 3c4de161423..571b7dd59fa 100644
--- a/src/third_party/wiredtiger/test/fops/fops.c
+++ b/src/third_party/wiredtiger/test/fops/fops.c
@@ -1,5 +1,5 @@
/*-
- * 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/fops/t.c b/src/third_party/wiredtiger/test/fops/t.c
index 07ac07349e3..a481c9ff1c4 100644
--- a/src/third_party/wiredtiger/test/fops/t.c
+++ b/src/third_party/wiredtiger/test/fops/t.c
@@ -1,5 +1,5 @@
/*-
- * 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/fops/thread.h b/src/third_party/wiredtiger/test/fops/thread.h
index 89b7984a166..9c1fb0150a6 100644
--- a/src/third_party/wiredtiger/test/fops/thread.h
+++ b/src/third_party/wiredtiger/test/fops/thread.h
@@ -1,5 +1,5 @@
/*-
- * 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/format/backup.c b/src/third_party/wiredtiger/test/format/backup.c
index 8aa614fa970..ce8b8fed6bd 100644
--- a/src/third_party/wiredtiger/test/format/backup.c
+++ b/src/third_party/wiredtiger/test/format/backup.c
@@ -1,5 +1,5 @@
/*-
- * 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/format/bdb.c b/src/third_party/wiredtiger/test/format/bdb.c
index 8b61573fdf9..6ee3e063cad 100644
--- a/src/third_party/wiredtiger/test/format/bdb.c
+++ b/src/third_party/wiredtiger/test/format/bdb.c
@@ -1,5 +1,5 @@
/*-
- * 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/format/bulk.c b/src/third_party/wiredtiger/test/format/bulk.c
index dab23bed404..0e7c54516e6 100644
--- a/src/third_party/wiredtiger/test/format/bulk.c
+++ b/src/third_party/wiredtiger/test/format/bulk.c
@@ -1,5 +1,5 @@
/*-
- * 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/format/compact.c b/src/third_party/wiredtiger/test/format/compact.c
index 240e5553697..00aed4c10f0 100644
--- a/src/third_party/wiredtiger/test/format/compact.c
+++ b/src/third_party/wiredtiger/test/format/compact.c
@@ -1,5 +1,5 @@
/*-
- * 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/format/config.c b/src/third_party/wiredtiger/test/format/config.c
index 22b40f7164d..2685438af00 100644
--- a/src/third_party/wiredtiger/test/format/config.c
+++ b/src/third_party/wiredtiger/test/format/config.c
@@ -1,5 +1,5 @@
/*-
- * 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.
@@ -489,6 +489,8 @@ config_pct(void)
#define CONFIG_DELETE_ENTRY 0
{ "delete_pct", &g.c_delete_pct, 0 },
{ "insert_pct", &g.c_insert_pct, 0 },
+#define CONFIG_MODIFY_ENTRY 2
+ { "modify_pct", &g.c_modify_pct, 0 },
{ "read_pct", &g.c_read_pct, 0 },
{ "write_pct", &g.c_write_pct, 0 },
};
@@ -508,6 +510,16 @@ config_pct(void)
testutil_die(EINVAL,
"operation percentages total to more than 100%%");
+ /* Cursor modify isn't possible for fixed-length column store. */
+ if (g.type == FIX) {
+ if (config_is_perm("modify_pct"))
+ testutil_die(EINVAL,
+ "WT_CURSOR.modify not supported by fixed-length "
+ "column store or LSM");
+ list[CONFIG_MODIFY_ENTRY].order = 0;
+ *list[CONFIG_MODIFY_ENTRY].vp = 0;
+ }
+
/*
* If the delete percentage isn't nailed down, periodically set it to
* 0 so salvage gets run. Don't do it on the first run, all our smoke
@@ -547,8 +559,9 @@ config_pct(void)
list[max_slot].order = 0;
pct -= *list[max_slot].vp;
}
- testutil_assert(g.c_delete_pct +
- g.c_insert_pct + g.c_read_pct + g.c_write_pct == 100);
+
+ testutil_assert(g.c_delete_pct + g.c_insert_pct +
+ g.c_modify_pct + g.c_read_pct + g.c_write_pct == 100);
}
/*
diff --git a/src/third_party/wiredtiger/test/format/config.h b/src/third_party/wiredtiger/test/format/config.h
index b5feb7a5321..3a41411e104 100644
--- a/src/third_party/wiredtiger/test/format/config.h
+++ b/src/third_party/wiredtiger/test/format/config.h
@@ -1,5 +1,5 @@
/*-
- * 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.
@@ -238,6 +238,10 @@ static CONFIG c[] = {
"configure for mmap operations", /* 90% */
C_BOOL, 90, 0, 0, &g.c_mmap, NULL },
+ { "modify_pct",
+ "percent operations that are value modifications",
+ C_IGNORE, 0, 0, 100, &g.c_modify_pct, NULL },
+
{ "ops",
"the number of modification operations done per run",
0x0, 0, M(2), M(100), &g.c_ops, NULL },
@@ -323,7 +327,7 @@ static CONFIG c[] = {
C_IGNORE|C_STRING, 0, 0, 0, NULL, &g.c_config_open },
{ "write_pct",
- "percent operations that are writes",
+ "percent operations that are value updates",
C_IGNORE, 0, 0, 100, &g.c_write_pct, NULL },
{ NULL, NULL, 0x0, 0, 0, 0, NULL, NULL }
diff --git a/src/third_party/wiredtiger/test/format/format.h b/src/third_party/wiredtiger/test/format/format.h
index 41cc48c4278..104ee1553f4 100644
--- a/src/third_party/wiredtiger/test/format/format.h
+++ b/src/third_party/wiredtiger/test/format/format.h
@@ -1,5 +1,5 @@
/*-
- * 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.
@@ -78,6 +78,8 @@
#define FORMAT_OPERATION_REPS 3 /* 3 thread operations sets */
+#define MAX_MODIFY_ENTRIES 5 /* maximum change vectors */
+
typedef struct {
char *home; /* Home directory */
char *home_backup; /* Hot-backup directory */
@@ -147,28 +149,28 @@ typedef struct {
uint32_t c_bloom_hash_count;
uint32_t c_bloom_oldest;
uint32_t c_cache;
- uint32_t c_compact;
uint32_t c_checkpoints;
- char *c_checksum;
+ char *c_checksum;
uint32_t c_chunk_size;
- char *c_compression;
- char *c_encryption;
- char *c_config_open;
+ uint32_t c_compact;
+ char *c_compression;
+ char *c_config_open;
uint32_t c_data_extend;
- char *c_data_source;
+ char *c_data_source;
uint32_t c_delete_pct;
uint32_t c_dictionary;
uint32_t c_direct_io;
+ char *c_encryption;
uint32_t c_evict_max;
+ char *c_file_type;
uint32_t c_firstfit;
- char *c_file_type;
uint32_t c_huffman_key;
uint32_t c_huffman_value;
uint32_t c_in_memory;
uint32_t c_insert_pct;
uint32_t c_internal_key_truncation;
uint32_t c_intl_page_max;
- char *c_isolation;
+ char *c_isolation;
uint32_t c_key_gap;
uint32_t c_key_max;
uint32_t c_key_min;
@@ -176,22 +178,23 @@ typedef struct {
uint32_t c_leak_memory;
uint32_t c_logging;
uint32_t c_logging_archive;
- char *c_logging_compression;
+ char *c_logging_compression;
uint32_t c_logging_prealloc;
uint32_t c_long_running_txn;
uint32_t c_lsm_worker_threads;
uint32_t c_merge_max;
uint32_t c_mmap;
+ uint32_t c_modify_pct;
uint32_t c_ops;
- uint32_t c_quiet;
uint32_t c_prefix_compression;
uint32_t c_prefix_compression_min;
+ uint32_t c_quiet;
+ uint32_t c_read_pct;
+ uint32_t c_rebalance;
uint32_t c_repeat_data_pct;
uint32_t c_reverse;
uint32_t c_rows;
uint32_t c_runs;
- uint32_t c_read_pct;
- uint32_t c_rebalance;
uint32_t c_salvage;
uint32_t c_split_pct;
uint32_t c_statistics;
diff --git a/src/third_party/wiredtiger/test/format/lrt.c b/src/third_party/wiredtiger/test/format/lrt.c
index 69d6b22d71f..4af9d66d0e1 100644
--- a/src/third_party/wiredtiger/test/format/lrt.c
+++ b/src/third_party/wiredtiger/test/format/lrt.c
@@ -1,5 +1,5 @@
/*-
- * 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/format/ops.c b/src/third_party/wiredtiger/test/format/ops.c
index 72e885bd0d6..02cce77eec2 100644
--- a/src/third_party/wiredtiger/test/format/ops.c
+++ b/src/third_party/wiredtiger/test/format/ops.c
@@ -1,5 +1,5 @@
/*-
- * 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.
@@ -29,14 +29,20 @@
#include "format.h"
static int col_insert(TINFO *, WT_CURSOR *, WT_ITEM *, WT_ITEM *, uint64_t *);
+static int col_modify(
+ TINFO *, WT_CURSOR *, WT_ITEM *, WT_ITEM *, uint64_t, bool);
static int col_remove(WT_CURSOR *, WT_ITEM *, uint64_t, bool);
+static int col_reserve(WT_CURSOR *, uint64_t, bool);
static int col_update(
TINFO *, WT_CURSOR *, WT_ITEM *, WT_ITEM *, uint64_t, bool);
static int nextprev(WT_CURSOR *, int);
static void *ops(void *);
static int row_insert(
TINFO *, WT_CURSOR *, WT_ITEM *, WT_ITEM *, uint64_t, bool);
+static int row_modify(
+ TINFO *, WT_CURSOR *, WT_ITEM *, WT_ITEM *, uint64_t, bool);
static int row_remove(WT_CURSOR *, WT_ITEM *, uint64_t, bool);
+static int row_reserve(WT_CURSOR *, WT_ITEM *, uint64_t, bool);
static int row_update(
TINFO *, WT_CURSOR *, WT_ITEM *, WT_ITEM *, uint64_t, bool);
static void table_append_init(void);
@@ -401,7 +407,7 @@ snap_check(WT_CURSOR *cursor,
static void *
ops(void *arg)
{
- enum { INSERT, READ, REMOVE, UPDATE } op;
+ enum { INSERT, MODIFY, READ, REMOVE, UPDATE } op;
SNAP_OPS *snap, snap_list[64];
TINFO *tinfo;
WT_CONNECTION *conn;
@@ -608,11 +614,12 @@ skip_checkpoint: /* Pick the next checkpoint operation. */
op = REMOVE;
else if (i < g.c_delete_pct + g.c_insert_pct)
op = INSERT;
- else if (i <
- g.c_delete_pct + g.c_insert_pct + g.c_write_pct)
+ else if (i < g.c_delete_pct +
+ g.c_insert_pct + g.c_modify_pct)
+ op = MODIFY;
+ else if (i < g.c_delete_pct +
+ g.c_insert_pct + g.c_modify_pct + g.c_write_pct)
op = UPDATE;
- else
- op = READ;
}
/*
@@ -636,7 +643,7 @@ skip_checkpoint: /* Pick the next checkpoint operation. */
testutil_assert(ret == WT_NOTFOUND);
}
}
-#if 0
+
/* Optionally reserve a row. */
if (!readonly && intxn && mmrand(&tinfo->rnd, 0, 20) == 1) {
switch (g.type) {
@@ -659,7 +666,7 @@ skip_checkpoint: /* Pick the next checkpoint operation. */
testutil_assert(ret == WT_NOTFOUND);
}
}
-#endif
+
/* Perform the operation. */
switch (op) {
case INSERT:
@@ -696,6 +703,30 @@ skip_checkpoint: /* Pick the next checkpoint operation. */
testutil_assert(ret == 0 || ret == WT_ROLLBACK);
}
break;
+ case MODIFY:
+ ++tinfo->update;
+ switch (g.type) {
+ case ROW:
+ ret = row_modify(tinfo, cursor,
+ key, value, keyno, positioned);
+ break;
+ case VAR:
+ ret = col_modify(tinfo, cursor,
+ key, value, keyno, positioned);
+ break;
+ }
+ if (ret == 0) {
+ positioned = true;
+ if (SNAP_TRACK)
+ snap_track(snap++, keyno, NULL, value);
+ } else {
+ positioned = false;
+ if (ret == WT_ROLLBACK && intxn)
+ goto deadlock;
+ testutil_assert(ret == 0 ||
+ ret == WT_NOTFOUND || ret == WT_ROLLBACK);
+ }
+ break;
case READ:
++tinfo->search;
ret = read_row(cursor, key, value, keyno);
@@ -740,17 +771,15 @@ skip_checkpoint: /* Pick the next checkpoint operation. */
case UPDATE:
update_instead_of_insert:
++tinfo->update;
-
- /* Update the row. */
switch (g.type) {
case ROW:
- ret = row_update(tinfo,
- cursor, key, value, keyno, positioned);
+ ret = row_update(tinfo, cursor,
+ key, value, keyno, positioned);
break;
case FIX:
case VAR:
- ret = col_update(tinfo,
- cursor, key, value, keyno, positioned);
+ ret = col_update(tinfo, cursor,
+ key, value, keyno, positioned);
break;
}
if (ret == 0) {
@@ -1103,7 +1132,6 @@ nextprev(WT_CURSOR *cursor, int next)
return (ret);
}
-#if 0
/*
* row_reserve --
* Reserve a row in a row-store file.
@@ -1166,7 +1194,235 @@ col_reserve(WT_CURSOR *cursor, uint64_t keyno, bool positioned)
}
return (0);
}
+
+/*
+ * modify_build --
+ * Generate a set of modify vectors, and copy what the final result
+ * should be into the value buffer.
+ */
+static bool
+modify_build(TINFO *tinfo,
+ WT_CURSOR *cursor, WT_MODIFY *entries, int *nentriesp, WT_ITEM *value)
+{
+ static char repl[64];
+ size_t len, size;
+ u_int i, nentries;
+ WT_ITEM *ta, _ta, *tb, _tb, *tmp;
+
+ if (repl[0] == '\0')
+ memset(repl, '+', sizeof(repl));
+
+ ta = &_ta;
+ memset(ta, 0, sizeof(*ta));
+ tb = &_tb;
+ memset(tb, 0, sizeof(*tb));
+
+ testutil_check(cursor->get_value(cursor, value));
+
+ /*
+ * Randomly select a number of byte changes, offsets and lengths. Start
+ * at least 11 bytes in so we skip the leading key information.
+ */
+ nentries = mmrand(&tinfo->rnd, 1, MAX_MODIFY_ENTRIES);
+ for (i = 0; i < nentries; ++i) {
+ entries[i].data.data = repl;
+ entries[i].data.size = (size_t)mmrand(&tinfo->rnd, 0, 10);
+ entries[i].offset = (size_t)mmrand(&tinfo->rnd, 20, 40);
+ entries[i].size = (size_t)mmrand(&tinfo->rnd, 0, 10);
+ }
+
+ /*
+ * Process the entries to figure out how large a buffer we need. This is
+ * a bit pessimistic because we're ignoring replacement bytes, but it's
+ * a simpler calculation.
+ */
+ for (size = cursor->value.size, i = 0; i < nentries; ++i) {
+ if (entries[i].offset >= size)
+ size = entries[i].offset;
+ size += entries[i].data.size;
+ }
+
+ /* If size is larger than the available buffer size, skip this one. */
+ if (size >= value->memsize)
+ return (false);
+
+ /* Allocate a pair of buffers. */
+ ta->mem = dcalloc(size, sizeof(uint8_t));
+ tb->mem = dcalloc(size, sizeof(uint8_t));
+
+ /*
+ * Use a brute-force process to create the value WiredTiger will create
+ * from this change vector. Don't do anything tricky to speed it up, we
+ * want to use a different algorithm from WiredTiger's, the idea is to
+ * bug-check the library.
+ */
+ memcpy(ta->mem, value->data, value->size);
+ ta->size = value->size;
+ for (i = 0; i < nentries; ++i) {
+ /* Take leading bytes from the original, plus any gap bytes. */
+ if (entries[i].offset >= ta->size) {
+ memcpy(tb->mem, ta->mem, ta->size);
+ if (entries[i].offset > ta->size)
+ memset((uint8_t *)tb->mem + ta->size,
+ '\0', entries[i].offset - ta->size);
+ } else
+ if (entries[i].offset > 0)
+ memcpy(tb->mem, ta->mem, entries[i].offset);
+ tb->size = entries[i].offset;
+
+ /* Take replacement bytes. */
+ if (entries[i].data.size > 0) {
+ memcpy((uint8_t *)tb->mem + tb->size,
+ entries[i].data.data, entries[i].data.size);
+ tb->size += entries[i].data.size;
+ }
+
+ /* Take trailing bytes from the original. */
+ len = entries[i].offset + entries[i].size;
+ if (ta->size > len) {
+ memcpy((uint8_t *)tb->mem + tb->size,
+ (uint8_t *)ta->mem + len, ta->size - len);
+ tb->size += ta->size - len;
+ }
+ testutil_assert(tb->size <= size);
+
+ tmp = ta;
+ ta = tb;
+ tb = tmp;
+ }
+
+ /* Copy the expected result into the value structure. */
+ memcpy(value->mem, ta->mem, ta->size);
+ value->data = value->mem;
+ value->size = ta->size;
+
+ free(ta->mem);
+ free(tb->mem);
+
+ *nentriesp = (int)nentries;
+ return (true);
+}
+
+/*
+ * row_modify --
+ * Modify a row in a row-store file.
+ */
+static int
+row_modify(TINFO *tinfo, WT_CURSOR *cursor,
+ WT_ITEM *key, WT_ITEM *value, uint64_t keyno, bool positioned)
+{
+ WT_DECL_RET;
+ WT_MODIFY entries[MAX_MODIFY_ENTRIES];
+ int nentries;
+
+ if (!positioned) {
+ key_gen(key, keyno);
+ cursor->set_key(cursor, key);
+ switch (ret = cursor->search(cursor)) {
+ case 0:
+ break;
+ case WT_CACHE_FULL:
+ case WT_ROLLBACK:
+ return (WT_ROLLBACK);
+ case WT_NOTFOUND:
+ return (WT_NOTFOUND);
+ default:
+ testutil_die(ret,
+ "row_modify: read row %" PRIu64 " by key", keyno);
+ }
+ }
+
+ /*
+ * Generate a set of change vectors and copy the expected result into
+ * the value buffer. If the return value is non-zero, there wasn't a
+ * big enough value to work with, or for some reason we couldn't build
+ * a reasonable change vector.
+ */
+ ret = WT_NOTFOUND;
+ if (modify_build(tinfo, cursor, entries, &nentries, value))
+ ret = cursor->modify(cursor, entries, nentries);
+ switch (ret) {
+ case 0:
+ break;
+ case WT_CACHE_FULL:
+ case WT_ROLLBACK:
+ return (WT_ROLLBACK);
+ case WT_NOTFOUND:
+ return (WT_NOTFOUND);
+ default:
+ testutil_die(ret,
+ "row_modify: modify row %" PRIu64 " by key", keyno);
+ }
+
+#ifdef HAVE_BERKELEY_DB
+ if (!SINGLETHREADED)
+ return (0);
+
+ bdb_update(key->data, key->size, value->data, value->size);
+#endif
+ return (0);
+}
+
+/*
+ * col_modify --
+ * Modify a row in a column-store file.
+ */
+static int
+col_modify(TINFO *tinfo, WT_CURSOR *cursor,
+ WT_ITEM *key, WT_ITEM *value, uint64_t keyno, bool positioned)
+{
+ WT_DECL_RET;
+ WT_MODIFY entries[MAX_MODIFY_ENTRIES];
+ int nentries;
+
+ if (!positioned) {
+ cursor->set_key(cursor, keyno);
+ switch (ret = cursor->search(cursor)) {
+ case 0:
+ break;
+ case WT_CACHE_FULL:
+ case WT_ROLLBACK:
+ return (WT_ROLLBACK);
+ case WT_NOTFOUND:
+ return (WT_NOTFOUND);
+ default:
+ testutil_die(ret,
+ "col_modify: read row %" PRIu64, keyno);
+ }
+ }
+
+ /*
+ * Generate a set of change vectors and copy the expected result into
+ * the value buffer. If the return value is non-zero, there wasn't a
+ * big enough value to work with, or for some reason we couldn't build
+ * a reasonable change vector.
+ */
+ ret = WT_NOTFOUND;
+ if (modify_build(tinfo, cursor, entries, &nentries, value))
+ ret = cursor->modify(cursor, entries, nentries);
+ switch (ret) {
+ case 0:
+ break;
+ case WT_CACHE_FULL:
+ case WT_ROLLBACK:
+ return (WT_ROLLBACK);
+ case WT_NOTFOUND:
+ return (WT_NOTFOUND);
+ default:
+ testutil_die(ret, "col_modify: modify row %" PRIu64, keyno);
+ }
+
+#ifdef HAVE_BERKELEY_DB
+ if (!SINGLETHREADED)
+ return (0);
+
+ key_gen(key, keyno);
+ bdb_update(key->data, key->size, value->data, value->size);
+#else
+ (void)key; /* [-Wunused-variable] */
#endif
+ return (0);
+}
/*
* row_update --
diff --git a/src/third_party/wiredtiger/test/format/rebalance.c b/src/third_party/wiredtiger/test/format/rebalance.c
index e35c62e7255..195130cfa68 100644
--- a/src/third_party/wiredtiger/test/format/rebalance.c
+++ b/src/third_party/wiredtiger/test/format/rebalance.c
@@ -1,5 +1,5 @@
/*-
- * 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/format/salvage.c b/src/third_party/wiredtiger/test/format/salvage.c
index f82dc34dd5f..a7ac01eff15 100644
--- a/src/third_party/wiredtiger/test/format/salvage.c
+++ b/src/third_party/wiredtiger/test/format/salvage.c
@@ -1,5 +1,5 @@
/*-
- * 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/format/t.c b/src/third_party/wiredtiger/test/format/t.c
index c6686ae8b91..0cfe4e40421 100644
--- a/src/third_party/wiredtiger/test/format/t.c
+++ b/src/third_party/wiredtiger/test/format/t.c
@@ -1,5 +1,5 @@
/*-
- * 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/format/util.c b/src/third_party/wiredtiger/test/format/util.c
index 983d03e2525..06e3f37b830 100644
--- a/src/third_party/wiredtiger/test/format/util.c
+++ b/src/third_party/wiredtiger/test/format/util.c
@@ -1,5 +1,5 @@
/*-
- * 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/format/wts.c b/src/third_party/wiredtiger/test/format/wts.c
index 6aa4784d1c1..673b65794f5 100644
--- a/src/third_party/wiredtiger/test/format/wts.c
+++ b/src/third_party/wiredtiger/test/format/wts.c
@@ -1,5 +1,5 @@
/*-
- * 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.
@@ -35,28 +35,40 @@
static const char *
compressor(uint32_t compress_flag)
{
+ const char *p;
+
+ p = "unrecognized compressor flag";
switch (compress_flag) {
case COMPRESS_NONE:
- return ("none");
+ p ="none";
+ break;
case COMPRESS_LZ4:
- return ("lz4");
+ p ="lz4";
+ break;
case COMPRESS_LZ4_NO_RAW:
- return ("lz4-noraw");
+ p ="lz4-noraw";
+ break;
case COMPRESS_LZO:
- return ("LZO1B-6");
+ p ="LZO1B-6";
+ break;
case COMPRESS_SNAPPY:
- return ("snappy");
+ p ="snappy";
+ break;
case COMPRESS_ZLIB:
- return ("zlib");
+ p ="zlib";
+ break;
case COMPRESS_ZLIB_NO_RAW:
- return ("zlib-noraw");
+ p ="zlib-noraw";
+ break;
case COMPRESS_ZSTD:
- return ("zstd");
- default:
+ p ="zstd";
break;
+ default:
+ testutil_die(EINVAL,
+ "illegal compression flag: %#" PRIx32, compress_flag);
+ /* NOTREACHED */
}
- testutil_die(EINVAL,
- "illegal compression flag: %#" PRIx32, compress_flag);
+ return (p);
}
/*
@@ -66,16 +78,22 @@ compressor(uint32_t compress_flag)
static const char *
encryptor(uint32_t encrypt_flag)
{
+ const char *p;
+
+ p = "unrecognized encryptor flag";
switch (encrypt_flag) {
case ENCRYPT_NONE:
- return ("none");
+ p = "none";
+ break;
case ENCRYPT_ROTN_7:
- return ("rotn,keyid=7");
- default:
+ p = "rotn,keyid=7";
break;
+ default:
+ testutil_die(EINVAL,
+ "illegal encryption flag: %#" PRIx32, encrypt_flag);
+ /* NOTREACHED */
}
- testutil_die(EINVAL,
- "illegal encryption flag: %#" PRIx32, encrypt_flag);
+ return (p);
}
static int
@@ -276,8 +294,8 @@ wts_open(const char *home, bool set_api, WT_CONNECTION **connp)
if ((ret = conn->load_extension(
conn, HELIUM_PATH, helium_config)) != 0)
testutil_die(ret,
- "WT_CONNECTION.load_extension: %s:%s",
- HELIUM_PATH, helium_config);
+ "WT_CONNECTION.load_extension: %s:%s",
+ HELIUM_PATH, helium_config);
}
*connp = conn;
}
diff --git a/src/third_party/wiredtiger/test/huge/huge.c b/src/third_party/wiredtiger/test/huge/huge.c
index 2b0d5f498e3..a1fd45711a2 100644
--- a/src/third_party/wiredtiger/test/huge/huge.c
+++ b/src/third_party/wiredtiger/test/huge/huge.c
@@ -1,5 +1,5 @@
/*-
- * 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/java/com/wiredtiger/test/AsyncTest.java b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/AsyncTest.java
index fc28e669313..11d98fb3b4e 100644
--- a/src/third_party/wiredtiger/test/java/com/wiredtiger/test/AsyncTest.java
+++ b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/AsyncTest.java
@@ -1,5 +1,5 @@
/*-
- * 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/java/com/wiredtiger/test/AutoCloseTest.java b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/AutoCloseTest.java
index d7304bb8a44..e4f720ede8b 100644
--- a/src/third_party/wiredtiger/test/java/com/wiredtiger/test/AutoCloseTest.java
+++ b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/AutoCloseTest.java
@@ -1,5 +1,5 @@
/*-
- * 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/java/com/wiredtiger/test/BackupCursorTest.java b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/BackupCursorTest.java
index dd25e4df7d6..af0a2784589 100644
--- a/src/third_party/wiredtiger/test/java/com/wiredtiger/test/BackupCursorTest.java
+++ b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/BackupCursorTest.java
@@ -1,5 +1,5 @@
/*-
- * 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/java/com/wiredtiger/test/ConcurrentCloseTest.java b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/ConcurrentCloseTest.java
index fead0b0bf38..3759057ef1f 100644
--- a/src/third_party/wiredtiger/test/java/com/wiredtiger/test/ConcurrentCloseTest.java
+++ b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/ConcurrentCloseTest.java
@@ -1,5 +1,5 @@
/*-
- * 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/java/com/wiredtiger/test/ConfigTest.java b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/ConfigTest.java
index 2afde7df2dc..432aa245afa 100644
--- a/src/third_party/wiredtiger/test/java/com/wiredtiger/test/ConfigTest.java
+++ b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/ConfigTest.java
@@ -1,5 +1,5 @@
/*-
- * 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/java/com/wiredtiger/test/CursorTest.java b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/CursorTest.java
index 4cd244e5b10..28c92dd8a8d 100644
--- a/src/third_party/wiredtiger/test/java/com/wiredtiger/test/CursorTest.java
+++ b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/CursorTest.java
@@ -1,5 +1,5 @@
/*-
- * 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/java/com/wiredtiger/test/CursorTest02.java b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/CursorTest02.java
index f107bf0b8f2..10705997352 100644
--- a/src/third_party/wiredtiger/test/java/com/wiredtiger/test/CursorTest02.java
+++ b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/CursorTest02.java
@@ -1,5 +1,5 @@
/*-
- * 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/java/com/wiredtiger/test/CursorTest03.java b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/CursorTest03.java
index 64f33f4d7b6..73c7a22f69d 100644
--- a/src/third_party/wiredtiger/test/java/com/wiredtiger/test/CursorTest03.java
+++ b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/CursorTest03.java
@@ -1,5 +1,5 @@
/*-
- * 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/java/com/wiredtiger/test/ExceptionTest.java b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/ExceptionTest.java
index 0c71ea4371b..99719225b05 100644
--- a/src/third_party/wiredtiger/test/java/com/wiredtiger/test/ExceptionTest.java
+++ b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/ExceptionTest.java
@@ -1,5 +1,5 @@
/*-
- * 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/java/com/wiredtiger/test/PackTest.java b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/PackTest.java
index f24ca6e2def..302313169cd 100644
--- a/src/third_party/wiredtiger/test/java/com/wiredtiger/test/PackTest.java
+++ b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/PackTest.java
@@ -1,5 +1,5 @@
/*-
- * 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.
@@ -184,6 +184,47 @@ public class PackTest {
}
@Test
+ public void pack08()
+ throws WiredTigerPackingException {
+ String format = "u";
+ PackOutputStream packer = new PackOutputStream(format);
+ PackInputStream unpacker;
+ byte[] b0 = {};
+ byte[] b1 = { 0x00 };
+ byte[] packed;
+
+ packer.addByteArray(b0);
+ packed = packer.getValue();
+ unpacker = new PackInputStream(format, packed);
+ Assert.assertTrue(java.util.Arrays.equals(
+ unpacker.getByteArray(), b0));
+
+ packer = new PackOutputStream(format);
+ packer.addByteArray(b1);
+ packed = packer.getValue();
+ unpacker = new PackInputStream(format, packed);
+ Assert.assertTrue(java.util.Arrays.equals(
+ unpacker.getByteArray(), b1));
+
+ format = "uu";
+ for (int i = 0; i < 2; i++) {
+ byte[] arg0 = (i == 0 ? b0 : b1);
+ for (int j = 0; j < 2; j++) {
+ byte[] arg1 = (j == 0 ? b0 : b1);
+ packer = new PackOutputStream(format);
+ packer.addByteArray(arg0);
+ packer.addByteArray(arg1);
+ packed = packer.getValue();
+ unpacker = new PackInputStream(format, packed);
+ Assert.assertTrue(java.util.Arrays.equals(
+ unpacker.getByteArray(), arg0));
+ Assert.assertTrue(java.util.Arrays.equals(
+ unpacker.getByteArray(), arg1));
+ }
+ }
+ }
+
+ @Test
public void packUnpackNumber01()
throws WiredTigerPackingException {
// Verify that we can pack and unpack single signed longs.
diff --git a/src/third_party/wiredtiger/test/java/com/wiredtiger/test/PackTest02.java b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/PackTest02.java
index 847e3c4ab08..517afd1ec03 100644
--- a/src/third_party/wiredtiger/test/java/com/wiredtiger/test/PackTest02.java
+++ b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/PackTest02.java
@@ -1,5 +1,5 @@
/*-
- * 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/java/com/wiredtiger/test/PackTest03.java b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/PackTest03.java
index c3ae854dcaf..81e7987f987 100644
--- a/src/third_party/wiredtiger/test/java/com/wiredtiger/test/PackTest03.java
+++ b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/PackTest03.java
@@ -1,5 +1,5 @@
/*-
- * 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/java/com/wiredtiger/test/WiredTigerSuite.java b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/WiredTigerSuite.java
index 9322d30671a..c77ff5b3507 100644
--- a/src/third_party/wiredtiger/test/java/com/wiredtiger/test/WiredTigerSuite.java
+++ b/src/third_party/wiredtiger/test/java/com/wiredtiger/test/WiredTigerSuite.java
@@ -1,5 +1,5 @@
/*-
- * 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/manydbs/manydbs.c b/src/third_party/wiredtiger/test/manydbs/manydbs.c
index 42020d6ce9a..72ad6228006 100644
--- a/src/third_party/wiredtiger/test/manydbs/manydbs.c
+++ b/src/third_party/wiredtiger/test/manydbs/manydbs.c
@@ -1,5 +1,5 @@
/*-
- * 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/packing/intpack-test.c b/src/third_party/wiredtiger/test/packing/intpack-test.c
index c84823b741b..e7822015091 100644
--- a/src/third_party/wiredtiger/test/packing/intpack-test.c
+++ b/src/third_party/wiredtiger/test/packing/intpack-test.c
@@ -1,5 +1,5 @@
/*-
- * 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/packing/intpack-test2.c b/src/third_party/wiredtiger/test/packing/intpack-test2.c
index 4e612808a35..e216899cebb 100644
--- a/src/third_party/wiredtiger/test/packing/intpack-test2.c
+++ b/src/third_party/wiredtiger/test/packing/intpack-test2.c
@@ -1,5 +1,5 @@
/*-
- * 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/packing/intpack-test3.c b/src/third_party/wiredtiger/test/packing/intpack-test3.c
index 763b0255ecf..00fc80e24a2 100644
--- a/src/third_party/wiredtiger/test/packing/intpack-test3.c
+++ b/src/third_party/wiredtiger/test/packing/intpack-test3.c
@@ -1,5 +1,5 @@
/*-
- * 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/packing/packing-test.c b/src/third_party/wiredtiger/test/packing/packing-test.c
index 919b0622806..bd48ac7125c 100644
--- a/src/third_party/wiredtiger/test/packing/packing-test.c
+++ b/src/third_party/wiredtiger/test/packing/packing-test.c
@@ -1,5 +1,5 @@
/*-
- * 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/readonly/readonly.c b/src/third_party/wiredtiger/test/readonly/readonly.c
index 66c7a0ca692..6f1c34a1fc6 100644
--- a/src/third_party/wiredtiger/test/readonly/readonly.c
+++ b/src/third_party/wiredtiger/test/readonly/readonly.c
@@ -1,5 +1,5 @@
/*-
- * 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/recovery/random-abort.c b/src/third_party/wiredtiger/test/recovery/random-abort.c
index febe6530534..12f86d664ef 100644
--- a/src/third_party/wiredtiger/test/recovery/random-abort.c
+++ b/src/third_party/wiredtiger/test/recovery/random-abort.c
@@ -1,5 +1,5 @@
/*-
- * 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.
@@ -47,9 +47,9 @@ static bool inmem;
#define RECORDS_FILE "records-%" PRIu32
#define ENV_CONFIG_DEF \
- "create,log=(file_max=10M,archive=false,enabled)"
+ "create,log=(file_max=10M,enabled)"
#define ENV_CONFIG_TXNSYNC \
- "create,log=(file_max=10M,archive=false,enabled)," \
+ "create,log=(file_max=10M,enabled)," \
"transaction_sync=(enabled,method=none)"
#define ENV_CONFIG_REC "log=(recover=on)"
#define MAX_VAL 4096
diff --git a/src/third_party/wiredtiger/test/recovery/truncated-log.c b/src/third_party/wiredtiger/test/recovery/truncated-log.c
index a127d8c1c63..c9d73e0cf48 100644
--- a/src/third_party/wiredtiger/test/recovery/truncated-log.c
+++ b/src/third_party/wiredtiger/test/recovery/truncated-log.c
@@ -1,5 +1,5 @@
/*-
- * 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.
@@ -130,7 +130,7 @@ usage(void)
/*
* Child process creates the database and table, and then writes data into
- * the table until it is killed by the parent.
+ * the table until it switches into log file 2.
*/
static void fill_db(void)
WT_GCC_FUNC_DECL_ATTRIBUTE((noreturn));
@@ -246,7 +246,7 @@ fill_db(void)
}
if (fclose(fp) != 0)
testutil_die(errno, "fclose");
- abort();
+ exit(0);
/* NOTREACHED */
}
@@ -286,9 +286,7 @@ main(int argc, char *argv[])
testutil_make_work_dir(home);
/*
- * Fork a child to insert as many items. We will then randomly
- * kill the child, run recovery and make sure all items we wrote
- * exist after recovery runs.
+ * Fork a child to do its work. Wait for it to exit.
*/
if ((pid = fork()) < 0)
testutil_die(errno, "fork");
diff --git a/src/third_party/wiredtiger/test/salvage/salvage.c b/src/third_party/wiredtiger/test/salvage/salvage.c
index 83f9c6349bc..c19a529bcb8 100644
--- a/src/third_party/wiredtiger/test/salvage/salvage.c
+++ b/src/third_party/wiredtiger/test/salvage/salvage.c
@@ -1,5 +1,5 @@
/*-
- * 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.
@@ -522,7 +522,7 @@ build(int ikey, int ivalue, int cnt)
break;
case WT_PAGE_ROW_LEAF:
testutil_check(__wt_snprintf(
- kbuf, sizeof(kbuf), "%010d KEY------", ikey));
+ kbuf, sizeof(kbuf), "%010d KEY------", ikey));
key.data = kbuf;
key.size = 20;
cursor->set_key(cursor, &key);
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.
diff --git a/src/third_party/wiredtiger/test/syscall/syscall.py b/src/third_party/wiredtiger/test/syscall/syscall.py
index 59c2f347146..1caa718b4fc 100644
--- a/src/third_party/wiredtiger/test/syscall/syscall.py
+++ b/src/third_party/wiredtiger/test/syscall/syscall.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/syscall/wt2336_base/base.run b/src/third_party/wiredtiger/test/syscall/wt2336_base/base.run
index 7d2c42ce64e..db455c97474 100644
--- a/src/third_party/wiredtiger/test/syscall/wt2336_base/base.run
+++ b/src/third_party/wiredtiger/test/syscall/wt2336_base/base.run
@@ -1,32 +1,35 @@
-// 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.
-//
-// base.run
-// Command line syscall test runner
-//
+/*-
+ * 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.
+ */
+
+/*
+ * base.run
+ * Command line syscall test runner
+ */
#ifdef __linux__
SYSTEM("Linux");
#define OPEN_EXISTING(name, flags) open(name, flags)
diff --git a/src/third_party/wiredtiger/test/syscall/wt2336_base/main.c b/src/third_party/wiredtiger/test/syscall/wt2336_base/main.c
index 22420371dd0..f22af235c19 100644
--- a/src/third_party/wiredtiger/test/syscall/wt2336_base/main.c
+++ b/src/third_party/wiredtiger/test/syscall/wt2336_base/main.c
@@ -1,3 +1,31 @@
+/*-
+ * 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.
+ */
+
#include <stdlib.h>
#include <unistd.h> // TODO
diff --git a/src/third_party/wiredtiger/test/thread/file.c b/src/third_party/wiredtiger/test/thread/file.c
index 7a7d16c4cd6..66ee9dd8348 100644
--- a/src/third_party/wiredtiger/test/thread/file.c
+++ b/src/third_party/wiredtiger/test/thread/file.c
@@ -1,5 +1,5 @@
/*-
- * 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/thread/rw.c b/src/third_party/wiredtiger/test/thread/rw.c
index e8a2650ca51..cbbd806c559 100644
--- a/src/third_party/wiredtiger/test/thread/rw.c
+++ b/src/third_party/wiredtiger/test/thread/rw.c
@@ -1,5 +1,5 @@
/*-
- * 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/thread/stats.c b/src/third_party/wiredtiger/test/thread/stats.c
index 839d65e8a4d..3950576a310 100644
--- a/src/third_party/wiredtiger/test/thread/stats.c
+++ b/src/third_party/wiredtiger/test/thread/stats.c
@@ -1,5 +1,5 @@
/*-
- * 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/thread/t.c b/src/third_party/wiredtiger/test/thread/t.c
index d2ed4c74bb7..4b767e7f476 100644
--- a/src/third_party/wiredtiger/test/thread/t.c
+++ b/src/third_party/wiredtiger/test/thread/t.c
@@ -1,5 +1,5 @@
/*-
- * 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/thread/thread.h b/src/third_party/wiredtiger/test/thread/thread.h
index edcb919ec32..86b1b55a30e 100644
--- a/src/third_party/wiredtiger/test/thread/thread.h
+++ b/src/third_party/wiredtiger/test/thread/thread.h
@@ -1,5 +1,5 @@
/*-
- * 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/utility/misc.c b/src/third_party/wiredtiger/test/utility/misc.c
index 934dac86a7b..e119fef47f1 100644
--- a/src/third_party/wiredtiger/test/utility/misc.c
+++ b/src/third_party/wiredtiger/test/utility/misc.c
@@ -1,5 +1,5 @@
/*-
- * 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/utility/parse_opts.c b/src/third_party/wiredtiger/test/utility/parse_opts.c
index c3eff3360de..e5bd8ce0130 100644
--- a/src/third_party/wiredtiger/test/utility/parse_opts.c
+++ b/src/third_party/wiredtiger/test/utility/parse_opts.c
@@ -1,5 +1,5 @@
/*-
- * 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/utility/test_util.h b/src/third_party/wiredtiger/test/utility/test_util.h
index 406ed2c4961..9c67bde2457 100644
--- a/src/third_party/wiredtiger/test/utility/test_util.h
+++ b/src/third_party/wiredtiger/test/utility/test_util.h
@@ -1,5 +1,5 @@
/*-
- * 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.
@@ -25,21 +25,21 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
-#include "wt_internal.h" /* For __wt_XXX */
+#include "wt_internal.h"
#ifdef _WIN32
- #define DIR_DELIM '\\'
- #define DIR_DELIM_STR "\\"
- #define DIR_EXISTS_COMMAND "IF EXIST "
- #define RM_COMMAND "rd /s /q "
+#define DIR_DELIM '\\'
+#define DIR_DELIM_STR "\\"
+#define DIR_EXISTS_COMMAND "IF EXIST "
+#define RM_COMMAND "rd /s /q "
#else
- #define DIR_DELIM '/'
- #define DIR_DELIM_STR "/"
- #define RM_COMMAND "rm -rf "
+#define DIR_DELIM '/'
+#define DIR_DELIM_STR "/"
+#define RM_COMMAND "rm -rf "
#endif
-#define DEFAULT_DIR "WT_TEST"
-#define MKDIR_COMMAND "mkdir "
+#define DEFAULT_DIR "WT_TEST"
+#define MKDIR_COMMAND "mkdir "
#ifdef _WIN32
#include "windows_shim.h"
diff --git a/src/third_party/wiredtiger/test/utility/thread.c b/src/third_party/wiredtiger/test/utility/thread.c
index 122ad554442..08f49c54c5e 100644
--- a/src/third_party/wiredtiger/test/utility/thread.c
+++ b/src/third_party/wiredtiger/test/utility/thread.c
@@ -1,5 +1,5 @@
/*-
- * 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/windows/windows_shim.c b/src/third_party/wiredtiger/test/windows/windows_shim.c
index b161b29c2fa..33980260dc6 100644
--- a/src/third_party/wiredtiger/test/windows/windows_shim.c
+++ b/src/third_party/wiredtiger/test/windows/windows_shim.c
@@ -1,5 +1,5 @@
/*-
- * 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/windows/windows_shim.h b/src/third_party/wiredtiger/test/windows/windows_shim.h
index 8985904fb19..88b707f9ad9 100644
--- a/src/third_party/wiredtiger/test/windows/windows_shim.h
+++ b/src/third_party/wiredtiger/test/windows/windows_shim.h
@@ -1,5 +1,5 @@
/*-
- * 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.
@@ -25,27 +25,13 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/
-
-#ifdef _WIN32
-
-#define WIN32_LEAN_AND_MEAN
-#include <windows.h>
-#include <errno.h>
-#include <stdint.h>
-#include <direct.h>
-#include <io.h>
-#include <process.h>
-
#include "wt_internal.h"
-#define inline __inline
-
-/* Define some POSIX types */
-typedef int u_int;
+#include <direct.h> /* _mkdir */
/* Windows does not define constants for access() */
-#define R_OK 04
-#define X_OK R_OK
+#define R_OK 04
+#define X_OK R_OK
/* MSVC Doesn't provide __func__, it has __FUNCTION__ */
#ifdef _MSC_VER
@@ -77,11 +63,13 @@ int gettimeofday(struct timeval* tp, void* tzp);
*/
typedef uint32_t useconds_t;
-int
-sleep(int seconds);
+int sleep(int seconds);
+int usleep(useconds_t useconds);
-int
-usleep(useconds_t useconds);
+#define lseek(fd, offset, origin) \
+ _lseek(fd, (long)(offset), origin)
+#define write(fd, buffer, count) \
+ _write(fd, buffer, (unsigned int)(count))
/*
* Emulate the <pthread.h> support we need for tests and example code.
@@ -102,16 +90,12 @@ typedef HANDLE pthread_t;
typedef int pthread_rwlockattr_t;
typedef int pthread_attr_t;
-int pthread_rwlock_destroy(pthread_rwlock_t *);
-int pthread_rwlock_init(pthread_rwlock_t *,
- const pthread_rwlockattr_t *);
-int pthread_rwlock_rdlock(pthread_rwlock_t *);
-int pthread_rwlock_unlock(pthread_rwlock_t *);
-int pthread_rwlock_trywrlock(pthread_rwlock_t *);
-int pthread_rwlock_wrlock(pthread_rwlock_t *);
-
-int pthread_create(pthread_t *, const pthread_attr_t *,
- void *(*)(void *), void *);
-int pthread_join(pthread_t, void **);
-
-#endif
+int pthread_create(
+ pthread_t *, const pthread_attr_t *, void *(*)(void *), void *);
+int pthread_join(pthread_t, void **);
+int pthread_rwlock_destroy(pthread_rwlock_t *);
+int pthread_rwlock_init(pthread_rwlock_t *, const pthread_rwlockattr_t *);
+int pthread_rwlock_rdlock(pthread_rwlock_t *);
+int pthread_rwlock_trywrlock(pthread_rwlock_t *);
+int pthread_rwlock_unlock(pthread_rwlock_t *);
+int pthread_rwlock_wrlock(pthread_rwlock_t *);
diff --git a/src/third_party/wiredtiger/test/wtperf/test_conf_dump.py b/src/third_party/wiredtiger/test/wtperf/test_conf_dump.py
index ef7f276a1d0..bbfb8e819e9 100644
--- a/src/third_party/wiredtiger/test/wtperf/test_conf_dump.py
+++ b/src/third_party/wiredtiger/test/wtperf/test_conf_dump.py
@@ -1,3 +1,31 @@
+#!/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.
+
# Usage: python test_conf_dump.py <optional-wtperf-config>
#
# This script tests if the config file dumped in the test directory corresponds