diff options
Diffstat (limited to 'unittest/gtest_hal_battery.cpp')
-rw-r--r-- | unittest/gtest_hal_battery.cpp | 127 |
1 files changed, 127 insertions, 0 deletions
diff --git a/unittest/gtest_hal_battery.cpp b/unittest/gtest_hal_battery.cpp new file mode 100644 index 0000000..731d881 --- /dev/null +++ b/unittest/gtest_hal_battery.cpp @@ -0,0 +1,127 @@ + +#include <iostream> +#include <gtest/gtest.h> +#include "hw/common.h" +#include "hw/battery.h" + +using namespace std; + +/* + * main class + */ +struct battery_device *battery_dev; + +class BATTERYHalTest : public testing::Test +{ + public: + virtual void SetUp() + { + struct hw_info *info; + int ret; + ret = hw_get_info(BATTERY_HARDWARE_DEVICE_ID, + (const struct hw_info **)&info); + + if (ret < 0) { + cout << "Fail to load battery hal(" << ret << ")" << endl; + assert(true); + return; + } + if (!info->open) { + cout << "Failed to open battery device; open(NULL)" << endl; + assert(true); + return; + } + + ret = info->open(info, NULL, (struct hw_common**)&battery_dev); + if (ret < 0 || !battery_dev) { + cout << "Failed to get battery device structure (" << ret << ")" << endl; + assert(true); + return; + } + + return; + } + + virtual void TearDown() + { + struct hw_info *info; + + info = battery_dev->common.info; + if (!info) + free(battery_dev); + else + info->close((struct hw_common *)battery_dev); + battery_dev = NULL; + + return; + } +}; + +/* + * testcase + */ +TEST_F(BATTERYHalTest, InitP) +{ + EXPECT_NE(battery_dev, nullptr); +} + +TEST_F(BATTERYHalTest, DeinitP) +{ + struct battery_device *tmp; + struct hw_info *info; + int ret; + + hw_get_info(BATTERY_HARDWARE_DEVICE_ID, + (const struct hw_info **)&info); + + EXPECT_NE(info, nullptr); + if (!info->open || !info->close) + return; + info->open(info, NULL, (struct hw_common**)&tmp); + + ret = info->close((struct hw_common *)tmp); + EXPECT_EQ(ret, 0); +} + +static void updated_cb(struct battery_info *info, void *data) +{ +} + +TEST_F(BATTERYHalTest, RegisterChangedEventP) +{ + int ret; + + EXPECT_NE(battery_dev, nullptr); + if (!battery_dev->register_changed_event) + return; + ret = battery_dev->register_changed_event(updated_cb, NULL); + battery_dev->unregister_changed_event(updated_cb); + EXPECT_EQ(ret, 0); +} + +TEST_F(BATTERYHalTest, UnregisterChangedEventP) +{ + EXPECT_NE(battery_dev, nullptr); + if (!battery_dev->unregister_changed_event) + return; + battery_dev->register_changed_event(updated_cb, NULL); + battery_dev->unregister_changed_event(updated_cb); +} + +TEST_F(BATTERYHalTest, GetCurrentStateP) +{ + int ret; + + EXPECT_NE(battery_dev, nullptr); + if (!battery_dev->get_current_state) + return; + ret = battery_dev->get_current_state(updated_cb, NULL); + EXPECT_EQ(ret, 0); +} + +int main(int argc, char **argv) +{ + testing::InitGoogleTest(&argc, argv); + + return RUN_ALL_TESTS(); +} |