Skip to content

Commit e6e7344

Browse files
authored
Infra: fix regression in unit tests when executed directly on terminal console (#2169)
1 parent d95fa93 commit e6e7344

File tree

2 files changed

+25
-8
lines changed

2 files changed

+25
-8
lines changed

silkworm/infra/common/log_test.cpp

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -135,14 +135,16 @@ TEST_CASE("LogBuffer", "[silkworm][common][log]") {
135135
}
136136

137137
SECTION("Settings disables colorized output depending on TTY") {
138+
const bool is_terminal = is_terminal_stdout() && is_terminal_stderr();
139+
138140
// Default output is NOT colorized on non-TTY terminal
139141
LogBuffer_ForTest<Level::kInfo>{"test0", {"key1", "value1", "key2", "value2"}}; // temporary log object, flush on dtor
140142
const auto cerr_output0{string_cerr.str()};
141143
CHECK(absl::StrContains(cerr_output0, "test0"));
142-
CHECK(absl::StrContains(cerr_output0, key_value("key1", "value1")));
143-
CHECK(absl::StrContains(cerr_output0, key_value("key2", "value2")));
144-
CHECK(!absl::StrContains(cerr_output0, prettified_key_value("key1", "value1")));
145-
CHECK(!absl::StrContains(cerr_output0, prettified_key_value("key2", "value2")));
144+
CHECK(absl::StrContains(cerr_output0, key_value("key1", "value1")) == !is_terminal);
145+
CHECK(absl::StrContains(cerr_output0, key_value("key2", "value2")) == !is_terminal);
146+
CHECK(absl::StrContains(cerr_output0, prettified_key_value("key1", "value1")) == is_terminal);
147+
CHECK(absl::StrContains(cerr_output0, prettified_key_value("key2", "value2")) == is_terminal);
146148

147149
// Reset cerr replacement stream
148150
string_cerr.str("");
@@ -156,10 +158,10 @@ TEST_CASE("LogBuffer", "[silkworm][common][log]") {
156158
LogBuffer_ForTest<Level::kInfo>{"test2", {"key3", "value3", "key4", "value4"}}; // temporary log object, flush on dtor
157159
const auto cerr_output2{string_cerr.str()};
158160
CHECK(absl::StrContains(cerr_output2, "test2"));
159-
CHECK(absl::StrContains(cerr_output2, key_value("key3", "value3")));
160-
CHECK(absl::StrContains(cerr_output2, key_value("key4", "value4")));
161-
CHECK(!absl::StrContains(cerr_output2, prettified_key_value("key3", "value3")));
162-
CHECK(!absl::StrContains(cerr_output2, prettified_key_value("key4", "value4")));
161+
CHECK(absl::StrContains(cerr_output2, key_value("key3", "value3")) == !is_terminal);
162+
CHECK(absl::StrContains(cerr_output2, key_value("key4", "value4")) == !is_terminal);
163+
CHECK(absl::StrContains(cerr_output2, prettified_key_value("key3", "value3")) == is_terminal);
164+
CHECK(absl::StrContains(cerr_output2, prettified_key_value("key4", "value4")) == is_terminal);
163165
}
164166

165167
SECTION("Settings disable colorized output if log file present") {

silkworm/infra/concurrency/context_pool_test.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,21 @@ TEST_CASE("ContextPool", "[silkworm][concurrency][Context]") {
146146
context_pool.stop();
147147
CHECK_NOTHROW(context_pool.join());
148148
}
149+
150+
SECTION("stop/start w/o contexts") {
151+
ContextPool context_pool{2};
152+
REQUIRE(context_pool.num_contexts() == 0);
153+
CHECK_NOTHROW(context_pool.stop());
154+
CHECK_NOTHROW(context_pool.start());
155+
}
156+
157+
SECTION("stop/start w/ contexts") {
158+
ContextPool context_pool{2};
159+
context_pool.add_context(Context{0, WaitMode::blocking});
160+
context_pool.add_context(Context{1, WaitMode::blocking});
161+
CHECK_NOTHROW(context_pool.stop());
162+
CHECK_NOTHROW(context_pool.start());
163+
}
149164
}
150165
#endif // SILKWORM_SANITIZE
151166

0 commit comments

Comments
 (0)