|
|
@@ -108,3 +108,29 @@ TEST_F(FileAppenderTest, OverwritesFileWithSetting) {
|
|
|
}
|
|
|
EXPECT_THAT(slurp(filename()), Eq("Test"));
|
|
|
}
|
|
|
+
|
|
|
+TEST_F(FileAppenderTest, CanWriteBufferedData) {
|
|
|
+ using namespace logging;
|
|
|
+ using namespace logging::property;
|
|
|
+ properties props{_obj({
|
|
|
+ {"immediateFlush", _v(false)},
|
|
|
+ {"filename", _v(filename())},
|
|
|
+ {"bufferedIO", _v(true)},
|
|
|
+ {"bufferSize", _v(256)}
|
|
|
+ })};
|
|
|
+
|
|
|
+ using testing::Eq;
|
|
|
+ logpacket pkt{{}, level::error, {}, {}, "Test"};
|
|
|
+ EXPECT_NO_THROW(get(props)->write(pkt));
|
|
|
+ // We can't really test the results here, because the standard library is in
|
|
|
+ // control of the actual writes...
|
|
|
+}
|
|
|
+
|
|
|
+TEST_F(FileAppenderTest, WillThrowIfCannotOpenFile) {
|
|
|
+ using namespace logging;
|
|
|
+ using namespace logging::property;
|
|
|
+ properties props{_obj({
|
|
|
+ {"filename", _v("./fake_directory_for_testing/file.log")}
|
|
|
+ })};
|
|
|
+ EXPECT_THROW(get(props), std::runtime_error);
|
|
|
+}
|