haltests: Add hal-common-haltests skeleton code 04/252804/5
authorSeungha Son <seungha.son@samsung.com>
Tue, 2 Feb 2021 10:22:20 +0000 (19:22 +0900)
committerSeungha Son <seungha.son@samsung.com>
Tue, 9 Feb 2021 04:31:54 +0000 (13:31 +0900)
 This is a commit to separate hal-common-haltests
 and uniittests for testing in the target.

 After the commit is applied, unittest is verified
 at gbs build time. The hal-common-haltest verifies
 the function running on the target and is packaged
 in rpm to generate the result.

Change-Id: I6d298e4940370188c8890b4331e7fa952a20fd1b
Signed-off-by: Seungha Son <seungha.son@samsung.com>
12 files changed:
CMakeLists.txt
haltests/CMakeLists.txt [deleted file]
haltests/src/test_hal.cc [deleted file]
haltests/src/test_main.cc [deleted file]
packaging/hal-api-common.spec
tests/CMakeLists.txt [new file with mode: 0644]
tests/haltests/CMakeLists.txt [new file with mode: 0644]
tests/haltests/test_hal.cc [new file with mode: 0644]
tests/haltests/test_main.cc [new file with mode: 0644]
tests/unittest/CMakeLists.txt [new file with mode: 0644]
tests/unittest/test_hal.cc [new file with mode: 0644]
tests/unittest/test_main.cc [new file with mode: 0644]

index 5409058f172661065dc0639e4223495f5d67b608..60a8c50a11115d0e5726a696008353136067bb7f 100644 (file)
@@ -52,4 +52,4 @@ INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc
        DESTINATION ${LIBDIR}/pkgconfig)
 INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/hal-api.json DESTINATION /etc/hal)
 
