android_device_google_gs-co.../modem/test/modem_log_dumper_test.cpp
kierancyphus 52d632cbe7 dump_modemlog: include log mask history files in dumpstate
This was missed in the porting over from gs201/.../dumpstate.cpp.

Test: Manually trigger bugreport and ensure that LoggingHistory.csv and
LoggingMaskHistory.csv are included
Bug:284275049

Change-Id: Ia630f3f1883b338fa879cfd6ea6bdd4c2a00437c
2023-07-24 16:41:53 +08:00

107 lines
3.2 KiB
C++

#include "modem_log_dumper.h"
#include <string_view>
#include "dumper.h"
#include "fake_android_property_manager.h"
#include "gmock/gmock.h"
#include "gtest/gtest.h"
namespace modem {
namespace logging {
namespace {
using ::testing::Eq;
inline constexpr static std::string_view kFakePilotLoggingPath =
"//pilot/logging/path";
inline constexpr static std::string_view kFakeOnDemandLoggingPath =
"//on/demand/logging/path";
inline constexpr static LogDumpInfo kAlwaysOnLogDumpInfo = {
kModemAlwaysOnLogDirectory, kBugreportPackingDirectory,
kDefaultBugreportNumberFiles, kModemLogPrefix};
void StartModemLogging(
FakeAndroidPropertyManager& fake_android_property_manager) {
fake_android_property_manager.SetProperty(
kModemLoggingEnabledProperty.data(),
FakeAndroidPropertyManager::kTruthString.data());
}
class MockDumper : public Dumper {
public:
~MockDumper() = default;
MOCK_METHOD(void, DumpLogs, (const LogDumpInfo&), (override));
MOCK_METHOD(void, CopyFile, (const FileCopyInfo&), (override));
};
class ModemLogDumperTest : public ::testing::Test {
protected:
ModemLogDumperTest()
: modem_log_dumper(mock_dumper, fake_android_property_manager) {}
void SetUp() override {
// set default logging mode to always on logging
fake_android_property_manager.SetProperty(
kModemLoggingPathProperty.data(), kModemAlwaysOnLogDirectory.data());
}
MockDumper mock_dumper;
FakeAndroidPropertyManager fake_android_property_manager;
ModemLogDumper modem_log_dumper;
};
TEST_F(ModemLogDumperTest, DumpLogsDumpsAllDirectoriesAndCopiesAllFiles) {
EXPECT_CALL(mock_dumper, DumpLogs(Eq(kAlwaysOnLogDumpInfo)));
for (const LogDumpInfo& log_dump_info : kLogDumpInfo) {
EXPECT_CALL(mock_dumper, DumpLogs(Eq(log_dump_info)));
}
for (const FileCopyInfo& fileCopyInfo : kFileCopyInfo) {
EXPECT_CALL(mock_dumper, CopyFile(Eq(fileCopyInfo)));
}
modem_log_dumper.DumpModemLogs();
}
TEST_F(ModemLogDumperTest, DumpLogsRestartModemLoggingWhenEnabled) {
StartModemLogging(fake_android_property_manager);
modem_log_dumper.DumpModemLogs();
EXPECT_TRUE(fake_android_property_manager.ModemLoggingHasRestarted());
}
TEST_F(ModemLogDumperTest, DumpLogsDoesNotRestartModemLoggingWhenDisabled) {
modem_log_dumper.DumpModemLogs();
EXPECT_FALSE(fake_android_property_manager.ModemLoggingHasRestarted());
}
TEST_F(ModemLogDumperTest, DumpLogsDoesNotRestartModemLoggingWhenPilotEnabled) {
// Enable PILOT
fake_android_property_manager.SetProperty(kModemLoggingPathProperty.data(),
kFakePilotLoggingPath.data());
StartModemLogging(fake_android_property_manager);
modem_log_dumper.DumpModemLogs();
EXPECT_FALSE(fake_android_property_manager.ModemLoggingHasRestarted());
}
TEST_F(ModemLogDumperTest,
DumpLogsDoesNotRestartModemLoggingWhenOnDemandLoggingEnabled) {
// Enable On Demand Logging
fake_android_property_manager.SetProperty(kModemLoggingPathProperty.data(),
kFakeOnDemandLoggingPath.data());
StartModemLogging(fake_android_property_manager);
modem_log_dumper.DumpModemLogs();
EXPECT_FALSE(fake_android_property_manager.ModemLoggingHasRestarted());
}
} // namespace
} // namespace logging
} // namespace modem