Commit Graph
24301 Commits
Author SHA1 Message Date
Michał KępieńandEvan Hunt fcefc77d35 Allow retaining system test output using an environment variable
Instead of exporting an environment variable containing a command line
argument (NOCLEAN="-n"), extend run.sh to handle a "boolean" environment
variable (SYSTEMTEST_NO_CLEAN) itself.  The former method is buggy
because the value of NOCLEAN is set in parallel.mk when that file is
first created, but it is not subsequently updated upon each test run
(because make considers parallel.mk to be up to date).

To retain backward compatibility, the "-n" command line argument for
run.sh is still supported (and has a higher priority than the relevant
environment variable).

The SYSTEMTEST_NO_CLEAN environment variable can also be used directly
to prevent cleanup when using "make test" instead of runall.sh.

Apart from fixing a bug, this simplifies the way runall.sh controls
run.sh behavior due to the Makefile being bypassed.  Direct processing
of environment variables in run.sh is more scalable in the long run,
given that the previously utilized technique, even with its
implementation fixed, would still require Makefile.in to be modified in
two places each time a new flag needed to be passed from runall.sh to
run.sh.

(cherry picked from commit 3862043879)
(cherry picked from commit e9c4dbe361)
(cherry picked from commit 0e3840e4b4)
2018-02-25 13:34:35 -08:00
Evan Hunt 99db49b439 Merge branch 'parallel-v9_9' into v9_9
chg: dev: Convert most of the remaining system tests to be able to run in parallel [GL #91]

Closes #91

See merge request isc-projects/bind9!59
2018-02-25 13:29:36 -08:00
Evan Hunt 7677cb277a final cleanup
- add CHANGES note
- update copyrights and license headers
2018-02-25 13:13:26 -08:00
Evan Hunt ae6c141f7b tidying up after backport
(cherry picked from commit 854f7846d8)
(cherry picked from commit 6653dcab3d)
2018-02-25 13:10:00 -08:00
Evan Hunt b65aa505e6 improve reliability of the xfer test on slow systems
- lengthened the wait loop for the transfers to complete

(cherry picked from commit b9246ce773)
(cherry picked from commit a5015d7791)
(cherry picked from commit c369fc06ca)
(cherry picked from commit 6a5092f537)
2018-02-25 11:19:26 -08:00
Evan Hunt 37d6f7b624 remove v6synth
- this was a test for the allow-v6-synthesis option, which was
  deprecated and no longer works. the test was removed
  from conf.sh.in long ago.

(cherry picked from commit 474b10a133)
(cherry picked from commit 7971873639)
(cherry picked from commit 626566c72d)
(cherry picked from commit 62f239f5cf)
2018-02-25 11:19:07 -08:00
Evan Hunt 87c7455b4c removed some unnecessary greps
(cherry picked from commit 731ad28be2)
(cherry picked from commit 17245b86d5)
(cherry picked from commit 350f18b0d1)
(cherry picked from commit 539be337d9)
2018-02-25 11:19:05 -08:00
Evan Hunt a236a1e2b4 reorder tests to get better use of parallelism
(cherry picked from commit 56e440f65f)
(cherry picked from commit 4429f8b291)
(cherry picked from commit fa8740feda)
(cherry picked from commit 438dcd9f9c)
2018-02-25 11:18:48 -08:00
Evan Hunt f8fe59f279 parallelize most system tests
(cherry picked from commit c032c54dda)
(cherry picked from commit 2b81f322cb)
(cherry picked from commit 167fa161d1)
(cherry picked from commit 1f297d33a0)
2018-02-25 11:17:55 -08:00
Evan Hunt 29e7466e04 Merge branch 'rt46602-v9_11-v9_10-v9_9' into v9_9
Allow parallel run of system tests

See merge request isc-projects/bind9!7
2018-02-25 09:41:59 -08:00
Stephen MorrisandEvan Hunt f5a3bd48d4 [rt46602] Update CHANGES for parallel tests
(cherry picked from commit dbf753b52d)
(cherry picked from commit 8aaa92693c)
(cherry picked from commit ee3d232d8e)
2018-02-25 09:33:29 -08:00
Stephen MorrisandEvan Hunt 58c2522b85 [rt46602] Change name of shell variable holding current test directory
It was TESTNAME, but this is an obvious name and was used in one of
the system tests, something that interfered with the content of
progress messages.  It is now SYSTESTDIR.

(cherry picked from commit 30cd931a0d)
(cherry picked from commit 78f2976087)
(cherry picked from commit 4a29e3ba65)
2018-02-25 09:28:46 -08:00
Michał KępieńandEvan Hunt 1240f51426 [rt46602] Export environment variables in a portable manner
(cherry picked from commit 2c519531a7)
(cherry picked from commit 747df7d66a)
(cherry picked from commit ddb84ca0af)
2018-02-25 09:28:46 -08:00
Michał KępieńandEvan Hunt 8945f29fb1 [rt46602] Sanitize test names to fix "make check" on Solaris
(cherry picked from commit e005fb948d)
(cherry picked from commit cfaeb55e8e)
(cherry picked from commit fac15bf973)
2018-02-25 09:28:46 -08:00
Stephen MorrisandEvan Hunt 2ee63a76c0 [rt46602] Pass noclean option to Makefile via exported variable
(cherry picked from commit 59d88ee192)
(cherry picked from commit 0ae7e64829)
(cherry picked from commit 4fbaafa480)
2018-02-25 09:28:46 -08:00
Stephen MorrisandEvan Hunt 2a24aac12e [rt46602] Mention conf.sh.win32 in instructions for adding a test.
(cherry picked from commit 23dfa27a84)
(cherry picked from commit 06a9a37d3b)
(cherry picked from commit d9740c20da)
2018-02-25 09:28:45 -08:00
Michał KępieńandEvan Hunt d634594e56 [rt46602] Fix various typos, formatting issues and stylistic nits
(cherry picked from commit f0721de624)
(cherry picked from commit b40e75a75c)
(cherry picked from commit 85f03bb30f)
2018-02-25 09:28:45 -08:00
Michał KępieńandEvan Hunt 2a31548089 [rt46602] Remove redundant variable assignment
(cherry picked from commit 42cf18d239)
(cherry picked from commit 4436930712)
(cherry picked from commit 90654248f6)
2018-02-25 09:28:45 -08:00
Michał KępieńandEvan Hunt df5de60665 [rt46602] named.port is no longer created by setup.sh for allow_query
(cherry picked from commit 1ac4c3e4e5)
(cherry picked from commit 77e6ff0fae)
(cherry picked from commit 2e3d58ad30)
2018-02-25 09:28:45 -08:00
Michał KępieńandEvan Hunt 653dcebec8 [rt46602] Consistently print usage for runall.sh to stderr
(cherry picked from commit fe1ccafc34)
(cherry picked from commit 47e278b7c9)
(cherry picked from commit 66985fad62)
2018-02-25 09:28:45 -08:00
Michał KępieńandEvan Hunt 4ef8f1c774 [rt46602] Clean up getopts usage
Ensure case clauses are in sync with the string passed to getopts.
Remove catch-all clauses as they will never be evaluated.

(cherry picked from commit 0dcee1cad3)
(cherry picked from commit 0c8e56568f)
(cherry picked from commit 6d9fb2b429)
2018-02-25 09:28:45 -08:00
Michał KępieńandEvan Hunt 17fce84a63 [rt46602] Assign default values to variables set by command line options and consistently treat them as integers
(cherry picked from commit fe51c34df3)
(cherry picked from commit 3752edb28e)
(cherry picked from commit 1adbfeb3ed)
2018-02-25 09:28:45 -08:00
Michał KępieńandEvan Hunt 6d8fde8a92 [rt46602] named.port cannot be ignored by git because it is required to be present by notify/ns4
(cherry picked from commit 1960de5530)
(cherry picked from commit f47ed5ceb0)
(cherry picked from commit 01e21e3ee2)
2018-02-25 09:28:45 -08:00
Stephen MorrisandEvan Hunt 98ddc2c422 [rt46602] Remove option to format the printed start time of a test
There was too much incompatibility between operating systems as to
the allowed options for "date".

(cherry picked from commit 451b7309ca)
(cherry picked from commit 8376949ea8)
(cherry picked from commit 52f784315e)
2018-02-25 09:28:45 -08:00
Stephen MorrisandEvan Hunt 90dccece92 [rt46602] Escape line ends in shell script variable assignment
Escape the line ends in a multi-line variable assignment.  Under some
circumstances, substituting the variable caused syntax errors when
used as the list of values in a shell script "for" statement.

(cherry picked from commit 462766cd76)
(cherry picked from commit 53ebdf225f)
(cherry picked from commit 82ffebc73a)
2018-02-25 09:28:42 -08:00
Stephen MorrisandEvan Hunt 6f8c363547 [rt46602] Fix EXTRAPORT substitutions in copy_setport
Fix problems where all EXTRAPORT macros were being replaced by
the EXTRAPORT1 value. (Copy and paste issue.)

(cherry picked from commit fb78f82ba1)
(cherry picked from commit 8513c4256b)
(cherry picked from commit c8880ce14a)
2018-02-25 09:27:13 -08:00
Stephen MorrisandEvan Hunt 0c59973a13 [rt46602] Minor documentation changes
(cherry picked from commit cdf18a5009)
(cherry picked from commit 4731a82eef)
(cherry picked from commit 04120c4223)
2018-02-25 09:27:13 -08:00
Stephen MorrisandEvan Hunt 2dae3e430a [rt46602] Correct way allow_query test produces RNDC output
(cherry picked from commit 7f2d41d4c4)
(cherry picked from commit 36136dec55)
(cherry picked from commit 7125bddda8)
2018-02-25 09:27:13 -08:00
Stephen MorrisandEvan Hunt 9490bd8355 [rt46602] Simplify the cleanup code
(cherry picked from commit 0855a8a6cc)
(cherry picked from commit fb5974f902)
(cherry picked from commit 5d69915cd8)
2018-02-25 09:27:12 -08:00
Stephen MorrisandEvan Hunt 62f2f90bd3 [rt46602] Extensions to README
Added descriptions of how nameservers are started and stopped
during the tests, and how the framework cleans up the files created.

(cherry picked from commit f606b17dfb)
(cherry picked from commit 56ba2e822b)
(cherry picked from commit 5be3ea811e)
2018-02-25 09:27:12 -08:00
Stephen MorrisandEvan Hunt 89772c3dda [rt46602] Miscellenous small changes
(cherry picked from commit b88b508b22)
(cherry picked from commit 3329876ffd)
(cherry picked from commit d2e214bff3)
2018-02-25 09:27:12 -08:00
Stephen MorrisandEvan Hunt c447d0e26d [rt46602] Handle echoing of multi-line output from tests
(cherry picked from commit 1f07c69f25)
(cherry picked from commit 6602a31229)
(cherry picked from commit c136a2fdb2)
2018-02-25 09:27:12 -08:00
Stephen MorrisandEvan Hunt 4ee549091e [rt46602] Rename "test" variable to "systest"
... to avoid confusion between the variable and the command of the
same name.

(cherry picked from commit c12e06755f)
(cherry picked from commit 7a5476173a)
(cherry picked from commit b2319386f4)
2018-02-25 09:27:12 -08:00
Stephen MorrisandEvan Hunt 275ece8341 [rt46602] Add ability to prevent deletion of output files when running all tests
Some tests may need to examine all output files from all system tests.
Allow the deletion of these files to be inhibited if required.

(cherry picked from commit 00bc29640b)
(cherry picked from commit 6917ea971a)
(cherry picked from commit 9040d3d367)
2018-02-25 09:27:12 -08:00
Stephen MorrisandEvan Hunt 5a5f853966 [rt46602] Error messages before start of test are output to stderr
Error messages concerning the invocation of run.sh are output to
stderr.  Messages after the test has started are output to stdout.

(cherry picked from commit 244d1c30e2)
(cherry picked from commit ff5349b3b3)
(cherry picked from commit 5a1b50c023)
2018-02-25 09:27:12 -08:00
Stephen MorrisandEvan Hunt 9e9356e65e [rt46602] Ensure that output sent to stderr is routed to the output file
(cherry picked from commit a5cf6bd12a)
(cherry picked from commit 6bd944c9d0)
(cherry picked from commit 67ff8ef970)
2018-02-25 09:27:12 -08:00
Stephen MorrisandEvan Hunt b38ccb911f [rt46602] Minor tidying up of documentation
(cherry picked from commit ce66752adc)
(cherry picked from commit 6b5e5a2da2)
(cherry picked from commit 2a5707943a)
2018-02-25 09:27:12 -08:00
Stephen MorrisandEvan Hunt 9b9a387f15 [rt46602] Check prerequsities before network interfaces when running test.
(cherry picked from commit 549a6c6bc8)
(cherry picked from commit 0afcdf658d)
(cherry picked from commit 6dd8c2ab08)
2018-02-25 09:27:12 -08:00
Stephen MorrisandEvan Hunt 73d62eca87 [rt46602] Minor formatting changes to Perl files
(cherry picked from commit f0f5b5f045)
(cherry picked from commit 5fc5b514e4)
(cherry picked from commit 09e1b5e143)
2018-02-25 09:27:09 -08:00
Stephen MorrisandEvan Hunt 3234ad4c63 [rt46603] Provide echostart() and echoend() to output test start/end messages.
(cherry picked from commit c344e1d768)
(cherry picked from commit 88081b765e)
(cherry picked from commit dc0078e03b)
2018-02-25 09:26:35 -08:00
Stephen MorrisandEvan Hunt fad413366a [rt46602] Ensure test output in systests.output is not mixed up
When running all the system tests, output from a test is sent to a
test.output file in the test directory.  These are combined in to
systests.output when the run finishes.

(cherry picked from commit 055e5be9fd)
(cherry picked from commit 50769a4a9e)
(cherry picked from commit 818ac05cfc)
2018-02-25 09:26:32 -08:00
Stephen MorrisandEvan Hunt 2e36ec8950 [rt46602] Miscellaneous minor fixes
... for misspellings, typos, trailing spaces, duplicated lines etc.

(cherry picked from commit 3c25e5fa02)
(cherry picked from commit 0e2e251a0d)
(cherry picked from commit f55e2791fc)
2018-02-25 09:26:23 -08:00
Stephen MorrisandEvan Hunt e553b00a8b [rt46602] Allocate 100 ports to each test
(cherry picked from commit edc7a18d84)
(cherry picked from commit 61514873e9)
(cherry picked from commit 21e33308d1)
2018-02-25 09:26:23 -08:00
Stephen MorrisandEvan Hunt ee59ba17b2 [rt46602] Pass port numbers to tests via environment variables
(cherry picked from commit f5d8f07900)
(cherry picked from commit f10b6cfeb6)
(cherry picked from commit 73d3527931)
2018-02-25 09:26:20 -08:00
Stephen MorrisandEvan Hunt d702992d06 [rt46602] Ensure parallel tests are in alphabetical order
(cherry picked from commit b2d90da0c2)
(cherry picked from commit bf2992dbe6)
(cherry picked from commit 3ddf401b1b)
2018-02-25 09:25:42 -08:00
Stephen MorrisandEvan Hunt ce03881a4a [rt46602] Expanded system tests README
Add more information on running the tests, together with a section
on how the tests are organised, aimed at new developers.

(cherry picked from commit af005cdbcf)
(cherry picked from commit 3952d4631e)
(cherry picked from commit 67f135c1d0)
2018-02-25 09:25:40 -08:00
Stephen MorrisandEvan Hunt becd4cd050 [rt46602] More updates to the test running framework
Tidy up the stop/start files and make switch usage consistent. Also
tidy up the various "clean" targets in the Makefile.

(cherry picked from commit b24c2e11d8)
(cherry picked from commit 78494c3a4d)
(cherry picked from commit 28c2b0be93)
2018-02-25 09:25:09 -08:00
Stephen MorrisandEvan Hunt 00ef25535b [rt46602] Modify some test files to cope with the "-p" flag
(cherry picked from commit 517d990bd4)
(cherry picked from commit b01b553d72)
(cherry picked from commit ca76477b36)
2018-02-25 09:22:30 -08:00
Stephen MorrisandEvan Hunt 320d22fa45 [rt46602] Tidy up run management
Miscellaneous tidying up of run management.  The most significant
change is that "runall.sh" now runs _all_ the tests, even the
ones that can run in parallel.  runsequential.sh is the script
to run tests that have not been converted to parallel running.

(cherry picked from commit 32fe6f7682)
(cherry picked from commit a49afdaeb8)
(cherry picked from commit dec6d02f28)
2018-02-25 09:22:30 -08:00
Stephen MorrisandEvan Hunt 679bc83b07 [rt46602] Assign block of ports for each test
Some tests use more ports than just the query and control ports.
Each test that can run in parallel with other tests is now assigned
a unique block of 10 ports.

(cherry picked from commit e0ff77f9d3)
(cherry picked from commit df1348ad2b)
(cherry picked from commit c64af8abe5)
2018-02-25 09:22:30 -08:00