From a95a22017523229bb8924afbd928d3e16b564fa5 Mon Sep 17 00:00:00 2001
From: Siri Hansen
Date: Wed, 25 Jan 2017 11:24:58 +0100
Subject: [ct] Add Suite argument to hook callback functions
An extra argument, Suite, is added as the first argument to each of
the following hook callback functions:
- pre_init_per_group
- post_init_per_group
- pre_end_per_group
- post_end_per_group
- pre_init_per_testcase
- post_init_per_testcase
- pre_end_per_testcase
- post_end_per_testcase
- on_tc_fail
- on_tc_skip
For backwards compatibility, if the new function is not exported from
a hook callback module, common_test will fall back to the old
interface and call the function without the Suite argument.
The reason for adding the new argument is that if a test suite is
skipped by a 'skip_suites' statement in the test specification, then
there will be no call to pre/post_init_per_suite, and thus the hook
has no other way of knowing which Suite is skipped when it gets the
on_tc_skip callback. The other callbacks are updated for symmetry.
---
lib/common_test/doc/src/ct_hooks.xml | 90 ++++++++++++++++++++++++++++++------
1 file changed, 75 insertions(+), 15 deletions(-)
(limited to 'lib/common_test/doc/src/ct_hooks.xml')
diff --git a/lib/common_test/doc/src/ct_hooks.xml b/lib/common_test/doc/src/ct_hooks.xml
index c2cf29c530..a085f30262 100644
--- a/lib/common_test/doc/src/ct_hooks.xml
+++ b/lib/common_test/doc/src/ct_hooks.xml
@@ -208,9 +208,10 @@
- Module:pre_init_per_group(GroupName, InitData, CTHState) -> Result
+ Module:pre_init_per_group(SuiteName, GroupName, InitData, CTHState) -> Result
Called before init_per_group.
+ SuiteName = atom()
GroupName = atom()
InitData = Config | SkipOrFail
Config = NewConfig = [{Key,Value}]
@@ -231,13 +232,19 @@
but for function
init_per_group
instead.
+
+ If Module:pre_init_per_group/4 is not exported, common_test
+ will attempt to call Module:pre_init_per_group(GroupName,
+ InitData, CTHState) instead. This is for backwards
+ compatibility.
- Module:post_init_per_group(GroupName, Config, Return, CTHState) -> Result
+ Module:post_init_per_group(SuiteName, GroupName, Config, Return, CTHState) -> Result
Called after init_per_group.
+ SuiteName = atom()
GroupName = atom()
Config = [{Key,Value}]
Return = NewReturn = Config | SkipOrFail | term()
@@ -258,13 +265,19 @@
but for function
init_per_group
instead.
+
+ If Module:post_init_per_group/5 is not exported, common_test
+ will attempt to call Module:post_init_per_group(GroupName,
+ Config, Return, CTHState) instead. This is for backwards
+ compatibility.
- Module:pre_init_per_testcase(TestcaseName, InitData, CTHState) -> Result
+ Module:pre_init_per_testcase(SuiteName, TestcaseName, InitData, CTHState) -> Result
Called before init_per_testcase.
+ SuiteName = atom()
TestcaseName = atom()
InitData = Config | SkipOrFail
Config = NewConfig = [{Key,Value}]
@@ -286,6 +299,11 @@
init_per_testcase
instead.
+ If Module:pre_init_per_testcase/4 is not exported, common_test
+ will attempt to call Module:pre_init_per_testcase(TestcaseName,
+ InitData, CTHState) instead. This is for backwards
+ compatibility.
+
CTHs cannot be added here right now. That feature may be added in
a later release, but it would right now break backwards
compatibility.
@@ -293,9 +311,10 @@
- Module:post_init_per_testcase(TestcaseName, Config, Return, CTHState) -> Result
+ Module:post_init_per_testcase(SuiteName, TestcaseName, Config, Return, CTHState) -> Result
Called after init_per_testcase.
+ SuiteName = atom()
TestcaseName = atom()
Config = [{Key,Value}]
Return = NewReturn = Config | SkipOrFail | term()
@@ -316,15 +335,21 @@
but for function
init_per_testcase
instead.
+
+ If Module:post_init_per_testcase/5 is not exported, common_test
+ will attempt to call Module:post_init_per_testcase(TestcaseName,
+ Config, Return, CTHState) instead. This is for backwards
+ compatibility.
- Module:pre_end_per_testcase(TestcaseName, InitData, CTHState) -> Result
+ Module:pre_end_per_testcase(SuiteName, TestcaseName, EndData, CTHState) -> Result
Called before end_per_testcase.
+ SuiteName = atom()
TestcaseName = atom()
- InitData = Config
+ EndData = Config
Config = NewConfig = [{Key,Value}]
CTHState = NewCTHState = term()
Result = {NewConfig, NewCTHState}
@@ -345,14 +370,20 @@
This function can not change the result of the test case by returning skip or fail
tuples, but it may insert items in Config that can be read in
- end_per_testcase/2 or in post_end_per_testcase/4.
+ end_per_testcase/2 or in post_end_per_testcase/5.
+
+ If Module:pre_end_per_testcase/4 is not exported, common_test
+ will attempt to call Module:pre_end_per_testcase(TestcaseName,
+ EndData, CTHState) instead. This is for backwards
+ compatibility.
- Module:post_end_per_testcase(TestcaseName, Config, Return, CTHState) -> Result
+ Module:post_end_per_testcase(SuiteName, TestcaseName, Config, Return, CTHState) -> Result
Called after end_per_testcase.
+ SuiteName = atom()
TestcaseName = atom()
Config = [{Key,Value}]
Return = NewReturn = Config | SkipOrFail | term()
@@ -373,13 +404,19 @@
but for function
end_per_testcase
instead.
+
+ If Module:post_end_per_testcase/5 is not exported, common_test
+ will attempt to call Module:post_end_per_testcase(TestcaseName,
+ Config, Return, CTHState) instead. This is for backwards
+ compatibility.
- Module:pre_end_per_group(GroupName, EndData, CTHState) -> Result
+ Module:pre_end_per_group(SuiteName, GroupName, EndData, CTHState) -> Result
Called before end_per_group.
+ SuiteName = atom()
GroupName = atom()
EndData = Config | SkipOrFail
Config = NewConfig = [{Key,Value}]
@@ -400,13 +437,19 @@
but for function
end_per_group
instead.
+
+ If Module:pre_end_per_group/4 is not exported, common_test
+ will attempt to call Module:pre_end_per_group(GroupName,
+ EndData, CTHState) instead. This is for backwards
+ compatibility.
- Module:post_end_per_group(GroupName, Config, Return, CTHState) -> Result
+ Module:post_end_per_group(SuiteName, GroupName, Config, Return, CTHState) -> Result
Called after end_per_group.
+ SuiteName = atom()
GroupName = atom()
Config = [{Key,Value}]
Return = NewReturn = Config | SkipOrFail | term()
@@ -427,6 +470,11 @@
but for function
end_per_group
instead.
+
+ If Module:post_end_per_group/5 is not exported, common_test
+ will attempt to call Module:post_end_per_group(GroupName,
+ Config, Return, CTHState) instead. This is for backwards
+ compatibility.
@@ -485,9 +533,10 @@
- Module:on_tc_fail(TestName, Reason, CTHState) -> NewCTHState
+ Module:on_tc_fail(SuiteName, TestName, Reason, CTHState) -> NewCTHState
Called after the CTH scope ends.
+ SuiteName = atom()
TestName = init_per_suite | end_per_suite | {init_per_group,GroupName} | {end_per_group,GroupName} | {FuncName,GroupName} | FuncName
FuncName = atom()
GroupName = atom()
@@ -505,7 +554,7 @@
If init_per_suite fails, this function is called after
post_init_per_suite.
If a test case fails, this funcion is called after
- post_end_per_testcase.
+ post_end_per_testcase.
If the failed test case belongs to a test case group, the first
@@ -519,13 +568,19 @@
For details, see section
Event Handling
in the User's Guide.
+
+ If Module:on_tc_fail/4 is not exported, common_test
+ will attempt to call Module:on_tc_fail(TestName, Reason,
+ CTHState) instead. This is for backwards
+ compatibility.
- Module:on_tc_skip(TestName, Reason, CTHState) -> NewCTHState
+ Module:on_tc_skip(SuiteName, TestName, Reason, CTHState) -> NewCTHState
Called after the CTH scope ends.
+ SuiteName = atom()
TestName = init_per_suite | end_per_suite | {init_per_group,GroupName} | {end_per_group,GroupName} | {FuncName,GroupName} | FuncName
FuncName = atom()
GroupName = atom()
@@ -542,9 +597,9 @@
If init_per_group is skipped, this function is
called after
- post_init_per_group.
+ post_init_per_group.
If a test case is skipped, this function is called after
- post_end_per_testcase.
+ post_end_per_testcase.
If the skipped test case belongs to a test case group, the first
@@ -559,6 +614,11 @@
For details, see section
Event Handling
in the User's Guide.
+
+ If Module:on_tc_skip/4 is not exported, common_test
+ will attempt to call Module:on_tc_skip(TestName, Reason,
+ CTHState) instead. This is for backwards
+ compatibility.
--
cgit v1.2.3