From c802f5d8d0ea08154005abfdcb0d958f126f26d1 Mon Sep 17 00:00:00 2001
From: Siri Hansen
Date: Thu, 16 Feb 2017 15:36:07 +0100
Subject: [ct] Fix hooks and fail when one of init/end_per_* does not exit
The following bugs are corrected:
- if init_per_suite is exported from a test suite, but not
end_per_suite, then pre/post_end_per_suite will be called with
Suite=ct_framework instead of the correct suite name.
- if end_per_group is exported from a suite, but not init_per_group,
then end_per_group is never called.
According to the documentation, if implementing an init config
function, you must also implement the end config function, so the two
scenarios above are really not allowed. To make this more visible,
common_test will now mark the non-exported config function as failed
with reason 'undef' if the other function is exported.
For example, if init_per_suite is exported, but not end_per_suite,
then end_per_suite will be marked as failed with reason undef. (If
none of them exist, then they will both be marked as passed since the
default functions in ct_framework are called instead.)
All hook functions are always called with the correct suite name,
i.e. never with Suite=ct_framework.
Conflicts:
lib/common_test/test/ct_hooks_SUITE.erl
---
lib/common_test/doc/src/write_test_chapter.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'lib/common_test/doc/src/write_test_chapter.xml')
diff --git a/lib/common_test/doc/src/write_test_chapter.xml b/lib/common_test/doc/src/write_test_chapter.xml
index f70bdb16c5..6a0d87bcaf 100644
--- a/lib/common_test/doc/src/write_test_chapter.xml
+++ b/lib/common_test/doc/src/write_test_chapter.xml
@@ -566,7 +566,7 @@
for the test cases in the group. After execution of the group is finished, function
end_per_group(GroupName, Config)
is called. This function is meant to be used for cleaning up after
- init_per_group/2.
+ init_per_group/2. If the init function is defined, so must the end function be.
Whenever a group is executed, if init_per_group and
end_per_group do not exist in the suite, Common Test calls
--
cgit v1.2.3