DESTINATION ${LIBDIR}/pkgconfig)
INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/hal-api.json DESTINATION /etc/hal)
-ADD_SUBDIRECTORY(haltests)
+ADD_SUBDIRECTORY(tests)
+++ /dev/null
-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}
-)
+++ /dev/null
-/*
- * 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();
-}
+++ /dev/null
-/*
- * 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;
-}
%define name hal-api-common
%define devel_name hal-api-common-devel
+%define test_name hal-api-common-haltests
### main package #########
Name: %{name}
%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
make %{?jobs:-j%jobs}
%check
-(cd haltests && LD_LIBRARY_PATH=../ ctest -V)
+(cd tests/unittest && LD_LIBRARY_PATH=../../ ctest -V)
%install
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
%defattr(-,root,root,-)
%{_includedir}/hal/*.h
%{_libdir}/pkgconfig/*.pc
+
+%files -n %{test_name}
+%{_bindir}/hal/common-haltests
--- /dev/null
+ADD_SUBDIRECTORY(unittest)
+ADD_SUBDIRECTORY(haltests)
--- /dev/null
+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/)
--- /dev/null
+/*
+ * 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) {
+}
+
--- /dev/null
+/*
+ * 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;
+}
--- /dev/null
+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}
+)
--- /dev/null
+/*
+ * 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();
+}
--- /dev/null
+/*
+ * 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;
+}