-ADD_SUBDIRECTORY(haltests)
+ADD_SUBDIRECTORY(tests)
diff --git a/haltests/CMakeLists.txt b/haltests/CMakeLists.txt
deleted file mode 100644 (file)
index 2ed429c..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-ENABLE_TESTING()
-SET(HAL_COMMON_UNITTEST "common-unittest")
-
-SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -Werror")
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++14 -Wall -Werror")
-
-AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src UNITTEST_SRCS)
-ADD_EXECUTABLE(${HAL_COMMON_UNITTEST} ${UNITTEST_SRCS})
-
-TARGET_INCLUDE_DIRECTORIES(${HAL_COMMON_UNITTEST} PUBLIC
-       "${CMAKE_CURRENT_SOURCE_DIR}/../include"
-)
-
-INCLUDE(FindPkgConfig)
-pkg_check_modules(hal_common_unittest_pkgs REQUIRED gmock)
-
-FOREACH(flag ${hal_common_unittest_pkgs_CFLAGS})
-       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
-ENDFOREACH(flag)
-
-TARGET_LINK_LIBRARIES(${HAL_COMMON_UNITTEST} ${hal_common_unittest_pkgs_LDFLAGS} ${PROJECT_NAME})
-SET_TARGET_PROPERTIES(${HAL_COMMON_UNITTEST} PROPERTIES COMPILE_FLAGS "-fPIE -fvisibility=default")
-SET_TARGET_PROPERTIES(${HAL_COMMON_UNITTEST} PROPERTIES LINK_FLAGS "-pie")
-
-ADD_TEST(
-       NAME ${HAL_COMMON_UNITTEST}
-       COMMAND ${HAL_COMMON_UNITTEST}
-)
diff --git a/haltests/src/test_hal.cc b/haltests/src/test_hal.cc
deleted file mode 100644 (file)
index ddadc56..0000000
+++ /dev/null
@@ -1,435 +0,0 @@
-/*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <tizen.h>
-
-#include <gtest/gtest.h>
-#include <gmock/gmock.h>
-
-#include <vector>
-#include <memory>
-
-#include "hal-common.h"
-#include "hal-common-interface.h"
-
-#include "../../src/hal-api-conf.h"
-#include "../../src/common.h"
-
-#define MAX_BUFF       128
-
-using namespace std;
-
-
-extern "C" const char *tzplatform_mkpath(
-   enum tzplatform_variable id, const char *path) {
-   return "../hal-api.json";
-}
-
-class CommonHaltest : public testing::Test {
- public:
-  CommonHaltest() {}
-  virtual ~CommonHaltest() {}
-  virtual void SetUp() {}
-  virtual void TearDown() {}
-};
-
-TEST(CommonHaltest, test_symbol_name_invalid_module) {
-  char ret_unknown[MAX_BUFF] = {0, };
-  char ret_end[MAX_BUFF] = {0, };
-  int ret;
-
-  ret = hal_common_get_backend_symbol_name(HAL_MODULE_UNKNOWN, ret_unknown, MAX_BUFF);
-  EXPECT_TRUE(ret != TIZEN_ERROR_NONE);
-
-  ret = hal_common_get_backend_symbol_name(HAL_MODULE_UNKNOWN, ret_end, MAX_BUFF);
-  EXPECT_TRUE(ret != TIZEN_ERROR_NONE);
-}
-
-TEST(CommonHaltest, test_check_backend_abi_version_invalid_parameter) {
-  int ret;
-
-  ret = hal_common_check_backend_abi_version(HAL_MODULE_UNKNOWN, HAL_ABI_VERSION_TIZEN_6_5);
-  EXPECT_EQ(ret, TIZEN_ERROR_INVALID_PARAMETER);
-
-  ret = hal_common_check_backend_abi_version(HAL_MODULE_END, HAL_ABI_VERSION_TIZEN_6_5);
-  EXPECT_EQ(ret, TIZEN_ERROR_INVALID_PARAMETER);
-
-  ret = hal_common_check_backend_abi_version(HAL_MODULE_TBM, HAL_ABI_VERSION_UNKNOWN);
-  EXPECT_EQ(ret, TIZEN_ERROR_INVALID_PARAMETER);
-
-  ret = hal_common_check_backend_abi_version(HAL_MODULE_TBM, HAL_ABI_VERSION_END);
-  EXPECT_EQ(ret, TIZEN_ERROR_INVALID_PARAMETER);
-}
-
-TEST(CommonHaltest, get_backend_library_name_unknown) {
-  char ret_name[MAX_BUFF] = {0, };
-  int ret = hal_common_get_backend_library_name(HAL_MODULE_UNKNOWN, ret_name, MAX_BUFF);
-  EXPECT_TRUE(ret != TIZEN_ERROR_NONE);
-}
-
-class HalInfo {
-public:
-  enum hal_module module_;
-  enum hal_group group_;
-  enum hal_license license_;
-  const char *module_name_;
-  const char *library_name_;
-  const char *library_name_64bit_;
-  const char *symbol_name_;
-  vector<struct hal_abi_version_match> versions_;
-
-  HalInfo(enum hal_module module, enum hal_group group, enum hal_license license,
-    const char *module_name, const char *library_name, const char *library_name_64bit,
-    const char *symbol_name, vector<struct hal_abi_version_match> versions) :
-    module_(module), group_(group), license_(license),
-    module_name_(module_name), library_name_(library_name),
-    library_name_64bit_(library_name_64bit), symbol_name_(symbol_name),
-    versions_(versions) {}
-};
-
-class HalInfoMatchedTest : public ::testing::TestWithParam<HalInfo> {};
-
-INSTANTIATE_TEST_CASE_P(CommonHaltest,
-  HalInfoMatchedTest,
-  ::testing::Values(
-  HalInfo(HAL_MODULE_TBM, HAL_GROUP_GRAPHICS, HAL_LICENSE_MIT,
-    "HAL_MODULE_TBM", "/hal/lib/libhal-backend-tbm.so",
-    "/hal/lib64/libhal-backend-tbm.so", "hal_backend_tbm_data",
-    vector<struct hal_abi_version_match>{{
-    .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-    .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_TDM, HAL_GROUP_GRAPHICS, HAL_LICENSE_MIT,
-    "HAL_MODULE_TDM", "/hal/lib/libhal-backend-tdm.so",
-    "/hal/lib64/libhal-backend-tdm.so", "hal_backend_tdm_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_COREGL, HAL_GROUP_GRAPHICS, HAL_LICENSE_UNKNOWN,
-    "HAL_MODULE_COREGL", "", "", "", {}),
-
-  HalInfo(HAL_MODULE_INPUT, HAL_GROUP_GRAPHICS, HAL_LICENSE_MIT,
-    "HAL_MODULE_INPUT", "", "", "", {}),
-
-  HalInfo(HAL_MODULE_AUDIO, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_AUDIO", "/hal/lib/libhal-backend-audio.so",
-    "/hal/lib64/libhal-backend-audio.so", "hal_backend_audio_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_CAMERA, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_CAMERA", "/hal/lib/libhal-backend-camera.so",
-    "/hal/lib64/libhal-backend-camera.so", "hal_backend_camera_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_RADIO, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_RADIO", "/hal/lib/libhal-backend-radio.so",
-    "/hal/lib64/libhal-backend-radio.so", "hal_backend_radio_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_CODEC, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_CODEC", "", "", "", {}),
-
-  HalInfo(HAL_MODULE_USB_AUDIO, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_USB_AUDIO", "", "", "", {}),
-
-  HalInfo(HAL_MODULE_ALSAUCM, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_ALSAUCM", "", "", "", {}),
-
-  HalInfo(HAL_MODULE_BLUETOOTH, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_BLUETOOTH", "/hal/lib/libhal-backend-bluetooth.so",
-    "/hal/lib64/libhal-backend-bluetooth.so", "hal_backend_bluetooth_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_WIFI, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_WIFI", "/hal/lib/libhal-backend-wifi.so",
-    "/hal/lib64/libhal-backend-wifi.so", "hal_backend_wifi_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_NAN, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_NAN", "", "", "", {}),
-
-  HalInfo(HAL_MODULE_NFC, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_NFC", "/hal/lib/libhal-backend-nfc.so",
-    "/hal/lib64/libhal-backend-nfc.so", "hal_backend_nfc_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_ZIGBEE, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_ZIGBEE", "/hal/lib/libhal-backend-zigbee.so",
-    "/hal/lib64/libhal-backend-zigbee.so", "hal_backend_zigbee_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_UWB, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_UWB", "/hal/lib/libhal-backend-uwb.so",
-    "/hal/lib64/libhal-backend-uwb.so", "hal_backend_uwb_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_MTP, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_MTP", "", "", "", {}),
-
-  HalInfo(HAL_MODULE_TELEPHONY, HAL_GROUP_TELEPHONY, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_TELEPHONY", "", "", "", {}),
-
-  HalInfo(HAL_MODULE_LOCATION, HAL_GROUP_LOCATION, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_LOCATION", "/hal/lib/libhal-backend-location.so",
-    "/hal/lib64/libhal-backend-location.so", "hal_backend_location_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_COMMON, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_COMMON", "", "", "", {}),
-
-  HalInfo(HAL_MODULE_POWER, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_POWER", "/hal/lib/libhal-backend-power.so",
-    "/hal/lib64/libhal-backend-power.so", "hal_backend_power_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_SENSOR, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_SENSOR", "/hal/lib/libhal-backend-sensor.so",
-    "/hal/lib64/libhal-backend-sensor.so", "hal_backend_sensor_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_PERIPHERAL, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_PERIPHERAL", "", "", "", {}),
-
-  HalInfo(HAL_MODULE_DEVICE_BATTERY, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_DEVICE_BATTERY", "/hal/lib/libhal-backend-device-battery.so",
-    "/hal/lib64/libhal-backend-device-battery.so", "hal_backend_device_battery_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_DEVICE_BEZEL, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_DEVICE_BEZEL", "/hal/lib/libhal-backend-device-bezel.so",
-    "/hal/lib64/libhal-backend-device-bezel.so", "hal_backend_device_bezel_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_DEVICE_DISPLAY, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_DEVICE_DISPLAY", "/hal/lib/libhal-backend-device-display.so",
-    "/hal/lib64/libhal-backend-device-display.so", "hal_backend_device_display_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_DEVICE_IR, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_DEVICE_IR", "/hal/lib/libhal-backend-device-ir.so",
-    "/hal/lib64/libhal-backend-device-ir.so", "hal_backend_device_ir_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_DEVICE_TOUCHSCREEN, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_DEVICE_TOUCHSCREEN", "/hal/lib/libhal-backend-device-touchscreen.so",
-    "/hal/lib64/libhal-backend-device-touchscreen.so", "hal_backend_device_touchscreen_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_DEVICE_LED, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_DEVICE_LED", "/hal/lib/libhal-backend-device-led.so",
-    "/hal/lib64/libhal-backend-device-led.so", "hal_backend_device_led_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_DEVICE_BOARD, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_DEVICE_BOARD", "/hal/lib/libhal-backend-device-board.so",
-    "/hal/lib64/libhal-backend-device-board.so", "hal_backend_device_board_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_DEVICE_EXTERNAL_CONNECTION, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_DEVICE_EXTERNAL_CONNECTION", "/hal/lib/libhal-backend-device-external-connection.so",
-    "/hal/lib64/libhal-backend-device-external-connection.so", "hal_backend_device_external_connection_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_DEVICE_THERMAL, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_DEVICE_THERMAL", "/hal/lib/libhal-backend-device-thermal.so",
-    "/hal/lib64/libhal-backend-device-thermal.so", "hal_backend_device_thermal_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_DEVICE_USB_GADGET, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_DEVICE_USB_GADGET", "/hal/lib/libhal-backend-device-usb-gadget.so",
-    "/hal/lib64/libhal-backend-device-usb-gadget.so", "hal_backend_device_usb_gadget_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  ),
-
-  HalInfo(HAL_MODULE_DEVICE_HAPTIC, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
-    "HAL_MODULE_DEVICE_HAPTIC", "/hal/lib/libhal-backend-device-haptic.so",
-    "/hal/lib64/libhal-backend-device-haptic.so", "hal_backend_device_haptic_data",
-    vector<struct hal_abi_version_match>{{
-      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
-      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
-    }}
-  )
-));
-
-TEST_P(HalInfoMatchedTest, get_backend_library_name) {
-  char ret_library_name[MAX_BUFF] = {0, };
-  int ret;
-  auto info = GetParam();
-
-  ret = hal_common_get_backend_library_name(info.module_, ret_library_name, MAX_BUFF);
-  EXPECT_TRUE(ret == TIZEN_ERROR_NONE);
-#if defined(__aarch64__)
-  EXPECT_STREQ(info.library_name_64bit_, ret_library_name) << "module name is " << info.module_name_;
-#else
-  EXPECT_STREQ(info.library_name_, ret_library_name) << "module name is " << info.module_name_;
-#endif
-}
-
-TEST_P(HalInfoMatchedTest, test_symbol_name_module_matching) {
-  char ret_symbol_name[MAX_BUFF] = {0, };
-  int ret;
-  auto info = GetParam();
-
-  ret = hal_common_get_backend_symbol_name(info.module_, ret_symbol_name, MAX_BUFF);
-  EXPECT_TRUE(ret == TIZEN_ERROR_NONE);
-  EXPECT_STREQ(ret_symbol_name, info.symbol_name_) << "module name is " << info.module_name_;
-}
-
-TEST_P(HalInfoMatchedTest, test_group_module_matching) {
-  struct __hal_module_info *info = NULL;
-
-  auto result_info = GetParam();
-
-  _hal_api_conf_init();
-  info = _hal_api_conf_get_module_info(result_info.module_);
-  ASSERT_TRUE(info != nullptr) << "module name is " << result_info.module_name_;
-  EXPECT_EQ(info->group, result_info.group_) << "module name is " << result_info.module_name_;
-  _hal_api_conf_exit();
-}
-
-TEST_P(HalInfoMatchedTest, test_license_module_matching) {
-  struct __hal_module_info *info = NULL;
-
-  auto result_info = GetParam();
-
-  _hal_api_conf_init();
-  info = _hal_api_conf_get_module_info(result_info.module_);
-  ASSERT_TRUE(info != nullptr) << "module name is " << result_info.module_name_;
-  EXPECT_EQ(info->license, result_info.license_) << "module name is " << result_info.module_name_;
-  _hal_api_conf_exit();
-}
-
-TEST_P(HalInfoMatchedTest, test_module_name_matching) {
-  struct __hal_module_info *info = NULL;
-
-  auto result_info = GetParam();
-
-  _hal_api_conf_init();
-  info = _hal_api_conf_get_module_info(result_info.module_);
-  ASSERT_TRUE(info != nullptr) << "module name is " << result_info.module_name_;
-  EXPECT_STREQ(info->module_name, result_info.module_name_) << "module name is " << result_info.module_name_;
-  _hal_api_conf_exit();
-}
-
-TEST_P(HalInfoMatchedTest, test_check_backend_abi_version) {
-  struct __hal_module_info *info = NULL;
-  auto result_info = GetParam();
-
-  _hal_api_conf_init();
-  info = _hal_api_conf_get_module_info(result_info.module_);
-  ASSERT_TRUE(info != nullptr);
-
-  vector<struct hal_abi_version_match> versions = result_info.versions_;
-  struct hal_abi_version_match *meta_versions = info->abi_versions;
-
-  for (unsigned int i = 0; i < versions.size(); i++) {
-    struct hal_abi_version_match tmp_version = versions[i];
-
-    int ret = hal_common_check_backend_abi_version(result_info.module_, tmp_version.platform_abi_version);
-    EXPECT_EQ(ret, TIZEN_ERROR_NONE) << "module name is " << result_info.module_name_;
-    EXPECT_EQ(meta_versions[i].platform_abi_version, tmp_version.platform_abi_version) << "module name is " << result_info.module_name_;;
-    EXPECT_EQ(meta_versions[i].backend_min_abi_version, tmp_version.backend_min_abi_version) << "module name is " << result_info.module_name_;;
-  }
-  _hal_api_conf_exit();
-}
diff --git a/haltests/src/test_main.cc b/haltests/src/test_main.cc
deleted file mode 100644 (file)
index c2eb730..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2020 Samsung Electronics Co., Ltd.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include <gtest/gtest.h>
-#include <gmock/gmock.h>
-
-int main(int argc, char** argv) {
-  int ret = -1;
-
-  try {
-    testing::InitGoogleTest(&argc, argv);
-  } catch(...) {
-    std::cout << "Exception occurred" << std::endl;
-  }
-
-  try {
-    ret = RUN_ALL_TESTS();
-  } catch (const ::testing::internal::GoogleTestFailureException& e) {
-    ret = -1;
-    std::cout << "GoogleTestFailureException was thrown:" << e.what() << std::endl;
-  }
-
-  return ret;
-}
index 4f5bfa6e76b779d428854815f7bde3a0499f57d9..8ef3a81434753e63d0b80a704877250b03736f28 100644 (file)
@@ -1,5 +1,6 @@
 %define name           hal-api-common
 %define devel_name     hal-api-common-devel
+%define test_name      hal-api-common-haltests
 
 ### main package #########
 Name:       %{name}
@@ -33,6 +34,14 @@ Requires:    %{name} = %{version}-%{release}
 %description -n        %{devel_name}
 %{name} Interface for product vendor developer
 
+### test package #########
+%package -n %{test_name}
+Summary: tests for hal-api-common
+Requires: hal-api-common = %{version}
+
+%description -n %{test_name}
+Haltests for hal-api-common
+
 ### build and install #########
 %prep
 %setup -q
@@ -44,7 +53,7 @@ cp %{SOURCE1} .
 make %{?jobs:-j%jobs}
 
 %check
-(cd haltests && LD_LIBRARY_PATH=../ ctest -V)
+(cd tests/unittest && LD_LIBRARY_PATH=../../ ctest -V)
 
 %install
 rm -rf %{buildroot}
@@ -60,7 +69,7 @@ rm -rf %{buildroot}
 %post
 /sbin/ldconfig
 
-if [ ! -d %{TZ_SYS_ETC} ]
+if [ ! -d %{TZ_SYS_RO_ETC} ]
 then
        mkdir -p %{TZ_SYS_RO_ETC}/hal
 fi
@@ -82,3 +91,6 @@ fi
 %defattr(-,root,root,-)
 %{_includedir}/hal/*.h
 %{_libdir}/pkgconfig/*.pc
+
+%files -n %{test_name}
+%{_bindir}/hal/common-haltests
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
new file mode 100644 (file)
index 0000000..adf4d47
--- /dev/null
@@ -0,0 +1,2 @@
+ADD_SUBDIRECTORY(unittest)
+ADD_SUBDIRECTORY(haltests)
diff --git a/tests/haltests/CMakeLists.txt b/tests/haltests/CMakeLists.txt
new file mode 100644 (file)
index 0000000..0d4cbd4
--- /dev/null
@@ -0,0 +1,24 @@
+SET(HAL_COMMON_HALTEST "common-haltests")
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -Werror")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++14 -Wall -Werror")
+
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/ HALTEST_SRCS)
+ADD_EXECUTABLE(${HAL_COMMON_HALTEST} ${HALTEST_SRCS})
+
+TARGET_INCLUDE_DIRECTORIES(${HAL_COMMON_HALTEST} PUBLIC
+       "${CMAKE_CURRENT_SOURCE_DIR}/../../include"
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(common-haltests_pkgs REQUIRED gmock)
+
+FOREACH(flag ${common-haltests_pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+TARGET_LINK_LIBRARIES(${HAL_COMMON_HALTEST} ${common-haltests_pkgs_LDFLAGS} ${PROJECT_NAME})
+SET_TARGET_PROPERTIES(${HAL_COMMON_HALTEST} PROPERTIES COMPILE_FLAGS "-fPIE -fvisibility=default")
+SET_TARGET_PROPERTIES(${HAL_COMMON_HALTEST} PROPERTIES LINK_FLAGS "-pie")
+
+INSTALL(TARGETS ${HAL_COMMON_HALTEST} DESTINATION ${EXEC_PREFIX}/hal/)
diff --git a/tests/haltests/test_hal.cc b/tests/haltests/test_hal.cc
new file mode 100644 (file)
index 0000000..685a91c
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <tizen.h>
+
+#include <gtest/gtest.h>
+#include <gmock/gmock.h>
+
+#include <vector>
+#include <memory>
+
+#include "hal-common.h"
+#include "hal-common-interface.h"
+
+#include "../../src/hal-api-conf.h"
+#include "../../src/common.h"
+
+using namespace std;
+
+class CommonHaltest : public testing::Test {
+ public:
+  CommonHaltest() {}
+  virtual ~CommonHaltest() {}
+  virtual void SetUp() {}
+  virtual void TearDown() {}
+};
+
+TEST(CommonHaltest, test_symbol_name_invalid_module) {
+}
+
diff --git a/tests/haltests/test_main.cc b/tests/haltests/test_main.cc
new file mode 100644 (file)
index 0000000..c2eb730
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+#include <gmock/gmock.h>
+
+int main(int argc, char** argv) {
+  int ret = -1;
+
+  try {
+    testing::InitGoogleTest(&argc, argv);
+  } catch(...) {
+    std::cout << "Exception occurred" << std::endl;
+  }
+
+  try {
+    ret = RUN_ALL_TESTS();
+  } catch (const ::testing::internal::GoogleTestFailureException& e) {
+    ret = -1;
+    std::cout << "GoogleTestFailureException was thrown:" << e.what() << std::endl;
+  }
+
+  return ret;
+}
diff --git a/tests/unittest/CMakeLists.txt b/tests/unittest/CMakeLists.txt
new file mode 100644 (file)
index 0000000..2ff5c7e
--- /dev/null
@@ -0,0 +1,28 @@
+ENABLE_TESTING()
+SET(HAL_COMMON_UNITTEST "common-unittest")
+
+SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -Werror")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -std=c++14 -Wall -Werror")
+
+AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/ UNITTEST_SRCS)
+ADD_EXECUTABLE(${HAL_COMMON_UNITTEST} ${UNITTEST_SRCS})
+
+TARGET_INCLUDE_DIRECTORIES(${HAL_COMMON_UNITTEST} PUBLIC
+       "${CMAKE_CURRENT_SOURCE_DIR}/../../include"
+)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(hal_common_unittest_pkgs REQUIRED gmock)
+
+FOREACH(flag ${hal_common_unittest_pkgs_CFLAGS})
+       SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+TARGET_LINK_LIBRARIES(${HAL_COMMON_UNITTEST} ${hal_common_unittest_pkgs_LDFLAGS} ${PROJECT_NAME})
+SET_TARGET_PROPERTIES(${HAL_COMMON_UNITTEST} PROPERTIES COMPILE_FLAGS "-fPIE -fvisibility=default")
+SET_TARGET_PROPERTIES(${HAL_COMMON_UNITTEST} PROPERTIES LINK_FLAGS "-pie")
+
+ADD_TEST(
+       NAME ${HAL_COMMON_UNITTEST}
+       COMMAND ${HAL_COMMON_UNITTEST}
+)
diff --git a/tests/unittest/test_hal.cc b/tests/unittest/test_hal.cc
new file mode 100644 (file)
index 0000000..c195440
--- /dev/null
@@ -0,0 +1,435 @@
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <tizen.h>
+
+#include <gtest/gtest.h>
+#include <gmock/gmock.h>
+
+#include <vector>
+#include <memory>
+
+#include "hal-common.h"
+#include "hal-common-interface.h"
+
+#include "../../src/hal-api-conf.h"
+#include "../../src/common.h"
+
+#define MAX_BUFF       128
+
+using namespace std;
+
+
+extern "C" const char *tzplatform_mkpath(
+   enum tzplatform_variable id, const char *path) {
+   return "../../hal-api.json";
+}
+
+class CommonHaltest : public testing::Test {
+ public:
+  CommonHaltest() {}
+  virtual ~CommonHaltest() {}
+  virtual void SetUp() {}
+  virtual void TearDown() {}
+};
+
+TEST(CommonHaltest, test_symbol_name_invalid_module) {
+  char ret_unknown[MAX_BUFF] = {0, };
+  char ret_end[MAX_BUFF] = {0, };
+  int ret;
+
+  ret = hal_common_get_backend_symbol_name(HAL_MODULE_UNKNOWN, ret_unknown, MAX_BUFF);
+  EXPECT_TRUE(ret != TIZEN_ERROR_NONE);
+
+  ret = hal_common_get_backend_symbol_name(HAL_MODULE_UNKNOWN, ret_end, MAX_BUFF);
+  EXPECT_TRUE(ret != TIZEN_ERROR_NONE);
+}
+
+TEST(CommonHaltest, test_check_backend_abi_version_invalid_parameter) {
+  int ret;
+
+  ret = hal_common_check_backend_abi_version(HAL_MODULE_UNKNOWN, HAL_ABI_VERSION_TIZEN_6_5);
+  EXPECT_EQ(ret, TIZEN_ERROR_INVALID_PARAMETER);
+
+  ret = hal_common_check_backend_abi_version(HAL_MODULE_END, HAL_ABI_VERSION_TIZEN_6_5);
+  EXPECT_EQ(ret, TIZEN_ERROR_INVALID_PARAMETER);
+
+  ret = hal_common_check_backend_abi_version(HAL_MODULE_TBM, HAL_ABI_VERSION_UNKNOWN);
+  EXPECT_EQ(ret, TIZEN_ERROR_INVALID_PARAMETER);
+
+  ret = hal_common_check_backend_abi_version(HAL_MODULE_TBM, HAL_ABI_VERSION_END);
+  EXPECT_EQ(ret, TIZEN_ERROR_INVALID_PARAMETER);
+}
+
+TEST(CommonHaltest, get_backend_library_name_unknown) {
+  char ret_name[MAX_BUFF] = {0, };
+  int ret = hal_common_get_backend_library_name(HAL_MODULE_UNKNOWN, ret_name, MAX_BUFF);
+  EXPECT_TRUE(ret != TIZEN_ERROR_NONE);
+}
+
+class HalInfo {
+public:
+  enum hal_module module_;
+  enum hal_group group_;
+  enum hal_license license_;
+  const char *module_name_;
+  const char *library_name_;
+  const char *library_name_64bit_;
+  const char *symbol_name_;
+  vector<struct hal_abi_version_match> versions_;
+
+  HalInfo(enum hal_module module, enum hal_group group, enum hal_license license,
+    const char *module_name, const char *library_name, const char *library_name_64bit,
+    const char *symbol_name, vector<struct hal_abi_version_match> versions) :
+    module_(module), group_(group), license_(license),
+    module_name_(module_name), library_name_(library_name),
+    library_name_64bit_(library_name_64bit), symbol_name_(symbol_name),
+    versions_(versions) {}
+};
+
+class HalInfoMatchedTest : public ::testing::TestWithParam<HalInfo> {};
+
+INSTANTIATE_TEST_CASE_P(CommonHaltest,
+  HalInfoMatchedTest,
+  ::testing::Values(
+  HalInfo(HAL_MODULE_TBM, HAL_GROUP_GRAPHICS, HAL_LICENSE_MIT,
+    "HAL_MODULE_TBM", "/hal/lib/libhal-backend-tbm.so",
+    "/hal/lib64/libhal-backend-tbm.so", "hal_backend_tbm_data",
+    vector<struct hal_abi_version_match>{{
+    .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+    .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_TDM, HAL_GROUP_GRAPHICS, HAL_LICENSE_MIT,
+    "HAL_MODULE_TDM", "/hal/lib/libhal-backend-tdm.so",
+    "/hal/lib64/libhal-backend-tdm.so", "hal_backend_tdm_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_COREGL, HAL_GROUP_GRAPHICS, HAL_LICENSE_UNKNOWN,
+    "HAL_MODULE_COREGL", "", "", "", {}),
+
+  HalInfo(HAL_MODULE_INPUT, HAL_GROUP_GRAPHICS, HAL_LICENSE_MIT,
+    "HAL_MODULE_INPUT", "", "", "", {}),
+
+  HalInfo(HAL_MODULE_AUDIO, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_AUDIO", "/hal/lib/libhal-backend-audio.so",
+    "/hal/lib64/libhal-backend-audio.so", "hal_backend_audio_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_CAMERA, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_CAMERA", "/hal/lib/libhal-backend-camera.so",
+    "/hal/lib64/libhal-backend-camera.so", "hal_backend_camera_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_RADIO, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_RADIO", "/hal/lib/libhal-backend-radio.so",
+    "/hal/lib64/libhal-backend-radio.so", "hal_backend_radio_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_CODEC, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_CODEC", "", "", "", {}),
+
+  HalInfo(HAL_MODULE_USB_AUDIO, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_USB_AUDIO", "", "", "", {}),
+
+  HalInfo(HAL_MODULE_ALSAUCM, HAL_GROUP_MULTIMEDIA, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_ALSAUCM", "", "", "", {}),
+
+  HalInfo(HAL_MODULE_BLUETOOTH, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_BLUETOOTH", "/hal/lib/libhal-backend-bluetooth.so",
+    "/hal/lib64/libhal-backend-bluetooth.so", "hal_backend_bluetooth_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_WIFI, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_WIFI", "/hal/lib/libhal-backend-wifi.so",
+    "/hal/lib64/libhal-backend-wifi.so", "hal_backend_wifi_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_NAN, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_NAN", "", "", "", {}),
+
+  HalInfo(HAL_MODULE_NFC, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_NFC", "/hal/lib/libhal-backend-nfc.so",
+    "/hal/lib64/libhal-backend-nfc.so", "hal_backend_nfc_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_ZIGBEE, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_ZIGBEE", "/hal/lib/libhal-backend-zigbee.so",
+    "/hal/lib64/libhal-backend-zigbee.so", "hal_backend_zigbee_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_UWB, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_UWB", "/hal/lib/libhal-backend-uwb.so",
+    "/hal/lib64/libhal-backend-uwb.so", "hal_backend_uwb_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_MTP, HAL_GROUP_CONNECTIVITY, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_MTP", "", "", "", {}),
+
+  HalInfo(HAL_MODULE_TELEPHONY, HAL_GROUP_TELEPHONY, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_TELEPHONY", "", "", "", {}),
+
+  HalInfo(HAL_MODULE_LOCATION, HAL_GROUP_LOCATION, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_LOCATION", "/hal/lib/libhal-backend-location.so",
+    "/hal/lib64/libhal-backend-location.so", "hal_backend_location_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_COMMON, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_COMMON", "", "", "", {}),
+
+  HalInfo(HAL_MODULE_POWER, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_POWER", "/hal/lib/libhal-backend-power.so",
+    "/hal/lib64/libhal-backend-power.so", "hal_backend_power_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_SENSOR, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_SENSOR", "/hal/lib/libhal-backend-sensor.so",
+    "/hal/lib64/libhal-backend-sensor.so", "hal_backend_sensor_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_PERIPHERAL, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_PERIPHERAL", "", "", "", {}),
+
+  HalInfo(HAL_MODULE_DEVICE_BATTERY, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_DEVICE_BATTERY", "/hal/lib/libhal-backend-device-battery.so",
+    "/hal/lib64/libhal-backend-device-battery.so", "hal_backend_device_battery_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_DEVICE_BEZEL, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_DEVICE_BEZEL", "/hal/lib/libhal-backend-device-bezel.so",
+    "/hal/lib64/libhal-backend-device-bezel.so", "hal_backend_device_bezel_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_DEVICE_DISPLAY, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_DEVICE_DISPLAY", "/hal/lib/libhal-backend-device-display.so",
+    "/hal/lib64/libhal-backend-device-display.so", "hal_backend_device_display_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_DEVICE_IR, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_DEVICE_IR", "/hal/lib/libhal-backend-device-ir.so",
+    "/hal/lib64/libhal-backend-device-ir.so", "hal_backend_device_ir_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_DEVICE_TOUCHSCREEN, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_DEVICE_TOUCHSCREEN", "/hal/lib/libhal-backend-device-touchscreen.so",
+    "/hal/lib64/libhal-backend-device-touchscreen.so", "hal_backend_device_touchscreen_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_DEVICE_LED, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_DEVICE_LED", "/hal/lib/libhal-backend-device-led.so",
+    "/hal/lib64/libhal-backend-device-led.so", "hal_backend_device_led_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_DEVICE_BOARD, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_DEVICE_BOARD", "/hal/lib/libhal-backend-device-board.so",
+    "/hal/lib64/libhal-backend-device-board.so", "hal_backend_device_board_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_DEVICE_EXTERNAL_CONNECTION, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_DEVICE_EXTERNAL_CONNECTION", "/hal/lib/libhal-backend-device-external-connection.so",
+    "/hal/lib64/libhal-backend-device-external-connection.so", "hal_backend_device_external_connection_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_DEVICE_THERMAL, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_DEVICE_THERMAL", "/hal/lib/libhal-backend-device-thermal.so",
+    "/hal/lib64/libhal-backend-device-thermal.so", "hal_backend_device_thermal_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_DEVICE_USB_GADGET, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_DEVICE_USB_GADGET", "/hal/lib/libhal-backend-device-usb-gadget.so",
+    "/hal/lib64/libhal-backend-device-usb-gadget.so", "hal_backend_device_usb_gadget_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  ),
+
+  HalInfo(HAL_MODULE_DEVICE_HAPTIC, HAL_GROUP_SYSTEM, HAL_LICENSE_APACHE_2_0,
+    "HAL_MODULE_DEVICE_HAPTIC", "/hal/lib/libhal-backend-device-haptic.so",
+    "/hal/lib64/libhal-backend-device-haptic.so", "hal_backend_device_haptic_data",
+    vector<struct hal_abi_version_match>{{
+      .platform_abi_version = HAL_ABI_VERSION_TIZEN_6_5,
+      .backend_min_abi_version = HAL_ABI_VERSION_TIZEN_6_5
+    }}
+  )
+));
+
+TEST_P(HalInfoMatchedTest, get_backend_library_name) {
+  char ret_library_name[MAX_BUFF] = {0, };
+  int ret;
+  auto info = GetParam();
+
+  ret = hal_common_get_backend_library_name(info.module_, ret_library_name, MAX_BUFF);
+  EXPECT_TRUE(ret == TIZEN_ERROR_NONE);
+#if defined(__aarch64__)
+  EXPECT_STREQ(info.library_name_64bit_, ret_library_name) << "module name is " << info.module_name_;
+#else
+  EXPECT_STREQ(info.library_name_, ret_library_name) << "module name is " << info.module_name_;
+#endif
+}
+
+TEST_P(HalInfoMatchedTest, test_symbol_name_module_matching) {
+  char ret_symbol_name[MAX_BUFF] = {0, };
+  int ret;
+  auto info = GetParam();
+
+  ret = hal_common_get_backend_symbol_name(info.module_, ret_symbol_name, MAX_BUFF);
+  EXPECT_TRUE(ret == TIZEN_ERROR_NONE);
+  EXPECT_STREQ(ret_symbol_name, info.symbol_name_) << "module name is " << info.module_name_;
+}
+
+TEST_P(HalInfoMatchedTest, test_group_module_matching) {
+  struct __hal_module_info *info = NULL;
+
+  auto result_info = GetParam();
+
+  _hal_api_conf_init();
+  info = _hal_api_conf_get_module_info(result_info.module_);
+  ASSERT_TRUE(info != nullptr) << "module name is " << result_info.module_name_;
+  EXPECT_EQ(info->group, result_info.group_) << "module name is " << result_info.module_name_;
+  _hal_api_conf_exit();
+}
+
+TEST_P(HalInfoMatchedTest, test_license_module_matching) {
+  struct __hal_module_info *info = NULL;
+
+  auto result_info = GetParam();
+
+  _hal_api_conf_init();
+  info = _hal_api_conf_get_module_info(result_info.module_);
+  ASSERT_TRUE(info != nullptr) << "module name is " << result_info.module_name_;
+  EXPECT_EQ(info->license, result_info.license_) << "module name is " << result_info.module_name_;
+  _hal_api_conf_exit();
+}
+
+TEST_P(HalInfoMatchedTest, test_module_name_matching) {
+  struct __hal_module_info *info = NULL;
+
+  auto result_info = GetParam();
+
+  _hal_api_conf_init();
+  info = _hal_api_conf_get_module_info(result_info.module_);
+  ASSERT_TRUE(info != nullptr) << "module name is " << result_info.module_name_;
+  EXPECT_STREQ(info->module_name, result_info.module_name_) << "module name is " << result_info.module_name_;
+  _hal_api_conf_exit();
+}
+
+TEST_P(HalInfoMatchedTest, test_check_backend_abi_version) {
+  struct __hal_module_info *info = NULL;
+  auto result_info = GetParam();
+
+  _hal_api_conf_init();
+  info = _hal_api_conf_get_module_info(result_info.module_);
+  ASSERT_TRUE(info != nullptr);
+
+  vector<struct hal_abi_version_match> versions = result_info.versions_;
+  struct hal_abi_version_match *meta_versions = info->abi_versions;
+
+  for (unsigned int i = 0; i < versions.size(); i++) {
+    struct hal_abi_version_match tmp_version = versions[i];
+
+    int ret = hal_common_check_backend_abi_version(result_info.module_, tmp_version.platform_abi_version);
+    EXPECT_EQ(ret, TIZEN_ERROR_NONE) << "module name is " << result_info.module_name_;
+    EXPECT_EQ(meta_versions[i].platform_abi_version, tmp_version.platform_abi_version) << "module name is " << result_info.module_name_;;
+    EXPECT_EQ(meta_versions[i].backend_min_abi_version, tmp_version.backend_min_abi_version) << "module name is " << result_info.module_name_;;
+  }
+  _hal_api_conf_exit();
+}
diff --git a/tests/unittest/test_main.cc b/tests/unittest/test_main.cc
new file mode 100644 (file)
index 0000000..c2eb730
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <gtest/gtest.h>
+#include <gmock/gmock.h>
+
+int main(int argc, char** argv) {
+  int ret = -1;
+
+  try {
+    testing::InitGoogleTest(&argc, argv);
+  } catch(...) {
+    std::cout << "Exception occurred" << std::endl;
+  }
+
+  try {
+    ret = RUN_ALL_TESTS();
+  } catch (const ::testing::internal::GoogleTestFailureException& e) {
+    ret = -1;
+    std::cout << "GoogleTestFailureException was thrown:" << e.what() << std::endl;
+  }
+
+  return ret;
+}