--- /dev/null
+#include <system_info.h>
+
+#include "haltest.h"
+#include "hal-device-led.h"
+
+class LED : public testing::Test {
+ protected:
+ void SetUp() override {
+ int ret_val = 0;
+
+ ret_val = system_info_get_platform_bool(FEATURE_LED, &led_supported);
+ ASSERT_EQ(ret_val, SYSTEM_INFO_ERROR_NONE) << "Failed to get led feature";
+ }
+
+ void TearDown() override {}
+
+ bool led_supported;
+};
+
+TEST_F(LED, GetBackendP)
+{
+ int ret_val = 0;
+
+ if (!led_supported) {
+ SKIP_MESSAGE("Led not supported");
+ return;
+ }
+
+ ret_val = hal_device_led_get_backend();
+ if (ret_val == -ENOTSUP) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0);
+}
+
+TEST_F(LED, SetStateP)
+{
+ int ret_val = 0;
+ hal_device_led_state_s state_off = {HAL_DEVICE_LED_TYPE_MANUAL, 0, 0, 0};
+
+ if (!led_supported) {
+ SKIP_MESSAGE("Led not supported");
+ return;
+ }
+
+ ret_val = hal_device_led_set_state(HAL_DEVICE_LED_NOTIFICATION, &state_off);
+ if (ret_val == -ENOTSUP) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+}
+
+TEST_F(LED, GetNumberP)
+{
+ int ret_val = 0;
+
+ if (!led_supported) {
+ SKIP_MESSAGE("Led not supported");
+ return;
+ }
+
+ ret_val = hal_device_led_get_number();
+ if (ret_val == -ENOTSUP) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+}
+
+TEST_F(LED, SetNumberP)
+{
+ int ret_val = 0;
+
+ if (!led_supported) {
+ SKIP_MESSAGE("Led not supported");
+ return;
+ }
+
+ ret_val = hal_device_led_set_number(0);
+ if (ret_val == -ENOTSUP) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+ EXPECT_EQ(ret_val, 0);
+}
+
+TEST_F(LED, GetMaxNumP)
+{
+ int ret_val = 0;
+
+ if (!led_supported) {
+ SKIP_MESSAGE("Led not supported");
+ return;
+ }
+
+ ret_val = hal_device_led_get_number();
+ if (ret_val == -ENOTSUP) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+}
+
+TEST_F(LED, KeyledSetStateP)
+{
+ int ret_val = 0;
+ hal_device_led_keyled_state_s keyled_state = {0, 0};
+
+ if (!led_supported) {
+ SKIP_MESSAGE("Led not supported");
+ return;
+ }
+
+ ret_val = hal_device_keyled_set_state(&keyled_state);
+ if (ret_val == -ENOTSUP) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+}
+
+TEST_F(LED, KeyledGetStateP)
+{
+ int ret_val = 0;
+ int keycode, brightness;
+
+ if (!led_supported) {
+ SKIP_MESSAGE("Led not supported");
+ return;
+ }
+
+ ret_val = hal_device_keyled_get_state(&keycode, &brightness);
+ if (ret_val == -ENOTSUP) {
+ SKIP_MESSAGE("Not supported HAL");
+ return;
+ }
+}
+
+TEST_F(LED, PutBackendP)
+{
+ int ret_val = 0;
+
+ if (!led_supported) {
+ SKIP_MESSAGE("Led not supported");
+ return;
+ }
+
+ ret_val = hal_device_led_put_backend();
+ EXPECT_EQ(ret_val, 0);
+}
\ No newline at end of file