From 31834b78f98cf8ebf3ef95ab99d51639bc3865e3 Mon Sep 17 00:00:00 2001 From: "jk7744.park" Date: Sun, 1 Feb 2015 13:33:21 +0900 Subject: [PATCH] tizen 2.3 release --- CMakeLists.txt | 13 +- TC/build.sh | 20 ++++ TC/execute.sh | 19 +++ TC/tet_code | 12 ++ TC/tet_scen | 7 ++ TC/tetbuild.cfg | 2 + TC/tetclean.cfg | 2 + TC/tetexec.cfg | 1 + TC/unit/Makefile | 25 ++++ TC/unit/tc_gen.sh | 28 +++++ TC/unit/tslist | 3 + ..._ApplicationFW_ac_check_launch_privilege_func.c | 132 +++++++++++++++++++++ ...plicationFW_ac_register_launch_privilege_func.c | 130 ++++++++++++++++++++ ...icationFW_ac_unregister_launch_privilege_func.c | 132 +++++++++++++++++++++ TC/unit/utc_MODULE_API_func.c.in | 76 ++++++++++++ app-checker-server.pc.in | 2 +- app-checker.pc.in | 2 +- include/internal.h | 76 ++++++------ packaging/app-checker.spec | 52 ++++---- src/ac_server.c | 10 +- src/ac_sock.c | 25 +++- 21 files changed, 687 insertions(+), 82 deletions(-) create mode 100755 TC/build.sh create mode 100755 TC/execute.sh create mode 100755 TC/tet_code create mode 100755 TC/tet_scen create mode 100755 TC/tetbuild.cfg create mode 100755 TC/tetclean.cfg create mode 100755 TC/tetexec.cfg create mode 100755 TC/unit/Makefile create mode 100755 TC/unit/tc_gen.sh create mode 100755 TC/unit/tslist create mode 100755 TC/unit/utc_ApplicationFW_ac_check_launch_privilege_func.c create mode 100755 TC/unit/utc_ApplicationFW_ac_register_launch_privilege_func.c create mode 100755 TC/unit/utc_ApplicationFW_ac_unregister_launch_privilege_func.c create mode 100755 TC/unit/utc_MODULE_API_func.c.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 2de8706..622b475 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,7 @@ SET(VERSION "${VERSION_MAJOR}.1.0") SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(EXEC_PREFIX "\${prefix}") +SET(LIBDIR "\${prefix}/lib") SET(INCLUDEDIR "\${prefix}/include/app-checker") # Build type : Release @@ -56,7 +57,7 @@ ENDIF("${ARCH}" STREQUAL "arm") ADD_DEFINITIONS("-DPREFIX=\"${CMAKE_INSTALL_PREFIX}\"") ADD_DEFINITIONS("-DRW_DATA_PREFIX=\"/opt/share\"") -ADD_DEFINITIONS("-DLIBPREFIX=\"${LIB_INSTALL_DIR}\"") + # Linker flags SET(CMAKE_EXE_LINKER_FLAGS "-Wl,--as-needed") @@ -89,15 +90,15 @@ CONFIGURE_FILE(app-checker.pc.in app-checker.pc @ONLY) CONFIGURE_FILE(app-checker-server.pc.in app-checker-server.pc @ONLY) -MESSAGE("LIBDIR ${LIB_INSTALL_DIR}") + ### Install ### -INSTALL(TARGETS app-checker DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries) -INSTALL(TARGETS ${DAEMON_NAME} DESTINATION ${LIB_INSTALL_DIR} COMPONENT RuntimeLibraries) +INSTALL(TARGETS app-checker DESTINATION lib COMPONENT RuntimeLibraries) +INSTALL(TARGETS ${DAEMON_NAME} DESTINATION lib COMPONENT RuntimeLibraries) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/app-checker.h DESTINATION include/app-checker) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/app-checker.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/app-checker.pc DESTINATION lib/pkgconfig) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/include/app-checker-server.h DESTINATION include/app-checker) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/app-checker-server.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) +INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/app-checker-server.pc DESTINATION lib/pkgconfig) diff --git a/TC/build.sh b/TC/build.sh new file mode 100755 index 0000000..e7a9432 --- /dev/null +++ b/TC/build.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +export TET_INSTALL_PATH=$HOME/git/tetware/TETware # local tetware path +export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-target +export PATH=$TET_TARGET_PATH/bin:$PATH +export LD_LIBRARY_PATH=$TET_TARGET_PATH/lib/tet3:$LD_LIBRARY_PATH +export TET_ROOT=$TET_TARGET_PATH + +export TET_SUITE_ROOT=`pwd` +FILE_NAME_EXTENSION=`date +%s` + +RESULT_DIR=results +HTML_RESULT=$RESULT_DIR/build-tar-result-$FILE_NAME_EXTENSION.html +JOURNAL_RESULT=$RESULT_DIR/build-tar-result-$FILE_NAME_EXTENSION.journal + +mkdir -p $RESULT_DIR + +tcc -c -p ./ +tcc -b -j $JOURNAL_RESULT -p ./ +grw -c 3 -f chtml -o $HTML_RESULT $JOURNAL_RESULT diff --git a/TC/execute.sh b/TC/execute.sh new file mode 100755 index 0000000..a119011 --- /dev/null +++ b/TC/execute.sh @@ -0,0 +1,19 @@ +#!/bin/sh +export TET_INSTALL_PATH=/mnt/nfs/git/tetware/TETware +export TET_TARGET_PATH=$TET_INSTALL_PATH/tetware-target +export PATH=$TET_TARGET_PATH/bin:$PATH +export LD_LIBRARY_PATH=$TET_TARGET_PATH/lib/tet3:$LD_LIBRARY_PATH + +export TET_ROOT=$TET_TARGET_PATH + +export TET_SUITE_ROOT=`pwd` +FILE_NAME_EXTENSION=`date +%s` + +RESULT_DIR=results +HTML_RESULT=$RESULT_DIR/exec-tar-result-$FILE_NAME_EXTENSION.html +JOURNAL_RESULT=$RESULT_DIR/exec-tar-result-$FILE_NAME_EXTENSION.journal + +mkdir -p $RESULT_DIR + +tcc -e -j $JOURNAL_RESULT -p ./ +grw -c 3 -f chtml -o $HTML_RESULT $JOURNAL_RESULT diff --git a/TC/tet_code b/TC/tet_code new file mode 100755 index 0000000..a2cf6c1 --- /dev/null +++ b/TC/tet_code @@ -0,0 +1,12 @@ +# TET reserved codes +0 "PASS" +1 "FAIL" +2 "UNRESOLVED" +3 "NOTINUSE" +4 "UNSUPPORTED" +5 "UNTESTED" +6 "UNINITIATED" +7 "NORESULT" + +# Test suite additional codes +33 "INSPECT" diff --git a/TC/tet_scen b/TC/tet_scen new file mode 100755 index 0000000..43cbc9b --- /dev/null +++ b/TC/tet_scen @@ -0,0 +1,7 @@ +all + ^TEST +##### Scenarios for TEST ##### + +# Test scenario +TEST + :include:/unit/tslist diff --git a/TC/tetbuild.cfg b/TC/tetbuild.cfg new file mode 100755 index 0000000..a584acd --- /dev/null +++ b/TC/tetbuild.cfg @@ -0,0 +1,2 @@ +TET_OUTPUT_CAPTURE=False +TET_BUILD_TOOL=make diff --git a/TC/tetclean.cfg b/TC/tetclean.cfg new file mode 100755 index 0000000..c66eda4 --- /dev/null +++ b/TC/tetclean.cfg @@ -0,0 +1,2 @@ +TET_OUTPUT_CAPTURE=False +TET_CLEAN_TOOL=make clean diff --git a/TC/tetexec.cfg b/TC/tetexec.cfg new file mode 100755 index 0000000..0d9d39a --- /dev/null +++ b/TC/tetexec.cfg @@ -0,0 +1 @@ +TET_OUTPUT_CAPTURE=False diff --git a/TC/unit/Makefile b/TC/unit/Makefile new file mode 100755 index 0000000..8993f7d --- /dev/null +++ b/TC/unit/Makefile @@ -0,0 +1,25 @@ +CC ?= gcc + +TARGETS = utc_ApplicationFW_ac_register_launch_privilege_func \ + utc_ApplicationFW_ac_unregister_launch_privilege_func \ + utc_ApplicationFW_ac_check_launch_privilege_func + +PKGS = glib-2.0 dlog app-checker + +LDFLAGS = `pkg-config --libs $(PKGS)` +LDFLAGS += $(TET_ROOT)/lib/tet3/tcm_s.o +LDFLAGS += -L$(TET_ROOT)/lib/tet3 -ltcm_s +LDFLAGS += -L$(TET_ROOT)/lib/tet3 -lapi_s +LDFLAGS += -L/usr/lib -lpthread + +CFLAGS = -I. `pkg-config --cflags $(PKGS)` +CFLAGS += -I$(TET_ROOT)/inc/tet3 +CFLAGS += -Wall + +all: $(TARGETS) + +$(TARGETS): %: %.c + $(CC) -o $@ $< $(CFLAGS) $(LDFLAGS) + +clean: + rm -f $(TARGETS) diff --git a/TC/unit/tc_gen.sh b/TC/unit/tc_gen.sh new file mode 100755 index 0000000..54f482d --- /dev/null +++ b/TC/unit/tc_gen.sh @@ -0,0 +1,28 @@ +#!/bin/sh + +TMPSTR=$0 +SCRIPT=${TMPSTR##*/} + +if [ $# -lt 2 ]; then + echo "Usage) $SCRIPT module_name api_name" + exit 1 +fi + +MODULE=$1 +API=$2 +TEMPLATE=utc_MODULE_API_func.c.in +TESTCASE=utc_${MODULE}_${API}_func + +sed -e ' + s^@API@^'"$API"'^g + s^@MODULE@^'"$MODULE"'^g + ' $TEMPLATE > $TESTCASE.c + +if [ ! -e "$TESTCASE.c" ]; then + echo "Failed" + exit 1 +fi +echo "Testcase file is $TESTCASE.c" +echo "Done" +echo "please put \"$TESTCASE\" as Target in Makefile" +echo "please put \"/unit/$TESTCASE\" in tslist" diff --git a/TC/unit/tslist b/TC/unit/tslist new file mode 100755 index 0000000..2478015 --- /dev/null +++ b/TC/unit/tslist @@ -0,0 +1,3 @@ +/unit/utc_ApplicationFW_ac_register_launch_privilege_func +/unit/utc_ApplicationFW_ac_unregister_launch_privilege_func +/unit/utc_ApplicationFW_ac_check_launch_privilege_func diff --git a/TC/unit/utc_ApplicationFW_ac_check_launch_privilege_func.c b/TC/unit/utc_ApplicationFW_ac_check_launch_privilege_func.c new file mode 100755 index 0000000..efde596 --- /dev/null +++ b/TC/unit/utc_ApplicationFW_ac_check_launch_privilege_func.c @@ -0,0 +1,132 @@ +/* + * app-checker + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee , Sewook Park , + * Jaeho Lee , Shobhit Srivastava + * + * 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 +#include +#include +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup) (void) = startup; +void (*tet_cleanup) (void) = cleanup; + +static void utc_ApplicationFW_ac_check_launch_privilege_func_01(void); +static void utc_ApplicationFW_ac_check_launch_privilege_func_02(void); +static void utc_ApplicationFW_ac_check_launch_privilege_func_03(void); +static void utc_ApplicationFW_ac_check_launch_privilege_func_04(void); + +enum { + POSITIVE_TC_IDX = 0x01, + NEGATIVE_TC_IDX, +}; + +struct tet_testlist tet_testlist[] = { + {utc_ApplicationFW_ac_check_launch_privilege_func_01, POSITIVE_TC_IDX}, + {utc_ApplicationFW_ac_check_launch_privilege_func_02, NEGATIVE_TC_IDX}, + {utc_ApplicationFW_ac_check_launch_privilege_func_03, NEGATIVE_TC_IDX}, + {utc_ApplicationFW_ac_check_launch_privilege_func_04, NEGATIVE_TC_IDX}, + {NULL, 0}, +}; + +static void startup(void) +{ +} + +static void cleanup(void) +{ +} + +/** API Prototype +*int ac_check_launch_privilege(const char *pkg_name, +* const char *pkg_type, int pid); +*/ + + +/** + * @brief Positive test case of ac_check_launch_privilege() + */ +static void utc_ApplicationFW_ac_check_launch_privilege_func_01(void) +{ + int r = AC_R_ERROR; + r = ac_check_launch_privilege("com.samsung.calculator", "deb", + getpid()); + if (r < 0) { + tet_infoline + ("ac_check_launch_privilege()" + " failed in positive test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} + +/** + * @brief Negative test case 01 of ac_check_launch_privilege() + */ +static void utc_ApplicationFW_ac_check_launch_privilege_func_02(void) +{ + int r = AC_R_ERROR; + r = ac_check_launch_privilege(NULL, "deb", getpid()); + if (r != AC_R_EINVAL) { + tet_infoline + ("ac_check_launch_privilege()" + " failed in negative test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} + +/** + * @brief Negative test case 02 of ac_check_launch_privilege() + */ +static void utc_ApplicationFW_ac_check_launch_privilege_func_03(void) +{ + int r = AC_R_ERROR; + r = ac_check_launch_privilege("com.samsung.calculator", NULL, getpid()); + if (r != AC_R_EINVAL) { + tet_infoline + ("ac_check_launch_privilege()" + " failed in negative test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} + +/** + * @brief Negative test case 03 of ac_check_launch_privilege() + */ +static void utc_ApplicationFW_ac_check_launch_privilege_func_04(void) +{ + int r = AC_R_ERROR; + r = ac_check_launch_privilege(NULL, NULL, getpid()); + if (r != AC_R_EINVAL) { + tet_infoline + ("ac_check_launch_privilege()" + " failed in negative test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} diff --git a/TC/unit/utc_ApplicationFW_ac_register_launch_privilege_func.c b/TC/unit/utc_ApplicationFW_ac_register_launch_privilege_func.c new file mode 100755 index 0000000..710a8c8 --- /dev/null +++ b/TC/unit/utc_ApplicationFW_ac_register_launch_privilege_func.c @@ -0,0 +1,130 @@ +/* + * app-checker + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee , Sewook Park , + * Jaeho Lee , Shobhit Srivastava + * + * 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 +#include +static void startup(void); +static void cleanup(void); + +void (*tet_startup) (void) = startup; +void (*tet_cleanup) (void) = cleanup; + +static void utc_ApplicationFW_ac_register_launch_privilege_func_01(void); +static void utc_ApplicationFW_ac_register_launch_privilege_func_02(void); +static void utc_ApplicationFW_ac_register_launch_privilege_func_03(void); +static void utc_ApplicationFW_ac_register_launch_privilege_func_04(void); + +enum { + POSITIVE_TC_IDX = 0x01, + NEGATIVE_TC_IDX, +}; + +struct tet_testlist tet_testlist[] = { + {utc_ApplicationFW_ac_register_launch_privilege_func_01, + POSITIVE_TC_IDX}, + {utc_ApplicationFW_ac_register_launch_privilege_func_02, + NEGATIVE_TC_IDX}, + {utc_ApplicationFW_ac_register_launch_privilege_func_03, + NEGATIVE_TC_IDX}, + {utc_ApplicationFW_ac_register_launch_privilege_func_04, + NEGATIVE_TC_IDX}, + {NULL, 0}, +}; + +static void startup(void) +{ +} + +static void cleanup(void) +{ +} +/** API Prototype +*int ac_register_launch_privilege(const char *pkg_name, +* const char *pkg_type); +*/ + +/** + * @brief Positive test case of ac_register_launch_privilege() + */ +static void utc_ApplicationFW_ac_register_launch_privilege_func_01(void) +{ + int r = AC_R_ERROR; + r = ac_register_launch_privilege("com.samsung.calculator", "deb"); + if (r < 0 && r != AC_R_ENOPULUGINS) { + tet_infoline + ("ac_register_launch_privilege()" + " failed in positive test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} + +/** + * @brief Negative test case 01 of ac_register_launch_privilege() + */ +static void utc_ApplicationFW_ac_register_launch_privilege_func_02(void) +{ + int r = AC_R_ERROR; + r = ac_register_launch_privilege(NULL, "deb"); + if (r != AC_R_EINVAL) { + tet_infoline + ("ac_register_launch_privilege()" + " failed in negative test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} + +/** + * @brief Negative test case 02 of ac_register_launch_privilege() + */ +static void utc_ApplicationFW_ac_register_launch_privilege_func_03(void) +{ + int r = AC_R_ERROR; + r = ac_register_launch_privilege("com.samsung.calculator", NULL); + if (r != AC_R_EINVAL) { + tet_infoline + ("ac_register_launch_privilege()" + " failed in negative test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} + +/** + * @brief Negative test case 03 of ac_register_launch_privilege() + */ +static void utc_ApplicationFW_ac_register_launch_privilege_func_04(void) +{ + int r = AC_R_ERROR; + r = ac_register_launch_privilege(NULL, NULL); + if (r != AC_R_EINVAL) { + tet_infoline + ("ac_register_launch_privilege()" + " failed in negative test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} diff --git a/TC/unit/utc_ApplicationFW_ac_unregister_launch_privilege_func.c b/TC/unit/utc_ApplicationFW_ac_unregister_launch_privilege_func.c new file mode 100755 index 0000000..758e8a3 --- /dev/null +++ b/TC/unit/utc_ApplicationFW_ac_unregister_launch_privilege_func.c @@ -0,0 +1,132 @@ +/* + * app-checker + * + * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved. + * + * Contact: Jayoun Lee , Sewook Park , + * Jaeho Lee , Shobhit Srivastava + * + * 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 +#include +static void startup(void); +static void cleanup(void); + +void (*tet_startup) (void) = startup; +void (*tet_cleanup) (void) = cleanup; + +static void utc_ApplicationFW_ac_unregister_launch_privilege_func_01(void); +static void utc_ApplicationFW_ac_unregister_launch_privilege_func_02(void); +static void utc_ApplicationFW_ac_unregister_launch_privilege_func_03(void); +static void utc_ApplicationFW_ac_unregister_launch_privilege_func_04(void); + +enum { + POSITIVE_TC_IDX = 0x01, + NEGATIVE_TC_IDX, +}; + +struct tet_testlist tet_testlist[] = { + {utc_ApplicationFW_ac_unregister_launch_privilege_func_01, + POSITIVE_TC_IDX}, + {utc_ApplicationFW_ac_unregister_launch_privilege_func_02, + NEGATIVE_TC_IDX}, + {utc_ApplicationFW_ac_unregister_launch_privilege_func_03, + NEGATIVE_TC_IDX}, + {utc_ApplicationFW_ac_unregister_launch_privilege_func_04, + NEGATIVE_TC_IDX}, + {NULL, 0}, +}; + +static void startup(void) +{ +} + +static void cleanup(void) +{ +} + +/** API Prototype +*int ac_unregister_launch_privilege(const char *pkg_name, +* const char *pkg_type); +*/ + + +/** + * @brief Positive test case of ac_unregister_launch_privilege() + */ +static void utc_ApplicationFW_ac_unregister_launch_privilege_func_01(void) +{ + int r = AC_R_ERROR; + r = ac_unregister_launch_privilege("com.samsung.calculator", "deb"); + if (r < 0 && r != AC_R_ENOPULUGINS) { + tet_infoline + ("ac_unregister_launch_privilege()" + " failed in positive test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} + +/** + * @brief Negative test case 01 of ac_unregister_launch_privilege() + */ +static void utc_ApplicationFW_ac_unregister_launch_privilege_func_02(void) +{ + int r = AC_R_ERROR; + r = ac_unregister_launch_privilege(NULL, "deb"); + if (r != AC_R_EINVAL) { + tet_infoline + ("ac_unregister_launch_privilege()" + " failed in negative test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} + +/** + * @brief Negative test case 02 of ac_unregister_launch_privilege() + */ +static void utc_ApplicationFW_ac_unregister_launch_privilege_func_03(void) +{ + int r = AC_R_ERROR; + r = ac_unregister_launch_privilege("com.samsung.calculator", NULL); + if (r != AC_R_EINVAL) { + tet_infoline + ("ac_unregister_launch_privilege()" + " failed in negative test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} + +/** + * @brief Negative test case 03 of ac_unregister_launch_privilege() + */ +static void utc_ApplicationFW_ac_unregister_launch_privilege_func_04(void) +{ + int r = AC_R_ERROR; + r = ac_unregister_launch_privilege(NULL, NULL); + if (r != AC_R_EINVAL) { + tet_infoline + ("ac_unregister_launch_privilege()" + " failed in negative test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} diff --git a/TC/unit/utc_MODULE_API_func.c.in b/TC/unit/utc_MODULE_API_func.c.in new file mode 100755 index 0000000..2899c28 --- /dev/null +++ b/TC/unit/utc_MODULE_API_func.c.in @@ -0,0 +1,76 @@ +#include + +static void startup(void); +static void cleanup(void); + +void (*tet_startup)(void) = startup; +void (*tet_cleanup)(void) = cleanup; + +static void utc_@MODULE@_@API@_func_01(void); +static void utc_@MODULE@_@API@_func_02(void); + +enum { + POSITIVE_TC_IDX = 0x01, + NEGATIVE_TC_IDX, +}; + +struct tet_testlist tet_testlist[] = { + { utc_@MODULE@_@API@_func_01, POSITIVE_TC_IDX }, + { utc_@MODULE@_@API@_func_02, NEGATIVE_TC_IDX }, +}; + +static void startup(void) +{ + int r; +/* + char *err; + r = initailze...; + if (r) { + err = "Error message......."; + tet_infoline(err); + tet_delete(POSITIVE_TC_IDX, err); + tet_delete(NEGATIVE_TC_IDX, err); + } +*/ + +} + +static void cleanup(void) +{ +} + +/** + * @brief Positive test case of @API@() + */ +static void utc_@MODULE@_@API@_func_01(void) +{ + int r = 0; + +/* + r = @API@(...); +*/ + if (r) { + tet_infoline("@API@() failed in positive test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} + +/** + * @brief Negative test case of ug_init @API@() + */ +static void utc_@MODULE@_@API@_func_02(void) +{ + int r = 0; + +/* + r = @API@(...); +*/ + if (!r) { + tet_infoline("@API@() failed in negative test case"); + tet_result(TET_FAIL); + return; + } + tet_result(TET_PASS); +} diff --git a/app-checker-server.pc.in b/app-checker-server.pc.in index 9c4f455..fe01845 100755 --- a/app-checker-server.pc.in +++ b/app-checker-server.pc.in @@ -2,7 +2,7 @@ prefix=/usr exec_prefix=@EXEC_PREFIX@ -libdir=@LIB_INSTALL_DIR@ +libdir=@LIBDIR@ includedir=@INCLUDEDIR@ Name: libapp-checker-server diff --git a/app-checker.pc.in b/app-checker.pc.in index 7393673..38b85c8 100755 --- a/app-checker.pc.in +++ b/app-checker.pc.in @@ -2,7 +2,7 @@ prefix=/usr exec_prefix=@EXEC_PREFIX@ -libdir=@LIB_INSTALL_DIR@ +libdir=@LIBDIR@ includedir=@INCLUDEDIR@ Name: libapp-checker diff --git a/include/internal.h b/include/internal.h index 731263d..d8a2138 100755 --- a/include/internal.h +++ b/include/internal.h @@ -18,44 +18,44 @@ * limitations under the License. * */ - - -#ifndef __INTERNAL_H__ -#define __INTERNAL_H__ - -#include -#include -#include - -#undef LOG_TAG + + +#ifndef __INTERNAL_H__ +#define __INTERNAL_H__ + +#include +#include +#include + +#undef LOG_TAG #define LOG_TAG "APP_CHECKER" - -#define MAX_PACKAGE_STR_SIZE 512 -#define MAX_PACKAGE_TYPE_SIZE 128 - -struct ac_data { - char pkg_name[MAX_PACKAGE_STR_SIZE]; - char pkg_type[MAX_PACKAGE_TYPE_SIZE]; - int pid; -}; - + +#define MAX_PACKAGE_STR_SIZE 512 +#define MAX_PACKAGE_TYPE_SIZE 128 + +struct ac_data { + char pkg_name[MAX_PACKAGE_STR_SIZE]; + char pkg_type[MAX_PACKAGE_TYPE_SIZE]; + int pid; +}; + #define _E(fmt, arg...) LOGE(fmt,##arg) #define _D(fmt, arg...) LOGD(fmt,##arg) - -#define retvm_if(expr, val, fmt, arg...) do { \ - if(expr) { \ - _E(fmt, ##arg); \ - _E("(%s) -> %s() return", #expr, __FUNCTION__); \ - return (val); \ - } \ -} while (0) - -#define retv_if(expr, val) do { \ - if(expr) { \ - _E("(%s) -> %s() return", #expr, __FUNCTION__); \ - return (val); \ - } \ -} while (0) - -#endif /* __INTERNAL_H__ */ - + +#define retvm_if(expr, val, fmt, arg...) do { \ + if(expr) { \ + _E(fmt, ##arg); \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return (val); \ + } \ +} while (0) + +#define retv_if(expr, val) do { \ + if(expr) { \ + _E("(%s) -> %s() return", #expr, __FUNCTION__); \ + return (val); \ + } \ +} while (0) + +#endif /* __INTERNAL_H__ */ + diff --git a/packaging/app-checker.spec b/packaging/app-checker.spec index 5197646..aba537b 100644 --- a/packaging/app-checker.spec +++ b/packaging/app-checker.spec @@ -1,11 +1,17 @@ Name: app-checker Summary: App Checker -Version: 0.0.16 +Version: 0.0.20 Release: 1 Group: System/Libraries -License: Apache-2.0 +License: Apache License, Version 2.0 Source0: %{name}-%{version}.tar.gz + +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig + + BuildRequires: cmake + BuildRequires: pkgconfig(dlog) BuildRequires: pkgconfig(glib-2.0) @@ -44,23 +50,25 @@ libapp-checker server (developement files) %build - -%cmake . +%if 0%{?sec_build_binary_debug_enable} +export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE" +export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE" +export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE" +%endif +export CFLAGS="$CFLAGS -Wall -Werror -Wno-unused-function" +CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" cmake . -DCMAKE_INSTALL_PREFIX=/usr make %{?jobs:-j%jobs} %install rm -rf %{buildroot} %make_install -mkdir -p %{buildroot}/usr/lib/ac-plugins -mkdir -p %{buildroot}/usr/share/license -cp LICENSE %{buildroot}/usr/share/license/%{name} -cp LICENSE %{buildroot}/usr/share/license/%{name}-devel -cp LICENSE %{buildroot}/usr/share/license/%{name}-server -cp LICENSE %{buildroot}/usr/share/license/%{name}-server-devel -%post -p /sbin/ldconfig +%post + +/sbin/ldconfig +mkdir -p /usr/lib/ac-plugins %postun -p /sbin/ldconfig @@ -68,30 +76,24 @@ cp LICENSE %{buildroot}/usr/share/license/%{name}-server-devel %files %manifest app-checker.manifest %defattr(-,root,root,-) -%{_libdir}/libapp-checker.so.0 -%{_libdir}/libapp-checker.so.0.1.0 -/usr/lib/ac-plugins -/usr/share/license/%{name} - +/usr/lib/libapp-checker.so.0 +/usr/lib/libapp-checker.so.0.1.0 %files devel %defattr(-,root,root,-) -%{_libdir}/libapp-checker.so -%{_libdir}/pkgconfig/app-checker.pc +/usr/lib/libapp-checker.so +/usr/lib/pkgconfig/app-checker.pc /usr/include/app-checker/app-checker.h -/usr/share/license/%{name}-devel %files server %manifest app-checker.manifest %defattr(-,root,root,-) -%{_libdir}/libapp-checker-server.so.0 -%{_libdir}/libapp-checker-server.so.0.1.0 -/usr/share/license/%{name}-server +/usr/lib/libapp-checker-server.so.0 +/usr/lib/libapp-checker-server.so.0.1.0 %files server-devel %defattr(-,root,root,-) -%{_libdir}/libapp-checker-server.so -%{_libdir}/pkgconfig/app-checker-server.pc +/usr/lib/libapp-checker-server.so +/usr/lib/pkgconfig/app-checker-server.pc /usr/include/app-checker/app-checker-server.h -/usr/share/license/%{name}-server-devel diff --git a/src/ac_server.c b/src/ac_server.c index 2508bc4..4d0cabf 100755 --- a/src/ac_server.c +++ b/src/ac_server.c @@ -35,7 +35,7 @@ #include "ac_sock.h" #include "internal.h" -#define PLUGINS_PREFIX LIBPREFIX "/ac-plugins" +#define PLUGINS_PREFIX "/usr/lib/ac-plugins" #define MAX_LOCAL_BUFSZ 512 #ifndef SLPAPI @@ -82,7 +82,7 @@ static int __check_launch_privilege(const char *pkg_name, const char *pkg_type, if (strncmp(type_t->pkg_type, pkg_type, MAX_PACKAGE_TYPE_SIZE) == 0) { for (iter2 = type_t->so_list; iter2 != NULL; iter2 = g_slist_next(iter2)) { so_t = iter2->data; - _D("type : %s / so name : %s / func : %x", type_t->pkg_type, so_t->so_name, so_t->ac_check); + SECURE_LOGD("type : %s / so name : %s / func : %x", type_t->pkg_type, so_t->so_name, so_t->ac_check); if (so_t->ac_check && so_t->ac_check(pkg_name) < 0) { if(pid > 0) __send_to_sigkill(pid); @@ -164,7 +164,7 @@ static gboolean __ac_handler(gpointer data) ad = (struct ac_data *)g_base64_decode((const gchar*)pkt->data, (gsize *)&size); - _D("cmd : %d, pkgname : %s, pkgtype : %s", pkt->cmd, ad->pkg_name, ad->pkg_type); + SECURE_LOGD("cmd : %d, pkgname : %s, pkgtype : %s", pkt->cmd, ad->pkg_name, ad->pkg_type); switch (pkt->cmd) { case AC_CHECK: @@ -309,7 +309,7 @@ int __initialize() continue; snprintf(buf,MAX_LOCAL_BUFSZ,"%s/%s",PLUGINS_PREFIX,dentry->d_name); - _D("type : %s", dentry->d_name); + SECURE_LOGD("type : %s", dentry->d_name); type_t = malloc(sizeof(ac_type_list_t)); if(type_t == NULL) { @@ -335,7 +335,7 @@ int __initialize() if(sub_dentry->d_type == DT_DIR) continue; snprintf(buf2,MAX_LOCAL_BUFSZ,"%s/%s", buf, sub_dentry->d_name); - _D("so_name : %s", buf2); + SECURE_LOGD("so_name : %s", buf2); handle = dlopen(buf2, RTLD_LAZY); if(handle == NULL) diff --git a/src/ac_sock.c b/src/ac_sock.c index ce81406..c57d8b6 100755 --- a/src/ac_sock.c +++ b/src/ac_sock.c @@ -37,14 +37,27 @@ static int __connect_client_sock(int sockfd, const struct sockaddr *saptr, sockl static inline void __set_sock_option(int fd, int cli) { + int ret; int size; struct timeval tv = { 5, 200 * 1000 }; /* 5.2 sec */ size = AC_SOCK_MAXBUFF; - setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &size, sizeof(size)); - setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &size, sizeof(size)); - if (cli) - setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)); + ret = setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &size, sizeof(size)); + if ( ret < 0 ) { + _E("setsockopt error"); + } + + ret = setsockopt(fd, SOL_SOCKET, SO_RCVBUF, &size, sizeof(size)); + if ( ret < 0 ) { + _E("setsockopt error"); + } + + if (cli) { + ret = setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)); + if ( ret < 0 ) { + _E("setsockopt error"); + } + } } int _create_server_sock() @@ -158,7 +171,7 @@ static int __connect_client_sock(int fd, const struct sockaddr *saptr, socklen_t error = 0; if ((ret = connect(fd, (struct sockaddr *)saptr, salen)) < 0) { if (errno != EAGAIN && errno != EINPROGRESS) { - fcntl(fd, F_SETFL, flags); + (void)fcntl(fd, F_SETFL, flags); return (-2); } } @@ -188,7 +201,7 @@ static int __connect_client_sock(int fd, const struct sockaddr *saptr, socklen_t return (-1); /* select error: sockfd not set*/ done: - fcntl(fd, F_SETFL, flags); + (void)fcntl(fd, F_SETFL, flags); if (error) { close(fd); errno = error; -- 2.7.4