Compare commits
17 Commits
weekly_202
...
OpenHarmon
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
270d5edb5f | ||
|
|
aafc474a2f | ||
|
|
37d08b1d14 | ||
|
|
1064329c3a | ||
|
|
95d022d129 | ||
|
|
648124ac19 | ||
|
|
f2c2a2e21f | ||
|
|
c754baab1e | ||
|
|
21087fbc5c | ||
|
|
1848f31fdf | ||
|
|
dfc582aecd | ||
|
|
0bc453c2cd | ||
|
|
73bcf0ec9a | ||
|
|
49bfc90a63 | ||
|
|
b0708886fa | ||
|
|
a388a3f565 | ||
|
|
24aa6858ee |
@@ -270,6 +270,7 @@ STATIC INT32 DoMqueueClose(struct mqpersonal *privateMqPersonal)
|
||||
{
|
||||
struct mqarray *mqueueCB = NULL;
|
||||
struct mqpersonal *tmp = NULL;
|
||||
INT32 ret;
|
||||
|
||||
mqueueCB = privateMqPersonal->mq_posixdes;
|
||||
if (mqueueCB == NULL || mqueueCB->mq_personal == NULL) {
|
||||
@@ -277,6 +278,12 @@ STATIC INT32 DoMqueueClose(struct mqpersonal *privateMqPersonal)
|
||||
return LOS_NOK;
|
||||
}
|
||||
|
||||
if ((mqueueCB->unlinkflag == TRUE) && (privateMqPersonal->mq_next == NULL)) {
|
||||
ret = DoMqueueDelete(mqueueCB);
|
||||
if (ret < 0) {
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
/* find the personal and remove */
|
||||
if (mqueueCB->mq_personal == privateMqPersonal) {
|
||||
mqueueCB->mq_personal = privateMqPersonal->mq_next;
|
||||
@@ -298,9 +305,6 @@ STATIC INT32 DoMqueueClose(struct mqpersonal *privateMqPersonal)
|
||||
/* free the personal */
|
||||
(VOID)LOS_MemFree(OS_SYS_MEM_ADDR, privateMqPersonal);
|
||||
|
||||
if ((mqueueCB->unlinkflag == TRUE) && (mqueueCB->mq_personal == NULL)) {
|
||||
return DoMqueueDelete(mqueueCB);
|
||||
}
|
||||
return LOS_OK;
|
||||
}
|
||||
|
||||
@@ -604,17 +608,19 @@ int OsMqGetAttr(mqd_t personal, struct mq_attr *mqAttr)
|
||||
struct mqarray *mqueueCB = NULL;
|
||||
struct mqpersonal *privateMqPersonal = NULL;
|
||||
|
||||
(VOID)pthread_mutex_lock(&IPC_QUEUE_MUTEX);
|
||||
privateMqPersonal = MqGetPrivDataBuff(personal);
|
||||
if (privateMqPersonal == NULL) {
|
||||
(VOID)pthread_mutex_unlock(&IPC_QUEUE_MUTEX);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mqAttr == NULL) {
|
||||
errno = EINVAL;
|
||||
(VOID)pthread_mutex_unlock(&IPC_QUEUE_MUTEX);
|
||||
return -1;
|
||||
}
|
||||
|
||||
(VOID)pthread_mutex_lock(&IPC_QUEUE_MUTEX);
|
||||
if (privateMqPersonal->mq_status != MQ_USE_MAGIC) {
|
||||
errno = EBADF;
|
||||
(VOID)pthread_mutex_unlock(&IPC_QUEUE_MUTEX);
|
||||
@@ -634,17 +640,19 @@ int OsMqSetAttr(mqd_t personal, const struct mq_attr *mqSetAttr, struct mq_attr
|
||||
{
|
||||
struct mqpersonal *privateMqPersonal = NULL;
|
||||
|
||||
(VOID)pthread_mutex_lock(&IPC_QUEUE_MUTEX);
|
||||
privateMqPersonal = MqGetPrivDataBuff(personal);
|
||||
if (privateMqPersonal == NULL) {
|
||||
(VOID)pthread_mutex_unlock(&IPC_QUEUE_MUTEX);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (mqSetAttr == NULL) {
|
||||
errno = EINVAL;
|
||||
(VOID)pthread_mutex_unlock(&IPC_QUEUE_MUTEX);
|
||||
return -1;
|
||||
}
|
||||
|
||||
(VOID)pthread_mutex_lock(&IPC_QUEUE_MUTEX);
|
||||
if (privateMqPersonal->mq_status != MQ_USE_MAGIC) {
|
||||
errno = EBADF;
|
||||
(VOID)pthread_mutex_unlock(&IPC_QUEUE_MUTEX);
|
||||
|
||||
@@ -6341,7 +6341,7 @@ diff -Nupr old/fs/jffs2/summary.h new/fs/jffs2/summary.h
|
||||
diff -Nupr old/fs/jffs2/super.c new/fs/jffs2/super.c
|
||||
--- old/fs/jffs2/super.c 2022-05-09 17:22:53.000000000 +0800
|
||||
+++ new/fs/jffs2/super.c 2022-05-09 20:09:32.170000000 +0800
|
||||
@@ -9,433 +9,188 @@
|
||||
@@ -9,434 +9,188 @@
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -6419,6 +6419,7 @@ diff -Nupr old/fs/jffs2/super.c new/fs/jffs2/super.c
|
||||
+ c->cleanmarker_size = sizeof(struct jffs2_unknown_node);
|
||||
|
||||
- mutex_init(&f->sem);
|
||||
- f->target = NULL;
|
||||
- inode_init_once(&f->vfs_inode);
|
||||
-}
|
||||
+ ret = jffs2_do_mount_fs(c);
|
||||
|
||||
@@ -67,51 +67,6 @@ config PAGE_TABLE_FINE_LOCK
|
||||
help
|
||||
This option will enable fine lock for page table.
|
||||
|
||||
######################### config options of container ####################
|
||||
config KERNEL_CONTAINER
|
||||
bool "Enable container Feature"
|
||||
default n
|
||||
depends on KERNEL_VM
|
||||
|
||||
config PID_CONTAINER
|
||||
bool "Enable pid container Feature"
|
||||
default n
|
||||
depends on KERNEL_CONTAINER
|
||||
|
||||
config UTS_CONTAINER
|
||||
bool "Enable uts container Feature"
|
||||
default n
|
||||
depends on KERNEL_CONTAINER
|
||||
|
||||
config MNT_CONTAINER
|
||||
bool "Enable mnt container Feature"
|
||||
default n
|
||||
depends on KERNEL_CONTAINER
|
||||
|
||||
config CHROOT
|
||||
bool "Enable chroot"
|
||||
default n
|
||||
depends on MNT_CONTAINER
|
||||
|
||||
config IPC_CONTAINER
|
||||
bool "Enable ipc container Feature"
|
||||
default n
|
||||
depends on KERNEL_CONTAINER
|
||||
|
||||
config TIME_CONTAINER
|
||||
bool "Enable time container"
|
||||
default n
|
||||
depends on KERNEL_CONTAINER
|
||||
|
||||
config USER_CONTAINER
|
||||
bool "Enable user container"
|
||||
default n
|
||||
depends on KERNEL_CONTAINER
|
||||
|
||||
config NET_CONTAINER
|
||||
bool "Enable net container"
|
||||
default n
|
||||
depends on KERNEL_CONTAINER
|
||||
|
||||
######################### config options of extended #####################
|
||||
source "kernel/extended/Kconfig"
|
||||
|
||||
@@ -32,15 +32,6 @@ import("//kernel/liteos_a/liteos.gni")
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [
|
||||
"container/los_container.c",
|
||||
"container/los_credentials.c",
|
||||
"container/los_ipc_container.c",
|
||||
"container/los_mnt_container.c",
|
||||
"container/los_net_container.c",
|
||||
"container/los_pid_container.c",
|
||||
"container/los_time_container.c",
|
||||
"container/los_user_container.c",
|
||||
"container/los_uts_container.c",
|
||||
"core/los_bitmap.c",
|
||||
"core/los_info.c",
|
||||
"core/los_process.c",
|
||||
|
||||
@@ -39,7 +39,6 @@ LOCAL_SRCS := $(wildcard ipc/*.c) $(wildcard core/*.c) $(wildcard mem/membox/*.
|
||||
$(wildcard mp/*.c) \
|
||||
$(wildcard sched/*.c) \
|
||||
$(wildcard vm/*.c) \
|
||||
$(wildcard container/*.c)
|
||||
|
||||
|
||||
LOCAL_FLAGS := $(LITEOS_CFLAGS_INTERWORK) -Wno-frame-address
|
||||
|
||||
@@ -583,7 +583,7 @@ STATIC INLINE BOOL SwtmrRunqueueFind(SortLinkAttribute *swtmrSortLink, SCHED_TL_
|
||||
STATIC BOOL SwtmrTimeListFind(SCHED_TL_FIND_FUNC checkFunc, UINTPTR arg)
|
||||
{
|
||||
for (UINT16 cpuid = 0; cpuid < LOSCFG_KERNEL_CORE_NUM; cpuid++) {
|
||||
SortLinkAttribute *swtmrSortLink = &g_swtmrRunqueue[ArchCurrCpuid()].swtmrSortLink;
|
||||
SortLinkAttribute *swtmrSortLink = &g_swtmrRunqueue[cpuid].swtmrSortLink;
|
||||
if (SwtmrRunqueueFind(swtmrSortLink, checkFunc, arg)) {
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ import("//kernel/liteos_a/liteos.gni")
|
||||
group("extended") {
|
||||
deps = [
|
||||
"blackbox",
|
||||
"container",
|
||||
"cppsupport",
|
||||
"cpup",
|
||||
"dynload",
|
||||
@@ -52,6 +53,7 @@ group("extended") {
|
||||
config("public") {
|
||||
configs = [
|
||||
"blackbox:public",
|
||||
"container:public",
|
||||
"cpup:public",
|
||||
"dynload:public",
|
||||
"hidumper:public",
|
||||
|
||||
@@ -113,6 +113,54 @@ config KERNEL_HOOK
|
||||
default n
|
||||
depends on KERNEL_EXTKERNEL && DEBUG_VERSION
|
||||
|
||||
|
||||
######################### config options of container ####################
|
||||
config KERNEL_CONTAINER
|
||||
bool "Enable container Feature"
|
||||
default n
|
||||
depends on KERNEL_VM
|
||||
|
||||
config PID_CONTAINER
|
||||
bool "Enable pid container Feature"
|
||||
default n
|
||||
depends on KERNEL_CONTAINER
|
||||
|
||||
config UTS_CONTAINER
|
||||
bool "Enable uts container Feature"
|
||||
default n
|
||||
depends on KERNEL_CONTAINER
|
||||
|
||||
config MNT_CONTAINER
|
||||
bool "Enable mnt container Feature"
|
||||
default n
|
||||
depends on KERNEL_CONTAINER
|
||||
|
||||
config CHROOT
|
||||
bool "Enable chroot"
|
||||
default n
|
||||
depends on MNT_CONTAINER
|
||||
|
||||
config IPC_CONTAINER
|
||||
bool "Enable ipc container Feature"
|
||||
default n
|
||||
depends on KERNEL_CONTAINER
|
||||
|
||||
config TIME_CONTAINER
|
||||
bool "Enable time container"
|
||||
default n
|
||||
depends on KERNEL_CONTAINER
|
||||
|
||||
config USER_CONTAINER
|
||||
bool "Enable user container"
|
||||
default n
|
||||
depends on KERNEL_CONTAINER
|
||||
|
||||
config NET_CONTAINER
|
||||
bool "Enable net container"
|
||||
default n
|
||||
depends on KERNEL_CONTAINER
|
||||
|
||||
|
||||
######################### config options of trace #########################
|
||||
source "kernel/extended/trace/Kconfig"
|
||||
|
||||
|
||||
65
kernel/extended/container/BUILD.gn
Normal file
65
kernel/extended/container/BUILD.gn
Normal file
@@ -0,0 +1,65 @@
|
||||
# Copyright (c) 2023-2023 Huawei Device Co., Ltd. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without modification,
|
||||
# are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
# conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
# of conditions and the following disclaimer in the documentation and/or other materials
|
||||
# provided with the distribution.
|
||||
#
|
||||
# 3. Neither the name of the copyright holder nor the names of its contributors may be used
|
||||
# to endorse or promote products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//kernel/liteos_a/liteos.gni")
|
||||
|
||||
module_switch = defined(LOSCFG_KERNEL_CONTAINER)
|
||||
module_name = get_path_info(rebase_path("."), "name")
|
||||
kernel_module(module_name) {
|
||||
sources = [ "los_container.c" ]
|
||||
if (defined(LOSCFG_IPC_CONTAINER)) {
|
||||
sources += [ "los_ipc_container.c" ]
|
||||
}
|
||||
if (defined(LOSCFG_MNT_CONTAINER)) {
|
||||
sources += [ "los_mnt_container.c" ]
|
||||
}
|
||||
if (defined(LOSCFG_NET_CONTAINER)) {
|
||||
sources += [ "los_net_container.c" ]
|
||||
}
|
||||
if (defined(LOSCFG_PID_CONTAINER)) {
|
||||
sources += [ "los_pid_container.c" ]
|
||||
}
|
||||
if (defined(LOSCFG_TIME_CONTAINER)) {
|
||||
sources += [ "los_time_container.c" ]
|
||||
}
|
||||
if (defined(LOSCFG_USER_CONTAINER)) {
|
||||
sources += [
|
||||
"los_credentials.c",
|
||||
"los_user_container.c",
|
||||
]
|
||||
}
|
||||
if (defined(LOSCFG_UTS_CONTAINER)) {
|
||||
sources += [ "los_uts_container.c" ]
|
||||
}
|
||||
|
||||
public_configs = [ ":public" ]
|
||||
}
|
||||
|
||||
config("public") {
|
||||
include_dirs = [ "." ]
|
||||
}
|
||||
63
kernel/extended/container/Makefile
Normal file
63
kernel/extended/container/Makefile
Normal file
@@ -0,0 +1,63 @@
|
||||
# Copyright (c) 2023-2023 Huawei Device Co., Ltd. All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without modification,
|
||||
# are permitted provided that the following conditions are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright notice, this list of
|
||||
# conditions and the following disclaimer.
|
||||
#
|
||||
# 2. Redistributions in binary form must reproduce the above copyright notice, this list
|
||||
# of conditions and the following disclaimer in the documentation and/or other materials
|
||||
# provided with the distribution.
|
||||
#
|
||||
# 3. Neither the name of the copyright holder nor the names of its contributors may be used
|
||||
# to endorse or promote products derived from this software without specific prior written
|
||||
# permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
||||
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
|
||||
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
||||
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
||||
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
include $(LITEOSTOPDIR)/config.mk
|
||||
|
||||
MODULE_NAME := $(notdir $(shell pwd))
|
||||
|
||||
LOCAL_SRCS := $(wildcard *.c)
|
||||
|
||||
ifneq ($(LOSCFG_IPC_CONTAINER), y)
|
||||
LOCAL_SRCS += $(filter-out los_ipc_container.c, $(LOCAL_SRCS))
|
||||
endif
|
||||
|
||||
ifneq ($(LOSCFG_MNT_CONTAINER), y)
|
||||
LOCAL_SRCS += $(filter-out los_mnt_container.c, $(LOCAL_SRCS))
|
||||
endif
|
||||
|
||||
ifneq ($(LOSCFG_NET_CONTAINER), y)
|
||||
LOCAL_SRCS += $(filter-out los_net_container.c, $(LOCAL_SRCS))
|
||||
endif
|
||||
|
||||
ifneq ($(LOSCFG_PID_CONTAINER), y)
|
||||
LOCAL_SRCS += $(filter-out los_pid_container.c, $(LOCAL_SRCS))
|
||||
endif
|
||||
|
||||
ifneq ($(LOSCFG_TIME_CONTAINER), y)
|
||||
LOCAL_SRCS += $(filter-out los_time_container.c, $(LOCAL_SRCS))
|
||||
endif
|
||||
|
||||
ifneq ($(LOSCFG_USER_CONTAINER), y)
|
||||
LOCAL_SRCS += $(filter-out los_credentials.c los_user_container.c, $(LOCAL_SRCS))
|
||||
endif
|
||||
|
||||
ifneq ($(LOSCFG_UTS_CONTAINER), y)
|
||||
LOCAL_SRCS += $(filter-out los_uts_container.c, $(LOCAL_SRCS))
|
||||
endif
|
||||
|
||||
include $(MODULE)
|
||||
@@ -401,7 +401,7 @@ ssize_t SysSendMsg(int s, const struct msghdr *message, int flags)
|
||||
CHECK_ASPACE(message, sizeof(struct msghdr));
|
||||
CPY_FROM_CONST_USER(struct msghdr, message);
|
||||
|
||||
if (message && message->msg_iovlen > IOV_MAX) {
|
||||
if (message && (size_t)message->msg_iovlen > IOV_MAX) {
|
||||
set_errno(EMSGSIZE);
|
||||
return -get_errno();
|
||||
}
|
||||
@@ -449,7 +449,7 @@ ssize_t SysRecvMsg(int s, struct msghdr *message, int flags)
|
||||
CHECK_ASPACE(message, sizeof(struct msghdr));
|
||||
CPY_FROM_NONCONST_USER(message);
|
||||
|
||||
if (message && message->msg_iovlen > IOV_MAX) {
|
||||
if (message && (size_t)message->msg_iovlen > IOV_MAX) {
|
||||
set_errno(EMSGSIZE);
|
||||
return -get_errno();
|
||||
}
|
||||
|
||||
@@ -26,9 +26,6 @@
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//build/lite/config/test.gni")
|
||||
import("//kernel/liteos_a/liteos.gni")
|
||||
import("//kernel/liteos_a/testsuites/unittest/config.gni")
|
||||
import("./config.gni")
|
||||
|
||||
config("container_config") {
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//build/lite/config/test.gni")
|
||||
import("//kernel/liteos_a/liteos.gni")
|
||||
import("//kernel/liteos_a/testsuites/unittest/config.gni")
|
||||
|
||||
common_include_dirs = [
|
||||
|
||||
@@ -53,7 +53,7 @@ static UINT32 Testcase(VOID)
|
||||
ret = write(pipeFd[1], "hello world", 12); // 12, "hello world" length and '\0'
|
||||
printf("write first status: %d\n", ret);
|
||||
if (ret != 12) { // 12, "hello world" length and '\0'
|
||||
exit(11); // 11, the value of son process unexpect exit, convenient to debug
|
||||
exit(11); // 11, the value of son process unexpected exit, convenient to debug
|
||||
}
|
||||
*sharedflag = 1;
|
||||
close(pipeFd[1]);
|
||||
|
||||
@@ -55,7 +55,7 @@ static UINT32 Testcase(VOID)
|
||||
ret = write(pipeFd[1], "Hello world", TAR_STR_LEN);
|
||||
printf("write first status: %d\n", ret);
|
||||
if (ret != TAR_STR_LEN) {
|
||||
exit(11); // 11, the value of son process unexpect exit, convenient to debug
|
||||
exit(11); // 11, the value of son process unexpected exit, convenient to debug
|
||||
}
|
||||
*sharedflag = 1;
|
||||
close(pipeFd[1]);
|
||||
|
||||
@@ -69,7 +69,7 @@ static UINT32 Testcase(VOID)
|
||||
|
||||
ret = sigaction(SIGCHLD, &oldact, NULL);
|
||||
if (ret == -1) {
|
||||
exit(6); // 6, the value of son process unexpect exit, convenient to debug
|
||||
exit(6); // 6, the value of son process unexpected exit, convenient to debug
|
||||
}
|
||||
sleep(1);
|
||||
printf("---son--cnt check----%d--------\n", g_actionCnt1);
|
||||
|
||||
@@ -90,31 +90,31 @@ static int TestCase(void)
|
||||
printf("errline = %d\n", __LINE__);
|
||||
exit(-1);
|
||||
}
|
||||
ret = kill(10, 31); // 10, kill process pid; 31, sigal.
|
||||
ret = kill(10, 31); // 10, kill process pid; 31, signal.
|
||||
if (retValue != -1 || errno != EINVAL) {
|
||||
printf("errline = %d\n", __LINE__);
|
||||
exit(-1);
|
||||
}
|
||||
ret = kill(10, 32); // 10, kill process pid; 32, sigal.
|
||||
ret = kill(10, 32); // 10, kill process pid; 32, signal.
|
||||
if (retValue != -1 || errno != EINVAL) {
|
||||
printf("errline = %d\n", __LINE__);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
ret = kill(2, 32); // 2, kill process pid; 32, sigal.
|
||||
ret = kill(2, 32); // 2, kill process pid; 32, signal.
|
||||
if (retValue != -1 || errno != EINVAL) {
|
||||
printf("errline = %d\n", __LINE__);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
printf("test EPERM begin\n");
|
||||
ret = kill(2, 5); // 2, kill process pid; 5, sigal.
|
||||
ret = kill(2, 5); // 2, kill process pid; 5, signal.
|
||||
if (retValue != -1 || errno != EPERM) {
|
||||
printf("errline = %d\n", __LINE__);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
ret = kill(3, 5); // 3, kill process pid; 5, sigal.
|
||||
ret = kill(3, 5); // 3, kill process pid; 5, signal.
|
||||
if (retValue != -1 || errno != EPERM) {
|
||||
printf("errline = %d\n", __LINE__);
|
||||
exit(-1);
|
||||
@@ -126,7 +126,7 @@ static int TestCase(void)
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
ret = kill(1, 5); // 5, kill sigal num .
|
||||
ret = kill(1, 5); // 5, kill signal num .
|
||||
if (retValue != -1 || errno != EPERM) {
|
||||
printf("errline = %d\n", __LINE__);
|
||||
exit(-1);
|
||||
|
||||
@@ -40,7 +40,7 @@ static void SigChildResponse(int signo)
|
||||
wait(nullptr);
|
||||
}
|
||||
|
||||
/* Register SIGCHLD, through signal to restore the child memery */
|
||||
/* Register SIGCHLD, through signal to restore the child memory */
|
||||
static int TestSigKillResp()
|
||||
{
|
||||
void (*ret)(int) = nullptr;
|
||||
|
||||
@@ -38,7 +38,7 @@ void SigChildResponse(int signo)
|
||||
wait(nullptr);
|
||||
}
|
||||
|
||||
/* Register SIGCHLD, through signal to restore the child memery */
|
||||
/* Register SIGCHLD, through signal to restore the child memory */
|
||||
static int TestSigKillWaitFromSigChild()
|
||||
{
|
||||
void (*ret)(int);
|
||||
|
||||
@@ -88,7 +88,7 @@ static int TestBlock()
|
||||
printf("\n\n");
|
||||
|
||||
printf("Signal Pause(2)\n");
|
||||
printf("To test whether pause can relese the signal\n");
|
||||
printf("To test whether pause can release the signal\n");
|
||||
alarm(clock);
|
||||
retValue = sighold(sig);
|
||||
if (retValue != 0) {
|
||||
|
||||
@@ -67,7 +67,7 @@ static UINT32 TestCase()
|
||||
sigemptyset(&set);
|
||||
sigprocmask(SIG_SETMASK, &set, NULL);
|
||||
|
||||
printf("check invlid sigset ...\n");
|
||||
printf("check invalid sigset ...\n");
|
||||
int rt = sigaddset(&set, 0);
|
||||
ICUNIT_ASSERT_EQUAL(rt, -1, rt);
|
||||
ICUNIT_ASSERT_EQUAL(errno, EINVAL, errno);
|
||||
@@ -79,19 +79,19 @@ static UINT32 TestCase()
|
||||
|
||||
siginfo_t si;
|
||||
time1.tv_sec = -1;
|
||||
printf("check invlid timespec: tv_sec=-1 ...\n");
|
||||
printf("check invalid timespec: tv_sec=-1 ...\n");
|
||||
ret = SigtimedwaitFailTest(&set, &si, &time1, EINVAL);
|
||||
ICUNIT_ASSERT_EQUAL(ret, 0, ret);
|
||||
|
||||
time1.tv_sec = 1;
|
||||
time1.tv_nsec = -1;
|
||||
printf("check invlid timespec: tv_nsec=-1 ...\n");
|
||||
printf("check invalid timespec: tv_nsec=-1 ...\n");
|
||||
ret = SigtimedwaitFailTest(&set, &si, &time1, EINVAL);
|
||||
ICUNIT_ASSERT_EQUAL(ret, 0, ret);
|
||||
|
||||
time1.tv_sec = 1;
|
||||
time1.tv_nsec = 1000 * 1000 * 1000 + 1; // 1000, set the nsec of time.
|
||||
printf("check invlid timespec: tv_nsec overflow ...\n");
|
||||
printf("check invalid timespec: tv_nsec overflow ...\n");
|
||||
ret = SigtimedwaitFailTest(&set, &si, &time1, EINVAL);
|
||||
ICUNIT_ASSERT_EQUAL(ret, 0, ret);
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ void child1(void)
|
||||
while (1) {
|
||||
ret = pthread_getschedparam(pthread, &newPolicy, ¶m);
|
||||
if (ret != 0) {
|
||||
printf("pthread_getschedparam failed ! %d erro: %d\n", __LINE__, errno);
|
||||
printf("pthread_getschedparam failed ! %d error: %d\n", __LINE__, errno);
|
||||
exit(255); // 255, set a special exit code.
|
||||
}
|
||||
|
||||
|
||||
@@ -26,9 +26,6 @@
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//build/lite/config/test.gni")
|
||||
import("//kernel/liteos_a/liteos.gni")
|
||||
import("//kernel/liteos_a/testsuites/unittest/config.gni")
|
||||
import("./config.gni")
|
||||
|
||||
if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//build/lite/config/test.gni")
|
||||
import("//kernel/liteos_a/liteos.gni")
|
||||
import("//kernel/liteos_a/testsuites/unittest/config.gni")
|
||||
|
||||
common_include_dirs = [
|
||||
|
||||
@@ -26,9 +26,6 @@
|
||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//build/lite/config/test.gni")
|
||||
import("//kernel/liteos_a/liteos.gni")
|
||||
import("//kernel/liteos_a/testsuites/unittest/config.gni")
|
||||
import("./config.gni")
|
||||
|
||||
if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
import("//build/lite/config/test.gni")
|
||||
import("//kernel/liteos_a/liteos.gni")
|
||||
import("//kernel/liteos_a/testsuites/unittest/config.gni")
|
||||
|
||||
common_include_dirs = [
|
||||
@@ -92,7 +93,7 @@ process_plimits_sources_smoke = [
|
||||
process_plimits_sources_full = []
|
||||
|
||||
# plimits module
|
||||
if (LOSCFG_USER_TEST_PROCESS == true) {
|
||||
if (LOSCFG_USER_TEST_PROCESS_PLIMITS == true) {
|
||||
common_include_dirs += process_plimits_include_dirs
|
||||
sources_entry += process_plimits_sources_entry
|
||||
sources_smoke += process_plimits_sources_smoke
|
||||
|
||||
@@ -124,6 +124,11 @@ LITEOS_BASELIB += -lcommon
|
||||
LIB_SUBDIRS += kernel/common
|
||||
LITEOS_KERNEL_INCLUDE += -I $(LITEOSTOPDIR)/kernel/common
|
||||
|
||||
ifeq ($(LOSCFG_KERNEL_CONTAINER), y)
|
||||
LITEOS_BASELIB += -lcontainer
|
||||
LIB_SUBDIRS += kernel/extended/container
|
||||
endif
|
||||
|
||||
ifeq ($(LOSCFG_KERNEL_CPPSUPPORT), y)
|
||||
LITEOS_BASELIB += -lcppsupport
|
||||
LIB_SUBDIRS += kernel/extended/cppsupport
|
||||
|
||||
Reference in New Issue
Block a user