diff options
author | George Joseph <gjoseph@digium.com> | 2017-05-24 14:50:56 -0600 |
---|---|---|
committer | George Joseph <gjoseph@digium.com> | 2017-05-24 15:58:18 -0500 |
commit | 08edd54c1b11ec35bfa988bf9d3115e6ae9a94f3 (patch) | |
tree | 1d429d967a3cd0a7a1598a865c484e51fe987348 /tests | |
parent | 2e7866ebb7773fdd4f67e80f3747e41d84bcb93b (diff) |
unittests: Add a unit test that causes a SEGV and...
...that can only be run by explicitly calling it with
'test execute category /DO_NOT_RUN/ name RAISE_SEGV'
This allows us to more easily test CI and debugging tools that
should do certain things when asterisk coredumps.
To allow this a new member was added to the ast_test_info
structure named 'explicit_only'. If set by a test, the test
will be skipped during a 'test execute all' or
'test execute category ...'.
Change-Id: Ia3a11856aae4887df9a02b6b081cc777b36eb6ed
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_pbx.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/tests/test_pbx.c b/tests/test_pbx.c index 576fe1fb8..00fa41130 100644 --- a/tests/test_pbx.c +++ b/tests/test_pbx.c @@ -321,8 +321,29 @@ cleanup: return res; } +AST_TEST_DEFINE(segv) +{ + switch (cmd) { + case TEST_INIT: + info->name = "RAISE_SEGV"; + info->category = "/DO_NOT_RUN/"; + info->summary = "RAISES SEGV!!! (will only be run if explicitly called)"; + info->description = "RAISES SEGV!!! (will only be run if explicitly called). " + "This test is mainly used for testing CI and tool failure scenarios."; + info->explicit_only = 1; + return AST_TEST_NOT_RUN; + case TEST_EXECUTE: + break; + } + + raise(SIGSEGV); + + return AST_TEST_FAIL; +} + static int unload_module(void) { + AST_TEST_UNREGISTER(segv); AST_TEST_UNREGISTER(pattern_match_test); return 0; } @@ -330,6 +351,7 @@ static int unload_module(void) static int load_module(void) { AST_TEST_REGISTER(pattern_match_test); + AST_TEST_REGISTER(segv); return AST_MODULE_LOAD_SUCCESS; } |