fix: build now succeded. Added logging capabilities also
This commit is contained in:
@@ -14,10 +14,14 @@ TEST(ProducerTest, ProducerCallsBackWhenEnabled)
|
||||
}
|
||||
// create a fake callback function
|
||||
std::vector<int> outputs;
|
||||
std::vector<std::string> logs;
|
||||
|
||||
// construct a producer with fake file and callback
|
||||
Producer producer{"fake_sysfs_input", [&outputs](int value)
|
||||
{ outputs.push_back(value); }, []() { return 42; }};
|
||||
Producer producer{"fake_sysfs_input",
|
||||
[&outputs](int value) { outputs.push_back(value); },
|
||||
[]() { return 42; },
|
||||
[&logs](const std::string& msg) { logs.push_back(msg); },
|
||||
[](std::chrono::milliseconds) {}};
|
||||
// Act: initialize producer and stop it.
|
||||
producer.start();
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(1)); // ← 1ms window
|
||||
@@ -26,6 +30,7 @@ TEST(ProducerTest, ProducerCallsBackWhenEnabled)
|
||||
// Assert: we expect one output being 42
|
||||
ASSERT_EQ(outputs.size(), 1u);
|
||||
EXPECT_EQ(outputs[0], 42);
|
||||
EXPECT_NE(logs[0].find("Enabled"), std::string::npos);
|
||||
}
|
||||
|
||||
TEST(ProducerTest, ProducerDoesNotCallWhenUnexpectedValue)
|
||||
@@ -37,10 +42,13 @@ TEST(ProducerTest, ProducerDoesNotCallWhenUnexpectedValue)
|
||||
}
|
||||
|
||||
std::vector<int> outputs;
|
||||
std::vector<std::string> logs;
|
||||
|
||||
Producer producer{"fake_sysfs_input",
|
||||
[&outputs](int value) { outputs.push_back(value); },
|
||||
[]() { return 42; }, [](std::chrono::milliseconds) {}};
|
||||
[]() { return 42; },
|
||||
[&logs](const std::string& msg) { logs.push_back(msg); },
|
||||
[](std::chrono::milliseconds) {}};
|
||||
|
||||
producer.start();
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(1)); // ← 1ms window
|
||||
@@ -48,6 +56,7 @@ TEST(ProducerTest, ProducerDoesNotCallWhenUnexpectedValue)
|
||||
|
||||
// Assert: we expect no output
|
||||
EXPECT_TRUE(outputs.empty());
|
||||
EXPECT_NE(logs[0].find("UnexpectedValue"), std::string::npos);
|
||||
}
|
||||
|
||||
TEST(ProducerTest, ProducerDoesNotCallWhenEmpty)
|
||||
@@ -59,16 +68,20 @@ TEST(ProducerTest, ProducerDoesNotCallWhenEmpty)
|
||||
}
|
||||
|
||||
std::vector<int> outputs;
|
||||
std::vector<std::string> logs;
|
||||
|
||||
Producer producer{"fake_sysfs_input",
|
||||
[&outputs](int value) { outputs.push_back(value); },
|
||||
[]() { return 42; }, [](std::chrono::milliseconds) {}};
|
||||
[]() { return 42; },
|
||||
[&logs](const std::string& msg) { logs.push_back(msg); },
|
||||
[](std::chrono::milliseconds) {}};
|
||||
|
||||
producer.start();
|
||||
producer.stop();
|
||||
|
||||
// Assert: we expect no output
|
||||
EXPECT_TRUE(outputs.empty());
|
||||
EXPECT_NE(logs[0].find("Empty"), std::string::npos);
|
||||
}
|
||||
|
||||
TEST(ProducerTest, ProducerDoesNotCallWhenUnreachable)
|
||||
@@ -78,7 +91,9 @@ TEST(ProducerTest, ProducerDoesNotCallWhenUnreachable)
|
||||
|
||||
Producer producer{"nonexistant_sysfs_input",
|
||||
[&outputs](int value) { outputs.push_back(value); },
|
||||
[]() { return 42; }, [](std::chrono::milliseconds) {}};
|
||||
[]() { return 42; },
|
||||
[&logs](const std::string& msg) { logs.push_back(msg); },
|
||||
[](std::chrono::milliseconds) {}};
|
||||
|
||||
producer.start();
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(1)); // ← 1ms window
|
||||
@@ -86,6 +101,7 @@ TEST(ProducerTest, ProducerDoesNotCallWhenUnreachable)
|
||||
|
||||
// Assert: we expect no output
|
||||
EXPECT_TRUE(outputs.empty());
|
||||
EXPECT_NE(logs[0].find("Unreachable"), std::string::npos);
|
||||
}
|
||||
|
||||
TEST(ProducerTest, ProducerDoesNotCallWhenTempTooHigh)
|
||||
@@ -96,10 +112,13 @@ TEST(ProducerTest, ProducerDoesNotCallWhenTempTooHigh)
|
||||
out << "error: temp too high";
|
||||
}
|
||||
std::vector<int> outputs;
|
||||
std::vector<std::string> logs;
|
||||
|
||||
Producer producer{"fake_sysfs_input",
|
||||
[&outputs](int value) { outputs.push_back(value); },
|
||||
[]() { return 42; }, [](std::chrono::milliseconds) {}};
|
||||
[]() { return 42; },
|
||||
[&logs](const std::string& msg) { logs.push_back(msg); },
|
||||
[](std::chrono::milliseconds) {}};
|
||||
|
||||
producer.start();
|
||||
std::this_thread::sleep_for(std::chrono::milliseconds(1)); // ← 1ms window
|
||||
@@ -107,4 +126,5 @@ TEST(ProducerTest, ProducerDoesNotCallWhenTempTooHigh)
|
||||
|
||||
// Assert: we expect no output
|
||||
EXPECT_TRUE(outputs.empty());
|
||||
EXPECT_NE(logs[0].find("Error"), std::string::npos);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user