From b55547f4a39963b9d5722b54beb419529ba91964 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Fri, 7 Jan 2022 13:32:40 +0900 Subject: [PATCH 01/16] Improve log Change-Id: I06cc3d0864ff712c8dff445a91fcfb9b26c1461e Signed-off-by: Jihoon Kim --- receiver/src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/receiver/src/main.cpp b/receiver/src/main.cpp index 1363791..f2d7d82 100644 --- a/receiver/src/main.cpp +++ b/receiver/src/main.cpp @@ -384,7 +384,7 @@ int main(int argc, char *argv[]) ret = service_app_main(argc, argv, &event_callback, NULL); if (ret != APP_ERROR_NONE) { - STLOGE("app_main() is failed. err = %d", ret); + STLOGE("service_app_main() is failed. err = %d", ret); } return ret; } -- 2.7.4 From 2e3d9421756738a659b3f68f31074ed72def323f Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Wed, 12 Jan 2022 10:50:34 +0900 Subject: [PATCH 02/16] Fix double close issue Handler 'db' is passed to a function at sticker-parser.c:884 by calling function 'sqlite3_close' after the handler is closed again at sticker-parser.c:861 by calling function 'sqlite3_close'. Handler 'stmt' is passed to a function at sticker-parser.c:842 by calling function 'sqlite3_finalize' after the handler is closed again at sticker-parser.c:819 by calling function 'sqlite3_finalize'. Change-Id: I969482a8713925dcf4539d70717f132d74cf987b Signed-off-by: Jihoon Kim --- sticker-parser/sticker-parser.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/sticker-parser/sticker-parser.c b/sticker-parser/sticker-parser.c index 321e141..20bd406 100644 --- a/sticker-parser/sticker-parser.c +++ b/sticker-parser/sticker-parser.c @@ -775,8 +775,6 @@ static void __delete_sticker_allowlist(const char *db_path, const char *app_id) ret = sqlite3_prepare_v2(db, "DELETE FROM sticker_whitelist_info WHERE provider_id = ?", -1, &stmt, NULL); if (ret != SQLITE_OK) { LOGE("failed to delete sticker allowlist : %s", sqlite3_errmsg(db)); - sqlite3_finalize(stmt); - sqlite3_close(db); goto cleanup; } @@ -816,8 +814,6 @@ static void __delete_sticker_info(const char *db_path, int record_id) ret = sqlite3_prepare_v2(db, "DELETE FROM sticker_info WHERE sticker_info_id = ?", -1, &stmt, NULL); if (ret != SQLITE_OK) { LOGE("failed to delete sticker information : %s", sqlite3_errmsg(db)); - sqlite3_finalize(stmt); - sqlite3_close(db); goto cleanup; } @@ -857,8 +853,6 @@ static void __delete_group_info(const char *db_path, const char *app_id) ret = sqlite3_prepare_v2(db, "DELETE FROM sticker_group_info WHERE app_id = ?", -1, &stmt, NULL); if (ret != SQLITE_OK) { LOGE("failed to delete group information : %s", sqlite3_errmsg(db)); - sqlite3_finalize(stmt); - sqlite3_close(db); goto cleanup; } @@ -1109,4 +1103,4 @@ int PKGMGR_CATEGORY_PARSER_PLUGIN_UPGRADE(const char *pkgid, const char *appid, PKGMGR_CATEGORY_PARSER_PLUGIN_INSTALL(pkgid, appid, list); return 0; -} \ No newline at end of file +} -- 2.7.4 From ee4da17a7e3c65d96f17daba079ca67e6f300d11 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Wed, 12 Jan 2022 10:58:51 +0900 Subject: [PATCH 03/16] Update package version to 1.2.1 Change-Id: I4c5f5b4d73818f90db568553162bfc52d21bd26f Signed-off-by: Jihoon Kim --- packaging/capi-ui-sticker.spec | 2 +- receiver/tizen-manifest.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index 8d2b693..f4f9be1 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -1,6 +1,6 @@ Name: capi-ui-sticker Summary: Sticker client library and daemon -Version: 0.1.78 +Version: 1.2.1 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 diff --git a/receiver/tizen-manifest.xml b/receiver/tizen-manifest.xml index da652b6..1e545ab 100644 --- a/receiver/tizen-manifest.xml +++ b/receiver/tizen-manifest.xml @@ -1,5 +1,5 @@ - + -- 2.7.4 From b23cdc99b3f3f66912362ab58c6f7c8f6c3309d7 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Thu, 20 Jan 2022 22:47:05 +0900 Subject: [PATCH 04/16] Change directory for gcov Change-Id: Ie91cc69f657a562e26ef3fb116daa152115deefa Signed-off-by: Jihoon Kim --- packaging/capi-ui-sticker.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index f4f9be1..600241e 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -140,8 +140,8 @@ mkdir -p %{buildroot}%{_sysconfdir}/dbus-1/system.d install -m 0644 %SOURCE3 %{buildroot}%{_sysconfdir}/dbus-1/system.d/capi-ui-sticker.conf %if 0%{?gcov:1} -install -d -m 755 %{buildroot}%{_datadir}/gcov/obj -tar xf %{name}-gcov.tar -C %{buildroot}%{_datadir}/gcov/obj +install -d -m 755 %{buildroot}%{_datadir}/gcov/obj/%{name} +tar xf %{name}-gcov.tar -C %{buildroot}%{_datadir}/gcov/obj/%{name} %endif %if 0%{?sec_product_feature_profile_wearable} -- 2.7.4 From c7b2720a6746aeed81b4d3494bc77f56eb684d8d Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Sun, 23 Jan 2022 08:18:16 +0900 Subject: [PATCH 05/16] Update package version to 1.2.2 Change-Id: Ia09a93df6d1897a2ed041d628bb49d7d5e7ebf07 Signed-off-by: Jihoon Kim --- packaging/capi-ui-sticker.spec | 2 +- receiver/tizen-manifest.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index 600241e..ec59009 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -1,6 +1,6 @@ Name: capi-ui-sticker Summary: Sticker client library and daemon -Version: 1.2.1 +Version: 1.2.2 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 diff --git a/receiver/tizen-manifest.xml b/receiver/tizen-manifest.xml index 1e545ab..d3835c5 100644 --- a/receiver/tizen-manifest.xml +++ b/receiver/tizen-manifest.xml @@ -1,5 +1,5 @@ - + -- 2.7.4 From 07999bf1c9a43462b0fd5de42fc0f45a2405654c Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Thu, 27 Jan 2022 06:16:28 +0900 Subject: [PATCH 06/16] Change gtest name and path Change-Id: I5045888543c05bd095e7f6b282e4e56402a61d92 Signed-off-by: Jihoon Kim --- CMakeLists.txt | 2 +- packaging/capi-ui-sticker.spec | 2 +- tests/CMakeLists.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4279bb2..16ad375 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,7 +54,7 @@ ENDIF() ## Test ENABLE_TESTING() -SET(UTC_STICKER sticker_unittests) +SET(UTC_STICKER capi-ui-sticker_gtest) ADD_TEST(NAME ${UTC_STICKER} COMMAND ${UTC_STICKER} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests) ADD_SUBDIRECTORY(tests) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index ec59009..1e62609 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -208,7 +208,7 @@ chsmack -a "User::App::Shared" /opt/usr/share/sticker-data %files unittests %license LICENSE -%{_bindir}/sticker_unittests +%{_libdir}/%{name}/* %if 0%{?gcov:1} %files gcov diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index eea11f2..031b15f 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -28,4 +28,4 @@ ADD_EXECUTABLE(${UTC_STICKER} ) TARGET_LINK_LIBRARIES(${UTC_STICKER} ${GTEST_LIBRARIES} ${pkgs_LDFLAGS} ${EXTRA_LDFLAGS}) -INSTALL(TARGETS ${UTC_STICKER} DESTINATION /usr/bin) +INSTALL(TARGETS ${UTC_STICKER} DESTINATION ${LIBDIR}/capi-ui-sticker/unittest) -- 2.7.4 From 4c1c28f827517c935a503f6a064b6f8540f08aa7 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Fri, 28 Jan 2022 01:00:50 +0900 Subject: [PATCH 07/16] Update package version to 1.2.3 Change-Id: I7c58e2fe9b6bdcb340109f6faf6aeb8207e5d089 Signed-off-by: Jihoon Kim --- packaging/capi-ui-sticker.spec | 2 +- receiver/tizen-manifest.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index 1e62609..735a7b8 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -1,6 +1,6 @@ Name: capi-ui-sticker Summary: Sticker client library and daemon -Version: 1.2.2 +Version: 1.2.3 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 diff --git a/receiver/tizen-manifest.xml b/receiver/tizen-manifest.xml index d3835c5..98336a4 100644 --- a/receiver/tizen-manifest.xml +++ b/receiver/tizen-manifest.xml @@ -1,5 +1,5 @@ - + -- 2.7.4 From b8ae858d2164c480cc806d7bcda3887f93e79d92 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Tue, 17 May 2022 15:22:08 +0900 Subject: [PATCH 08/16] Apply new gcov policy - Apply of tree type gcov structure - Create run-unittest.sh - Change the unittest path and name Change-Id: I3eefa3045cd81a7f16a35f4fcec0f150e6b42456 Signed-off-by: Jihoon Kim --- CMakeLists.txt | 2 +- packaging/capi-ui-sticker.spec | 44 +++++++++++++++++++++++++++++++++--------- tests/CMakeLists.txt | 2 +- 3 files changed, 37 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 16ad375..22c7a24 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,7 +54,7 @@ ENDIF() ## Test ENABLE_TESTING() -SET(UTC_STICKER capi-ui-sticker_gtest) +SET(UTC_STICKER capi-ui-sticker-unittest) ADD_TEST(NAME ${UTC_STICKER} COMMAND ${UTC_STICKER} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests) ADD_SUBDIRECTORY(tests) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index 735a7b8..4158f54 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -119,14 +119,45 @@ export FFLAGS+=" -DTIZEN_DEBUG_ENABLE -fvisibility=hidden" make %{?jobs:-j%jobs} -%if 0%{?gcov:1} -find . -name '*.gcno' | tar cf %{name}-gcov.tar -T - -%endif %install rm -rf %{buildroot} %make_install +%if 0%{?gcov:1} +builddir=$(basename $PWD) +gcno_obj_dir=%{buildroot}%{_datadir}/gcov/obj/%{name}/"$builddir" +mkdir -p "$gcno_obj_dir" +find . -name '*.gcno' -exec cp --parents '{}' "$gcno_obj_dir" ';' +%endif + +cat << EOF > run-unittest.sh +#!/bin/sh +setup() { + echo "setup start" +} + +test_main() { + echo "test_main start" + /usr/bin/capi-ui-sticker-unittest +} + +teardown() { + echo "teardown start" +} + +main() { + setup + test_main + teardown +} + +main "\$*" +EOF + +mkdir -p %{buildroot}%{_bindir}/tizen-unittests/%{name} +install -m 0755 run-unittest.sh %{buildroot}%{_bindir}/tizen-unittests/%{name} + mkdir -p %{buildroot}/%{TZ_SYS_ETC}/dump.d/module.d cp -af dump/sticker_log_dump.sh %{buildroot}/%{TZ_SYS_ETC}/dump.d/module.d @@ -139,11 +170,6 @@ install -m 0644 %SOURCE2 %{buildroot}%{_datadir}/dbus-1/system-services/org.tize mkdir -p %{buildroot}%{_sysconfdir}/dbus-1/system.d install -m 0644 %SOURCE3 %{buildroot}%{_sysconfdir}/dbus-1/system.d/capi-ui-sticker.conf -%if 0%{?gcov:1} -install -d -m 755 %{buildroot}%{_datadir}/gcov/obj/%{name} -tar xf %{name}-gcov.tar -C %{buildroot}%{_datadir}/gcov/obj/%{name} -%endif - %if 0%{?sec_product_feature_profile_wearable} %define tizen_sign 1 %define tizen_sign_base %{TZ_SYS_RO_APP}/%{_companion_app_name} @@ -208,7 +234,7 @@ chsmack -a "User::App::Shared" /opt/usr/share/sticker-data %files unittests %license LICENSE -%{_libdir}/%{name}/* +%{_bindir}/* %if 0%{?gcov:1} %files gcov diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 031b15f..7e877ef 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -28,4 +28,4 @@ ADD_EXECUTABLE(${UTC_STICKER} ) TARGET_LINK_LIBRARIES(${UTC_STICKER} ${GTEST_LIBRARIES} ${pkgs_LDFLAGS} ${EXTRA_LDFLAGS}) -INSTALL(TARGETS ${UTC_STICKER} DESTINATION ${LIBDIR}/capi-ui-sticker/unittest) +INSTALL(TARGETS ${UTC_STICKER} DESTINATION ${BINDIR}) -- 2.7.4 From a6dd3c25665efd30b368a13b85473788a76bcefc Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Tue, 24 May 2022 19:25:06 +0900 Subject: [PATCH 09/16] Update package version to 1.2.4 Change-Id: I168d781b7924f18f479d26562b9cb10e36811b6f Signed-off-by: Jihoon Kim --- packaging/capi-ui-sticker.spec | 2 +- receiver/tizen-manifest.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index 4158f54..c9f35ae 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -1,6 +1,6 @@ Name: capi-ui-sticker Summary: Sticker client library and daemon -Version: 1.2.3 +Version: 1.2.4 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 diff --git a/receiver/tizen-manifest.xml b/receiver/tizen-manifest.xml index 98336a4..e94020b 100644 --- a/receiver/tizen-manifest.xml +++ b/receiver/tizen-manifest.xml @@ -1,5 +1,5 @@ - + -- 2.7.4 From e75cbd1524a716430523f6780968f46c538ceb89 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Mon, 13 Jun 2022 14:00:41 +0900 Subject: [PATCH 10/16] Fix wrong file install in unittest package Change-Id: I9623ef1bfd5009999c0763f49d8c07419ccae17d Signed-off-by: Jihoon Kim --- packaging/capi-ui-sticker.spec | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index c9f35ae..5088b4b 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -234,7 +234,8 @@ chsmack -a "User::App::Shared" /opt/usr/share/sticker-data %files unittests %license LICENSE -%{_bindir}/* +%{_bindir}/capi-ui-sticker-unittest +%{_bindir}/tizen-unittests/* %if 0%{?gcov:1} %files gcov -- 2.7.4 From e0acb8cc69f946254b9fc8016cb4e5fe62f06ac6 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Mon, 13 Jun 2022 14:01:14 +0900 Subject: [PATCH 11/16] Update package version to 1.2.5 Change-Id: Ib172a7e0fe1b99628be51b0df04512c17c680b18 Signed-off-by: Jihoon Kim --- packaging/capi-ui-sticker.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index 5088b4b..f712f20 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -1,6 +1,6 @@ Name: capi-ui-sticker Summary: Sticker client library and daemon -Version: 1.2.4 +Version: 1.2.5 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 -- 2.7.4 From d9558316f1edd92fbec5c8b816760d93db4aa197 Mon Sep 17 00:00:00 2001 From: InHong Han Date: Thu, 30 Jun 2022 11:06:36 +0900 Subject: [PATCH 12/16] Reduce duplicate code in data_manager Change-Id: I91f33d3c2db2e72ff9f7061b1ab72d49f7ee4199 --- server/stickerd_data_manager.c | 118 ++++++++++------------------------------- 1 file changed, 27 insertions(+), 91 deletions(-) diff --git a/server/stickerd_data_manager.c b/server/stickerd_data_manager.c index ac976f2..79b65b5 100644 --- a/server/stickerd_data_manager.c +++ b/server/stickerd_data_manager.c @@ -1386,13 +1386,32 @@ static void _set_id_builder(char *id, GVariantBuilder *id_builder) g_variant_builder_add(id_builder, "(i)", atoi(id)); } +static int _set_reply_body(GList *list, GVariant **reply_body) +{ + int ret = STICKERD_SERVER_ERROR_NONE; + GVariantBuilder *builder = NULL; + + builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)")); + g_list_foreach(list, (GFunc) _set_id_builder, builder); + + *reply_body = g_variant_new("(a(i))", builder); + if (*reply_body == NULL) { + LOGE("Failed to create reply_body"); + ret = STICKERD_SERVER_ERROR_OPERATION_FAILED; + } + + if (builder) + g_variant_builder_unref(builder); + + return ret; +} + int stickerd_get_all_sticker_info(GVariant *parameters, GVariant **reply_body) { int ret; int offset, count; char *app_id = NULL; GList *id_list = NULL; - GVariantBuilder *id_builder = NULL; g_variant_get(parameters, "(&sii)", &app_id, &offset, &count); @@ -1404,21 +1423,10 @@ int stickerd_get_all_sticker_info(GVariant *parameters, GVariant **reply_body) return STICKERD_SERVER_ERROR_OPERATION_FAILED; } - id_builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)")); - g_list_foreach(id_list, (GFunc) _set_id_builder, id_builder); - - *reply_body = g_variant_new("(a(i))", id_builder); - if (*reply_body == NULL) { - LOGE("Failed to create reply_body"); - ret = STICKERD_SERVER_ERROR_OPERATION_FAILED; - } - + ret = _set_reply_body(id_list, reply_body); if (id_list) g_list_free_full(id_list, free); - if (id_builder) - g_variant_builder_unref(id_builder); - return ret; } @@ -1428,7 +1436,6 @@ int stickerd_get_sticker_info_by_app_id(GVariant *parameters, GVariant **reply_b GList *id_list = NULL; char *app_id = NULL; int offset, count; - GVariantBuilder *id_builder = NULL; g_variant_get(parameters, "(&sii)", &app_id, &offset, &count); @@ -1440,21 +1447,10 @@ int stickerd_get_sticker_info_by_app_id(GVariant *parameters, GVariant **reply_b return STICKERD_SERVER_ERROR_OPERATION_FAILED; } - id_builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)")); - g_list_foreach(id_list, (GFunc) _set_id_builder, id_builder); - - *reply_body = g_variant_new("(a(i))", id_builder); - if (*reply_body == NULL) { - LOGE("Failed to create reply_body"); - ret = STICKERD_SERVER_ERROR_OPERATION_FAILED; - } - + ret = _set_reply_body(id_list, reply_body); if (id_list) g_list_free_full(id_list, free); - if (id_builder) - g_variant_builder_unref(id_builder); - return ret; } @@ -1464,7 +1460,6 @@ int stickerd_get_sticker_info_by_type(GVariant *parameters, GVariant **reply_bod GList *id_list = NULL; char *app_id = NULL; int type, offset, count; - GVariantBuilder *id_builder = NULL; g_variant_get(parameters, "(&siii)", &app_id, &type, &offset, &count); @@ -1476,21 +1471,10 @@ int stickerd_get_sticker_info_by_type(GVariant *parameters, GVariant **reply_bod return STICKERD_SERVER_ERROR_OPERATION_FAILED; } - id_builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)")); - g_list_foreach(id_list, (GFunc) _set_id_builder, id_builder); - - *reply_body = g_variant_new("(a(i))", id_builder); - if (*reply_body == NULL) { - LOGE("Failed to create reply_body"); - ret = STICKERD_SERVER_ERROR_OPERATION_FAILED; - } - + ret = _set_reply_body(id_list, reply_body); if (id_list) g_list_free_full(id_list, free); - if (id_builder) - g_variant_builder_unref(id_builder); - return ret; } @@ -1501,7 +1485,6 @@ int stickerd_get_sticker_info_by_group(GVariant *parameters, GVariant **reply_bo char *app_id = NULL; char *group = NULL; int offset, count; - GVariantBuilder *id_builder = NULL; g_variant_get(parameters, "(&s&sii)", &app_id, &group, &offset, &count); @@ -1513,21 +1496,10 @@ int stickerd_get_sticker_info_by_group(GVariant *parameters, GVariant **reply_bo return STICKERD_SERVER_ERROR_OPERATION_FAILED; } - id_builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)")); - g_list_foreach(id_list, (GFunc) _set_id_builder, id_builder); - - *reply_body = g_variant_new("(a(i))", id_builder); - if (*reply_body == NULL) { - LOGE("Failed to create reply_body"); - ret = STICKERD_SERVER_ERROR_OPERATION_FAILED; - } - + ret = _set_reply_body(id_list, reply_body); if (id_list) g_list_free_full(id_list, free); - if (id_builder) - g_variant_builder_unref(id_builder); - return ret; } @@ -1538,7 +1510,6 @@ int stickerd_get_sticker_info_by_keyword(GVariant *parameters, GVariant **reply_ char *app_id = NULL; char *keyword = NULL; int offset, count; - GVariantBuilder *id_builder = NULL; g_variant_get(parameters, "(&s&sii)", &app_id, &keyword, &offset, &count); @@ -1550,21 +1521,10 @@ int stickerd_get_sticker_info_by_keyword(GVariant *parameters, GVariant **reply_ return STICKERD_SERVER_ERROR_OPERATION_FAILED; } - id_builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)")); - g_list_foreach(id_list, (GFunc) _set_id_builder, id_builder); - - *reply_body = g_variant_new("(a(i))", id_builder); - if (*reply_body == NULL) { - LOGE("Failed to create reply_body"); - ret = STICKERD_SERVER_ERROR_OPERATION_FAILED; - } - + ret = _set_reply_body(id_list, reply_body); if (id_list) g_list_free_full(id_list, free); - if (id_builder) - g_variant_builder_unref(id_builder); - return ret; } @@ -1574,7 +1534,6 @@ int stickerd_get_sticker_info_by_display_type(GVariant *parameters, GVariant **r GList *id_list = NULL; char *app_id = NULL; int type, offset, count; - GVariantBuilder *id_builder = NULL; g_variant_get(parameters, "(&siii)", &app_id, &type, &offset, &count); @@ -1586,21 +1545,10 @@ int stickerd_get_sticker_info_by_display_type(GVariant *parameters, GVariant **r return STICKERD_SERVER_ERROR_OPERATION_FAILED; } - id_builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)")); - g_list_foreach(id_list, (GFunc) _set_id_builder, id_builder); - - *reply_body = g_variant_new("(a(i))", id_builder); - if (*reply_body == NULL) { - LOGE("Failed to create reply_body"); - ret = STICKERD_SERVER_ERROR_OPERATION_FAILED; - } - + ret = _set_reply_body(id_list, reply_body); if (id_list) g_list_free_full(id_list, free); - if (id_builder) - g_variant_builder_unref(id_builder); - return ret; } @@ -1705,7 +1653,6 @@ int stickerd_get_recent_sticker_info(GVariant *parameters, GVariant **reply_body int ret; int count; GList *id_list = NULL; - GVariantBuilder *id_builder = NULL; g_variant_get(parameters, "(i)", &count); @@ -1717,21 +1664,10 @@ int stickerd_get_recent_sticker_info(GVariant *parameters, GVariant **reply_body return STICKERD_SERVER_ERROR_OPERATION_FAILED; } - id_builder = g_variant_builder_new(G_VARIANT_TYPE("a(i)")); - g_list_foreach(id_list, (GFunc) _set_id_builder, id_builder); - - *reply_body = g_variant_new("(a(i))", id_builder); - if (*reply_body == NULL) { - LOGE("Failed to create reply_body"); - ret = STICKERD_SERVER_ERROR_OPERATION_FAILED; - } - + ret = _set_reply_body(id_list, reply_body); if (id_list) g_list_free_full(id_list, free); - if (id_builder) - g_variant_builder_unref(id_builder); - return ret; } -- 2.7.4 From 95868f12996dbaee3f4f7984a0660dc91e1644ca Mon Sep 17 00:00:00 2001 From: InHong Han Date: Thu, 30 Jun 2022 13:51:07 +0900 Subject: [PATCH 13/16] Reduce duplicate code in db_manager Change-Id: I704e77358480b564ba88847e600fef06cdc05cf4 --- server/stickerd_db_manager.c | 86 +++++++++++++++++--------------------------- 1 file changed, 33 insertions(+), 53 deletions(-) diff --git a/server/stickerd_db_manager.c b/server/stickerd_db_manager.c index dfa84c9..e299e6d 100644 --- a/server/stickerd_db_manager.c +++ b/server/stickerd_db_manager.c @@ -186,25 +186,10 @@ static const char *_db_get_query(sticker_info_db_type sticker_type, command_type return query; } -static int _recover_db(void) +static int _create_db_table(sqlite3 *db) { - int ret = STICKERD_SERVER_ERROR_NONE; - sqlite3 *db = NULL; char *err = NULL; - - LOGD("Start to recover sticker db"); - //Remove sticker database file - if (unlink(STICKER_DB_PATH) == -1) - LOGE("Failed to remove db file"); - - ret = sqlite3_open_v2(STICKER_DB_PATH, &db, SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE, NULL); - if (ret != SQLITE_OK) { - LOGE("Failed to open db : %s", sqlite3_errmsg(db)); - if (unlink(STICKER_DB_PATH) == -1) - LOGE("Failed to remove db file"); - ret = STICKERD_SERVER_ERROR_DB_FAILED; - goto cleanup; - } + int ret = STICKERD_SERVER_ERROR_NONE; ret = sqlite3_exec(db, STICKER_INFO_CREATE_TABLE, NULL, NULL, &err); if (ret != SQLITE_OK) { @@ -238,15 +223,41 @@ static int _recover_db(void) if (ret != SQLITE_OK) { LOGE("Failed to create sticker_group_info table : %s", err); ret = STICKERD_SERVER_ERROR_DB_FAILED; - goto cleanup; } - is_corrupted = FALSE; - cleanup: if (err) sqlite3_free(err); + return ret; +} + +static int _recover_db(void) +{ + int ret = STICKERD_SERVER_ERROR_NONE; + sqlite3 *db = NULL; + + LOGD("Start to recover sticker db"); + //Remove sticker database file + if (unlink(STICKER_DB_PATH) == -1) + LOGE("Failed to remove db file"); + + ret = sqlite3_open_v2(STICKER_DB_PATH, &db, SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE, NULL); + if (ret != SQLITE_OK) { + LOGE("Failed to open db : %s", sqlite3_errmsg(db)); + if (unlink(STICKER_DB_PATH) == -1) + LOGE("Failed to remove db file"); + ret = STICKERD_SERVER_ERROR_DB_FAILED; + goto cleanup; + } + + ret = _create_db_table(db); + if (ret != SQLITE_OK) + goto cleanup; + + is_corrupted = FALSE; + +cleanup: if (db) sqlite3_close(db); @@ -278,40 +289,9 @@ int stickerd_db_init(void) goto cleanup; } - ret = sqlite3_exec(db, STICKER_INFO_CREATE_TABLE, NULL, NULL, &err); - if (ret != SQLITE_OK) { - LOGE("Failed to create sticker_info table : %s" , err); - ret = STICKERD_SERVER_ERROR_DB_FAILED; - goto cleanup; - } - - ret = sqlite3_exec(db, STICKER_KEYWORD_INFO_CREATE_TABLE, NULL, NULL, &err); - if (ret != SQLITE_OK) { - LOGE("Failed to create sticker_keyword_info table : %s", err); - ret = STICKERD_SERVER_ERROR_DB_FAILED; - goto cleanup; - } - - ret = sqlite3_exec(db, STICKER_WHITELIST_INFO_CREATE_TABLE, NULL, NULL, &err); - if (ret != SQLITE_OK) { - LOGE("Failed to create sticker_whitelist_info table : %s", err); - ret = STICKERD_SERVER_ERROR_DB_FAILED; - goto cleanup; - } - - ret = sqlite3_exec(db, STICKER_RECENT_HISTORY_INFO_CREATE_TABLE, NULL, NULL, &err); - if (ret != SQLITE_OK) { - LOGE("Failed to create sticker_recent_history_info table : %s", err); - ret = STICKERD_SERVER_ERROR_DB_FAILED; - goto cleanup; - } - - ret = sqlite3_exec(db, STICKER_GROUP_INFO_CREATRE_TABLE, NULL, NULL, &err); - if (ret != SQLITE_OK) { - LOGE("Failed to create sticker_group_info table : %s", err); - ret = STICKERD_SERVER_ERROR_DB_FAILED; + ret = _create_db_table(db); + if (ret != SQLITE_OK) goto cleanup; - } ret = sqlite3_exec(db, "PRAGMA journal_mode = WAL", NULL, NULL, &err); if (ret != SQLITE_OK) { -- 2.7.4 From e54f1a8eda0cfe5e8144ce27ac4086800cbbee5e Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Fri, 1 Jul 2022 10:22:05 +0900 Subject: [PATCH 14/16] Fix typo in sqlite definition Change-Id: I64454070758f7f0237d57f1a51e11c4c543ea005 Signed-off-by: Jihoon Kim --- server/stickerd_db_manager.c | 10 +++++----- sticker-parser/sticker-parser.c | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/server/stickerd_db_manager.c b/server/stickerd_db_manager.c index e299e6d..7240d04 100644 --- a/server/stickerd_db_manager.c +++ b/server/stickerd_db_manager.c @@ -72,7 +72,7 @@ #define STICKER_KEYWORD_INFO_CREATE_TABLE "CREATE TABLE IF NOT EXISTS sticker_keyword_info(keyword_id INTEGER PRIMARY KEY AUTOINCREMENT, sticker_info_id INTEGER, keyword TEXT NOT NULL, FOREIGN KEY (sticker_info_id) REFERENCES sticker_info(sticker_info_id) ON DELETE CASCADE)" #define STICKER_WHITELIST_INFO_CREATE_TABLE "CREATE TABLE IF NOT EXISTS sticker_whitelist_info(whitelist_id INTEGER PRIMARY KEY AUTOINCREMENT, provider_id TEXT NOT NULL, consumer_id TEXT NOT NULL)" #define STICKER_RECENT_HISTORY_INFO_CREATE_TABLE "CREATE TABLE IF NOT EXISTS sticker_recent_history_info(history_id INTEGER PRIMARY KEY AUTOINCREMENT, sticker_info_id INTEGER, count INTEGER NOT NULL, timestamp TEXT NOT NULL, FOREIGN KEY (sticker_info_id) REFERENCES sticker_info(sticker_info_id) ON DELETE CASCADE)" -#define STICKER_GROUP_INFO_CREATRE_TABLE "CREATE TABLE IF NOT EXISTS sticker_group_info(group_id INTEGER PRIMARY KEY AUTOINCREMENT, app_id TEXT NOT NULL, group_name TEXT NOT NULL, type INTEGER NOT NULL, uri TEXT NOT NULL)" +#define STICKER_GROUP_INFO_CREATE_TABLE "CREATE TABLE IF NOT EXISTS sticker_group_info(group_id INTEGER PRIMARY KEY AUTOINCREMENT, app_id TEXT NOT NULL, group_name TEXT NOT NULL, type INTEGER NOT NULL, uri TEXT NOT NULL)" #define STICKER_DB_INSERT_STICKER_INFO "INSERT INTO sticker_info (app_id, type, uri, thumbnail, description, group_name, date, display_type) VALUES (?, ?, ?, ?, ?, ?, DateTime('now','localtime'), ?)" #define STICKER_DB_INSERT_STICKER_KEYWORD_INFO "INSERT INTO sticker_keyword_info (sticker_info_id, keyword) VALUES (?, ?)" @@ -95,7 +95,7 @@ #define STICKER_DB_GET_LATEST_RECORD_ID "SELECT sticker_info_id FROM sticker_info ORDER BY sticker_info_id DESC LIMIT 1" #define STICKER_DB_GET_STICKER_INFO_BY_RECORD_ID "SELECT * FROM sticker_info WHERE sticker_info_id = ?" #define STICKER_DB_GET_KEYWORD_INFO_BY_RECORD_ID "SELECT keyword FROM sticker_keyword_info WHERE sticker_info_id = ?" -#define STICKER_DB_GET_IMAGE_INFO_BY_RECORED_ID "SELECT type, uri, thumbnail FROM sticker_info WHERE sticker_info_id = ?" +#define STICKER_DB_GET_IMAGE_INFO_BY_RECORD_ID "SELECT type, uri, thumbnail FROM sticker_info WHERE sticker_info_id = ?" #define STICKER_DB_GET_IMAGE_INFO_BY_URI "SELECT type, thumbnail FROM sticker_info WHERE uri = ?" #define STICKER_DB_GET_ALL_GROUP_LIST "SELECT DISTINCT group_name FROM sticker_info WHERE app_id NOT IN (SELECT DISTINCT provider_id FROM sticker_whitelist_info WHERE provider_id NOT IN (SELECT provider_id FROM sticker_whitelist_info WHERE consumer_id = ?))" #define STICKER_DB_GET_ALL_KEYWORD_LIST "SELECT DISTINCT keyword FROM sticker_keyword_info WHERE sticker_info_id IN (SELECT sticker_info_id from sticker_info WHERE app_id NOT IN (SELECT DISTINCT provider_id FROM sticker_whitelist_info WHERE provider_id NOT IN (SELECT provider_id FROM sticker_whitelist_info WHERE consumer_id = ?)))" @@ -219,7 +219,7 @@ static int _create_db_table(sqlite3 *db) goto cleanup; } - ret = sqlite3_exec(db, STICKER_GROUP_INFO_CREATRE_TABLE, NULL, NULL, &err); + ret = sqlite3_exec(db, STICKER_GROUP_INFO_CREATE_TABLE, NULL, NULL, &err); if (ret != SQLITE_OK) { LOGE("Failed to create sticker_group_info table : %s", err); ret = STICKERD_SERVER_ERROR_DB_FAILED; @@ -486,7 +486,7 @@ int stickerd_db_delete_sticker_info(int record_id) if (!db) return STICKERD_SERVER_ERROR_DB_FAILED; - ret = sqlite3_prepare_v2(db, STICKER_DB_GET_IMAGE_INFO_BY_RECORED_ID, -1, &stmt, NULL); + ret = sqlite3_prepare_v2(db, STICKER_DB_GET_IMAGE_INFO_BY_RECORD_ID, -1, &stmt, NULL); if (ret != SQLITE_OK) { LOGE("fail to get image files : %s", sqlite3_errmsg(db)); goto cleanup; @@ -1288,4 +1288,4 @@ cleanup: sqlite3_close(db); return STICKERD_SERVER_ERROR_DB_FAILED; -} \ No newline at end of file +} diff --git a/sticker-parser/sticker-parser.c b/sticker-parser/sticker-parser.c index 20bd406..f72286b 100644 --- a/sticker-parser/sticker-parser.c +++ b/sticker-parser/sticker-parser.c @@ -46,7 +46,7 @@ #define STICKER_KEYWORD_INFO_CREATE_TABLE "CREATE TABLE IF NOT EXISTS sticker_keyword_info(keyword_id INTEGER PRIMARY KEY AUTOINCREMENT, sticker_info_id INTEGER, keyword TEXT NOT NULL, FOREIGN KEY (sticker_info_id) REFERENCES sticker_info(sticker_info_id) ON DELETE CASCADE)" #define STICKER_WHITELIST_INFO_CREATE_TABLE "CREATE TABLE IF NOT EXISTS sticker_whitelist_info(whitelist_id INTEGER PRIMARY KEY AUTOINCREMENT, provider_id TEXT NOT NULL, consumer_id TEXT NOT NULL)" #define STICKER_RECENT_HISTORY_INFO_CREATE_TABLE "CREATE TABLE IF NOT EXISTS sticker_recent_history_info(history_id INTEGER PRIMARY KEY AUTOINCREMENT, sticker_info_id INTEGER, count INTEGER NOT NULL, timestamp TEXT NOT NULL, FOREIGN KEY (sticker_info_id) REFERENCES sticker_info(sticker_info_id) ON DELETE CASCADE)" -#define STICKER_GROUP_INFO_CREATRE_TABLE "CREATE TABLE IF NOT EXISTS sticker_group_info(group_id INTEGER PRIMARY KEY AUTOINCREMENT, app_id TEXT NOT NULL, group_name TEXT NOT NULL, type INTEGER NOT NULL, uri TEXT NOT NULL)" +#define STICKER_GROUP_INFO_CREATE_TABLE "CREATE TABLE IF NOT EXISTS sticker_group_info(group_id INTEGER PRIMARY KEY AUTOINCREMENT, app_id TEXT NOT NULL, group_name TEXT NOT NULL, type INTEGER NOT NULL, uri TEXT NOT NULL)" #define UIFW_ID 502 #define APPFW_ID 301 #define MAX_ERROR_BUFFER 256 @@ -139,7 +139,7 @@ static void __recover_db() goto cleanup; } - ret = sqlite3_exec(db, STICKER_GROUP_INFO_CREATRE_TABLE, NULL, NULL, &err); + ret = sqlite3_exec(db, STICKER_GROUP_INFO_CREATE_TABLE, NULL, NULL, &err); if (ret != SQLITE_OK) { LOGE("Failed to create sticker_recent_history_info table : %s", err); goto cleanup; @@ -207,7 +207,7 @@ static void __db_init() goto cleanup; } - ret = sqlite3_exec(db, STICKER_GROUP_INFO_CREATRE_TABLE, NULL, NULL, &err); + ret = sqlite3_exec(db, STICKER_GROUP_INFO_CREATE_TABLE, NULL, NULL, &err); if (ret != SQLITE_OK) { LOGE("Failed to create sticker_recent_history_info table : %s", err); goto cleanup; -- 2.7.4 From c120ed9763540cad48ab15511b8dd5075a458dd0 Mon Sep 17 00:00:00 2001 From: InHong Han Date: Thu, 30 Jun 2022 14:37:14 +0900 Subject: [PATCH 15/16] Update package version to 1.2.6 Change-Id: I88d970095ee8b90fbe48352fa2890df12d8d058d --- packaging/capi-ui-sticker.spec | 2 +- receiver/tizen-manifest.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index f712f20..e6f82c4 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -1,6 +1,6 @@ Name: capi-ui-sticker Summary: Sticker client library and daemon -Version: 1.2.5 +Version: 1.2.6 Release: 1 Group: Graphics & UI Framework/Input License: Apache-2.0 diff --git a/receiver/tizen-manifest.xml b/receiver/tizen-manifest.xml index e94020b..a832bf3 100644 --- a/receiver/tizen-manifest.xml +++ b/receiver/tizen-manifest.xml @@ -1,5 +1,5 @@ - + -- 2.7.4 From 1b3844bcb40c90c7de3dcd48a19c5c9acbc9e276 Mon Sep 17 00:00:00 2001 From: Jihoon Kim Date: Mon, 11 Jul 2022 13:26:52 +0900 Subject: [PATCH 16/16] Use explicit unittest filename Change-Id: I54b2dbf28889c2611293aa05ad39a2b7770cd067 Signed-off-by: Jihoon Kim --- packaging/capi-ui-sticker.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/capi-ui-sticker.spec b/packaging/capi-ui-sticker.spec index e6f82c4..d501bd2 100644 --- a/packaging/capi-ui-sticker.spec +++ b/packaging/capi-ui-sticker.spec @@ -235,7 +235,7 @@ chsmack -a "User::App::Shared" /opt/usr/share/sticker-data %files unittests %license LICENSE %{_bindir}/capi-ui-sticker-unittest -%{_bindir}/tizen-unittests/* +%{_bindir}/tizen-unittests/%{name}/run-unittest.sh %if 0%{?gcov:1} %files gcov -- 2.7.4