* WT-2554 Add initial C test framework.
With a few sample applications. Need to do further work to cleanup
the same applications and share as much code/style as possible.
* WT-2554 Fixup build errors.
* Fix compiler warning.
* Cleanup
* Ensure each test runs in a different directory.
* Update C test suite names and add copyright.
* Move test code into subdirectories.
* Replace test_util.i with a real utility library now that we have one.
Nothing needs to be an inline function.
Mostly cherry picked from 7c18420.
* Use WiredTiger getopt in C test suite for platform portability.
* Add a header comment to each test case.
* Add a C test suite entry auto generator
* Style, KNF
* Implement review feedback.
* Build test/utility library on Windows
* Add comment to script. Fix a printf.
Clean up test program #includes and add generic handling to memory allocation failures.
Now the test programs include <wt_internal.h>, the local includes
aren't necessary, and it makes lint sad.
of a two, 4B value array, declare the value volatile to avoid having the
compiler alter the read/write path.
Add a check if a PRNG component ever goes to zero and reset it.
using other __wt_XXX functions (for example, __wt_thread_id), several
include wt_internal.h.
Back out chunks of the last commit, instead, change the test programs
to use the WiredTiger library RNG functions, remove RNG functions from
test_util.i.
Don't set the seed values based on the gettimeofday, use standard seeds.
Give every thread its own random number generation so we don't collide
on shared cache lines.
Add functionality to test/thread to vary the number of operations
on different tables. Hopfully it'll let us construct workloads where
tables are closed by sweep.
Break hardware.h up into gcc.h and lint.h (hardware.h is still there,
but it's mostly empty).
Remove need for gcc.h from various benchmarking/test programs.
- a few more uninitialized variables
- make variables local to a single file static
- replace use of WT_UNUSED_RET with error checking of the call (the
macro was using a GCC extension clang doesn't like)
With these changes, clang is mostly silent using the following options:
-Weverything
-Wno-cast-align
-Wno-conversion
-Wno-covered-switch-default
-Wno-documentation-unknown-command
-Wno-format-nonliteral
-Wno-language-extension-token
-Wno-missing-noreturn
-Wno-packed
-Wno-padded
-Wno-switch-enum
-Wno-zero-length-array
Also, minor KNF whitespace cleanups.
With this option, the command line combination "-FS -R 0 -W 10" will
trigger the checkpoint problem where closing a file fails because there
is an update for the file we can't write.
Reference #844, #957.