Adding test case type RUNNER_MULTIPROCESS_TEST.
authorMarcin Niesluchowski <m.niesluchow@samsung.com>
Tue, 13 Aug 2013 10:36:19 +0000 (12:36 +0200)
committerGerrit Code Review <gerrit@gerrit.vlan144.tizendev.org>
Sat, 31 Aug 2013 08:21:49 +0000 (08:21 +0000)
commit40fee45db1e1c06cb4a1cba0886faf3182129bdd
tree29e054447d65c1c7f6191dbe5010b66ebe5bbe79
parent9681dcfc40762202ade0948327b1b439b10f1080
Adding test case type RUNNER_MULTIPROCESS_TEST.

Running many processes in one test case would work fine on those rules.
* Using wait(), waitpid(), waitid() functions within test case body is forbidden
(waiting for child processes is handeled by framework).
* Process exiting properly should exit only 0.
* Communication by signals is forbidden - signals could be cought by parent and
  ignored.

Tests also provided. To run them build this flags below and run them as
wrt-commons-tests-test --output=text --runignored .
  flags:  --define "WITH_TESTS ON" --define "WITH_CHILD ON"
All tests from DPL_TESTS_TEST_MULTIPROCESS group should pass.

[Issue#]        SSDWSSP-438
[Bug/Feature]   Calling fork() inside RUNNER_TEST causes errors for whole process
                group while failed or ignored. Additional path for each redundant
                failed process is created.
[Cause]         N/A
[Solution]      Creating test case type controlling processes.
[Verification]  Applying it to failing multiprocess tests. All errors should
                be collected as one and no additional process should run after
                test case ends.

Change-Id: I371528de102def369107cab3c5cffe0b2f53e9e5
modules/test/config.cmake
modules/test/include/dpl/test/test_runner_child.h
modules/test/include/dpl/test/test_runner_multiprocess.h [new file with mode: 0644]
modules/test/src/test_runner_child.cpp
modules/test/src/test_runner_multiprocess.cpp [new file with mode: 0644]
tests/test/CMakeLists.txt
tests/test/runner_multiprocess.cpp [new file with mode: 0644]