@@ -62,29 +62,34 @@ SCENARIO_METHOD(ParameterFramework, "No Logger", "[log]")
6262 }
6363}
6464
65- SCENARIO_METHOD (WarningPF, " Logger should receive info and warnings" , " [log]" )
65+ SCENARIO ( " Logger should receive info and warnings" , " [log]" )
6666{
67- GIVEN (" Config files that emit warnings" ) {
68- GIVEN (" A logger that stores logs" ) {
69- StoreLogger logger{};
70- WHEN (" The record logger is set" ) {
71- setLogger (&logger);
72- THEN (" Start should succeed" ) {
73- REQUIRE_NOTHROW (start ());
74- AND_THEN (" The logger should have stored info and warning log" ) {
75- using Logs = StoreLogger::Logs;
76- using Level = StoreLogger::Log::Level;
77- CHECK (logger.filter (Level::warning) != Logs{});
78- CHECK (logger.getLogs () != Logs{});
79- }
80- }
81- AND_WHEN (" A nullptr logger is set" ) {
82- setLogger (nullptr );
67+ GIVEN (" A logger that stores logs" ) {
68+ /* Instantiating logger first to ensure that its lifetime is longer than the pfw's one,
69+ * because the pfw references the logger. */
70+ StoreLogger logger{};
71+ GIVEN (" A parameter framework" ) {
72+ WarningPF pfw;
73+ GIVEN (" Config files that emit warnings" ) {
74+ WHEN (" The record logger is set" ) {
75+ pfw.setLogger (&logger);
8376 THEN (" Start should succeed" ) {
84- REQUIRE_NOTHROW (start ());
85- AND_THEN (
86- " The record logger should NOT have stored any info or warning log" ) {
87- CHECK (logger.getLogs () == StoreLogger::Logs{});
77+ REQUIRE_NOTHROW (pfw.start ());
78+ AND_THEN (" The logger should have stored info and warning log" ) {
79+ using Logs = StoreLogger::Logs;
80+ using Level = StoreLogger::Log::Level;
81+ CHECK (logger.filter (Level::warning) != Logs{});
82+ CHECK (logger.getLogs () != Logs{});
83+ }
84+ }
85+ AND_WHEN (" A nullptr logger is set" ) {
86+ pfw.setLogger (nullptr );
87+ THEN (" Start should succeed" ) {
88+ REQUIRE_NOTHROW (pfw.start ());
89+ AND_THEN (" The record logger should NOT have stored any info or "
90+ " warning log" ) {
91+ CHECK (logger.getLogs () == StoreLogger::Logs{});
92+ }
8893 }
8994 }
9095 }
0 commit comments