Introduce test_server_io and test_server_gl
Eliminate unexpected I/O to the minor log file
Introduce ct_group_leader_SUITE that does nasty things with group leaders
Test ct:capture/start/stop/get
Merge branch 'sverk/valgrind-quoting'

* sverk/valgrind-quoting:
  Make cerl -valgrind work with quoted spaces in command line
Merge branch 'maint'

Conflicts:
	erts/etc/common/heart.c
test_server tests: Be kind to Windows by using shorter pathnames

The pathnames gets too long for Windows if we use priv_dir as working
directory for the test_server tests in the slave node. Use data_dir
instead. Revert this commit when the run-time system can handle long
pathnames on Windows.
[test_server] Set data_dir correctly when suite is cover compiled

If the test suite itself was included in code coverage analysis, then
test_server_ctrl would not manage to set data_dir correctly for the
test, since it relied on the result of code:which(Suite). This has
been corrected.
Merge branch 'siri/test_server/faulty-data_dir-when-cover/OTP-9956'

* siri/test_server/faulty-data_dir-when-cover/OTP-9956:
  [test_server] Set data_dir correctly when suite is cover compiled
Merge branch 'bjorn/ct/separate-io-server/OTP-10101'

* bjorn/ct/separate-io-server/OTP-10101:
  Test ct:capture/start/stop/get
  Introduce ct_group_leader_SUITE that does nasty things with group leaders
  Eliminate unexpected I/O to the minor log file
  Introduce test_server_io and test_server_gl
  Clean up initialization of parallel test cases
  Introduce is_io_buffered/0 to somewhat improve readability
  test_server_ctrl: Consistently use set_io_buffering/1
Merge branch 'bjorn/erts/beam_makeops'

* bjorn/erts/beam_makeops:
  beam_makeops: Turn on warnings and eliminate existing warnings
  beam_makeops: Eliminate a deprecation warning
Merge branch 'bjorn/test_server/test-cases'

* bjorn/test_server/test-cases:
  test_server tests: Be kind to Windows by using shorter pathnames
Merge branch 'bjorn/compiler/test-cases'

* bjorn/compiler/test-cases:
  Correct typo in test suite name
  compiler: Run testcases in parallel
test_server: Refactor run_test_case_msgloop()

Keeping all state as separate function arguments does not make it
easy to add more pieces of data to the state. Case in point is the
CurrConf argument where up to three separate items have been
shoehorned in.

Instead of the arguments, introduce a state record to hold all of the
different pieces of state (taking care to separate the former CurrConf
variable into separate fields in the record).

While at it, fix a bug. The name of the currently executing test
case (module and function) used to be stored in a tuple in the CurrConf
variable, and it would only be available after 'set_curr_conf' message
has been received. Depending on timing, it was possible in rare
circumstances for an EXIT signal to arrive before the 'set_curr_conf'
message. Avoid this problem by putting the current test case
name into the record from the beginning. That also means that we
can eliminate the workaround of getting the currently executing test case
from the stack trace using the get_mf/1.
Refactor the handling of the make_priv_dir message

The code is not actually shorter, but it avoids duplicating the code
for producing an error tuple when theres is no priv_dir tuple in
the config data.
test_server: Eliminate the Loc argument for do_end_tc_call()

The Loc argument was use to determine the name of the currently
executing test case, in case that the M and F arguments did not
specify a test case.

Since a previous commit makes sure that the M and F arguments *are*
valied, we can eliminate the Loc argument.
Keep the information about the current test case consistent

Three pieces of information could be out of sync in testcase
supervisor process at the time when a timetrap occurred:

* test_server_loc (process dictionary) - may indicate that a
  framework function is executing

* test_server_init_or_end_conf (process dictionary) - indicates whether
  init_per_testcase or end_per_testcase is executing

* The current configuration (#st.config) - set using a synchronous
  call

There could be in a crash in spawn_fw_call/7 because the current
configuration was not defined when it was expected to.

To avoid the problem, introduce set_tc_state/2 (and a corresponding
message) to allow setting both an indication what the testcase is
executing (e.g. init_per_testcase, framework call, and so on), and
the current configuration. Use only that information to handle
a timetrap timeout (and aborted testcase and the other reasons
for the testcase process to terminate). Completely remove
test_server_init_or_end_conf.
Simplify managment of test_server_loc

Before line numbers were included in exceptions (in R15), there were
parse transforms and macros that would keep the test_server_loc
process dictionary variable updated; therefore there is a mod_loc/1
function that will normalize the representation of locations.

Simplify the code as following:

* 'test_server_loc' should always contain a list with one or more
  tuples. ({M,F} or {M,F,Line})

* At the beginning of each test case, set 'test_server_loc' to
  [{Module,Func}] of the the currently executing test case.

* Stop updating 'test_server_loc', except when an exception occurs.
  (It used to be updated when running 'init_per_testcase' and so on.)

* Remove the mod_loc/1 function.
common_test: Enable running cover on common_test
Remove runtime warning in snmpa_agent because of tuple fun usage