1-module(cth_readable_nosasl). 2 3%% Callbacks 4-export([id/1]). 5-export([init/2]). 6 7-export([pre_init_per_suite/3]). 8-export([post_init_per_suite/4]). 9-export([pre_end_per_suite/3]). 10-export([post_end_per_suite/4]). 11 12-export([pre_init_per_group/3]). 13-export([post_init_per_group/4]). 14-export([pre_end_per_group/3]). 15-export([post_end_per_group/4]). 16 17-export([pre_init_per_testcase/3]). 18-export([post_end_per_testcase/4]). 19 20-export([on_tc_fail/3]). 21-export([on_tc_skip/3, on_tc_skip/4]). 22 23-export([terminate/1]). 24 25%% @doc Return a unique id for this CTH. 26id(_Opts) -> 27 {?MODULE, make_ref()}. 28 29%% @doc Always called before any other callback function. Use this to initiate 30%% any common state. 31init(_Id, _Opts) -> 32 application:load(sasl), % TODO do this optionally? 33 Res = application:get_env(sasl, sasl_error_logger), 34 application:set_env(sasl, sasl_error_logger, false), 35 {ok, Res}. 36 37%% @doc Called before init_per_suite is called. 38pre_init_per_suite(_Suite,Config,State) -> 39 {Config, State}. 40 41%% @doc Called after init_per_suite. 42post_init_per_suite(_Suite,_Config,Return,State) -> 43 {Return, State}. 44 45%% @doc Called before end_per_suite. 46pre_end_per_suite(_Suite,Config,State) -> 47 {Config, State}. 48 49%% @doc Called after end_per_suite. 50post_end_per_suite(_Suite,_Config,Return,State) -> 51 {Return, State}. 52 53%% @doc Called before each init_per_group. 54pre_init_per_group(_Group,Config,State) -> 55 {Config, State}. 56 57%% @doc Called after each init_per_group. 58post_init_per_group(_Group,_Config,Return,State) -> 59 {Return, State}. 60 61%% @doc Called after each end_per_group. 62pre_end_per_group(_Group,Config,State) -> 63 {Config, State}. 64 65%% @doc Called after each end_per_group. 66post_end_per_group(_Group,_Config,Return,State) -> 67 {Return, State}. 68 69%% @doc Called before each test case. 70pre_init_per_testcase(_TC,Config,State) -> 71 {Config, State}. 72 73%% @doc Called after each test case. 74post_end_per_testcase(_TC,_Config,Error,State) -> 75 {Error, State}. 76 77%% @doc Called after post_init_per_suite, post_end_per_suite, post_init_per_group, 78%% post_end_per_group and post_end_per_testcase if the suite, group or test case failed. 79on_tc_fail(_TC, _Reason, State) -> 80 State. 81 82%% @doc Called when a test case is skipped by either user action 83%% or due to an init function failing. (>= 19.3) 84on_tc_skip(_Suite, _TC, _Reason, State) -> 85 State. 86%% @doc Called when a test case is skipped by either user action 87%% or due to an init function failing. (Pre-19.3) 88on_tc_skip(_TC, _Reason, State) -> 89 State. 90 91%% @doc Called when the scope of the CTH is done 92terminate(Env) -> 93 case Env of 94 {ok, Val} -> 95 application:set_env(sasl, sasl_error_logger, Val); 96 undefined -> 97 application:unset_env(sasl, sasl_error_logger) 98 end, 99 application:unload(sasl), % silently fails if running 100 ok. 101