#include #include "app.hpp" #include #include using namespace dau; class DAUTest : public ::testing::Test { protected: void SetUp() override { DAU_SetSleep(false); } }; TEST_F(DAUTest, testDAUProcessNormalInput) { RawDataFrame input{}; ValidData output{}; std::string errorLog; input.len = 8; for(int i = 0; i < 8; ++i) input.data[i] = i; input.timestamp = 12345; input.busType = static_cast(1); uint32_t initialLoad = DAU_GetBusLoad(); EXPECT_TRUE(DAU_Process(input, output, errorLog)); EXPECT_EQ(output.dataLen, 8); EXPECT_EQ(output.timestamp, 12345); EXPECT_EQ(output.sourceBus, static_cast(1)); EXPECT_EQ(DAU_GetBusLoad(), initialLoad + 5); } TEST_F(DAUTest, testDAUProcessZeroLength) { RawDataFrame input{}; ValidData output{}; std::string errorLog; input.len = 0; EXPECT_FALSE(DAU_Process(input, output, errorLog)); EXPECT_NE(errorLog.find("Invalid data length"), std::string::npos); } TEST_F(DAUTest, testDAUProcessMaxLength) { RawDataFrame input{}; ValidData output{}; std::string errorLog; input.len = 64; for(int i = 0; i < 64; ++i) input.data[i] = 0x01; EXPECT_TRUE(DAU_Process(input, output, errorLog)); EXPECT_EQ(output.dataLen, 64); } TEST_F(DAUTest, testDAUProcessExceedMaxLength) { RawDataFrame input{}; ValidData output{}; std::string errorLog; input.len = 65; EXPECT_FALSE(DAU_Process(input, output, errorLog)); EXPECT_NE(errorLog.find("Invalid data length"), std::string::npos); } TEST_F(DAUTest, testDAUProcessErrorFrame) { RawDataFrame input{}; ValidData output{}; std::string errorLog; input.len = 8; memset(input.data, 0xFF, 8); EXPECT_FALSE(DAU_Process(input, output, errorLog)); EXPECT_NE(errorLog.find("Error frame detected"), std::string::npos); } TEST_F(DAUTest, testDAUProcessSleepMode) { DAU_SetSleep(true); RawDataFrame input{}; ValidData output{}; std::string errorLog; input.len = 8; EXPECT_FALSE(DAU_Process(input, output, errorLog)); EXPECT_NE(errorLog.find("Sleep mode"), std::string::npos); DAU_SetSleep(false); } TEST_F(DAUTest, testDAUSetSleepAndWakeUp) { DAU_SetSleep(true); RawDataFrame input{}; ValidData output{}; std::string errorLog; input.len = 8; EXPECT_FALSE(DAU_Process(input, output, errorLog)); DAU_SetSleep(false); EXPECT_TRUE(DAU_Process(input, output, errorLog)); } TEST_F(DAUTest, testDAUGetBusLoad) { uint32_t load = DAU_GetBusLoad(); EXPECT_LE(load, 100); }