Just a smoke test so far, extracted from src/scripts/nightly/. This makes the existing smoke test more easily accessible. Noteworthy differences: * Instead of patching the code to make output more stable, postprocess the output to normalize it. * Compare actual results to expected results instead of the previous test run's results. * Much faster. The old test harness used sleep liberally to "ensure" things always happen in the same order. Known shortcomings: * The smoke test hangs when the server fails to complete startup, or fails to terminate. * Normalization of xdump hardcodes columns instead of getting them from xdump meta. * Normalization of time values in xdump is an ugly hack. * xdump meta column type isn't normalized. Actual values can vary between systems, because the width of enumeration types is implementation-defined. The smoke test works only when they're represented as int, which is the case on common systems. * Currently expected to work only with thread package LWP and a random() that behaves exactly like the one on my development system, because: - Thread scheduling is reliably deterministic only with LWP - The PRN sequence produced by random() isn't portable - Shell builtin kill appears not to do the job in MinGW - The Windows server tries to run as service when -d isn't specified Further work is needed to address these shortcomings. Getting C programs behave exactly the same on all systems is hard. We'll likely run into system-dependent differences that upset the smoke test. Floating-point computation seems particularly vulnerable. Instead of updating src/scripts/nightly/ to use "make check", retire it. It hasn't been used in quite a while. Investing more into our homegrown auto-builder doesn't make sense, as canned auto-builders such as Travis CI and Jenkins are readily available. The shell scripts src/scripts/nightly/tests/?? become Empire batch files tests/smoke/. The shell scripts are actually shell boilerplate around Empire batch files. To make sure git recognizes the move, this commit moves them unchanged. tests/smoke-test strips the boilerplate before it feeds the batch files to the client. The next commit will get rid fo that. |
||
---|---|---|
.. | ||
smoke | ||
normalize.pl | ||
smoke-test |