Compare commits
4 Commits
weekly_202
...
OpenHarmon
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
49bfc90a63 | ||
|
|
b0708886fa | ||
|
|
a388a3f565 | ||
|
|
24aa6858ee |
@@ -67,51 +67,6 @@ config PAGE_TABLE_FINE_LOCK
|
|||||||
help
|
help
|
||||||
This option will enable fine lock for page table.
|
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 #####################
|
######################### config options of extended #####################
|
||||||
source "kernel/extended/Kconfig"
|
source "kernel/extended/Kconfig"
|
||||||
|
|||||||
@@ -32,15 +32,6 @@ import("//kernel/liteos_a/liteos.gni")
|
|||||||
module_name = get_path_info(rebase_path("."), "name")
|
module_name = get_path_info(rebase_path("."), "name")
|
||||||
kernel_module(module_name) {
|
kernel_module(module_name) {
|
||||||
sources = [
|
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_bitmap.c",
|
||||||
"core/los_info.c",
|
"core/los_info.c",
|
||||||
"core/los_process.c",
|
"core/los_process.c",
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ LOCAL_SRCS := $(wildcard ipc/*.c) $(wildcard core/*.c) $(wildcard mem/membox/*.
|
|||||||
$(wildcard mp/*.c) \
|
$(wildcard mp/*.c) \
|
||||||
$(wildcard sched/*.c) \
|
$(wildcard sched/*.c) \
|
||||||
$(wildcard vm/*.c) \
|
$(wildcard vm/*.c) \
|
||||||
$(wildcard container/*.c)
|
|
||||||
|
|
||||||
|
|
||||||
LOCAL_FLAGS := $(LITEOS_CFLAGS_INTERWORK) -Wno-frame-address
|
LOCAL_FLAGS := $(LITEOS_CFLAGS_INTERWORK) -Wno-frame-address
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ import("//kernel/liteos_a/liteos.gni")
|
|||||||
group("extended") {
|
group("extended") {
|
||||||
deps = [
|
deps = [
|
||||||
"blackbox",
|
"blackbox",
|
||||||
|
"container",
|
||||||
"cppsupport",
|
"cppsupport",
|
||||||
"cpup",
|
"cpup",
|
||||||
"dynload",
|
"dynload",
|
||||||
@@ -52,6 +53,7 @@ group("extended") {
|
|||||||
config("public") {
|
config("public") {
|
||||||
configs = [
|
configs = [
|
||||||
"blackbox:public",
|
"blackbox:public",
|
||||||
|
"container:public",
|
||||||
"cpup:public",
|
"cpup:public",
|
||||||
"dynload:public",
|
"dynload:public",
|
||||||
"hidumper:public",
|
"hidumper:public",
|
||||||
|
|||||||
@@ -113,6 +113,54 @@ config KERNEL_HOOK
|
|||||||
default n
|
default n
|
||||||
depends on KERNEL_EXTKERNEL && DEBUG_VERSION
|
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 #########################
|
######################### config options of trace #########################
|
||||||
source "kernel/extended/trace/Kconfig"
|
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)
|
||||||
@@ -26,9 +26,6 @@
|
|||||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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")
|
import("./config.gni")
|
||||||
|
|
||||||
config("container_config") {
|
config("container_config") {
|
||||||
|
|||||||
@@ -26,6 +26,8 @@
|
|||||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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("//kernel/liteos_a/testsuites/unittest/config.gni")
|
||||||
|
|
||||||
common_include_dirs = [
|
common_include_dirs = [
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ static UINT32 Testcase(VOID)
|
|||||||
ret = write(pipeFd[1], "hello world", 12); // 12, "hello world" length and '\0'
|
ret = write(pipeFd[1], "hello world", 12); // 12, "hello world" length and '\0'
|
||||||
printf("write first status: %d\n", ret);
|
printf("write first status: %d\n", ret);
|
||||||
if (ret != 12) { // 12, "hello world" length and '\0'
|
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;
|
*sharedflag = 1;
|
||||||
close(pipeFd[1]);
|
close(pipeFd[1]);
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ static UINT32 Testcase(VOID)
|
|||||||
ret = write(pipeFd[1], "Hello world", TAR_STR_LEN);
|
ret = write(pipeFd[1], "Hello world", TAR_STR_LEN);
|
||||||
printf("write first status: %d\n", ret);
|
printf("write first status: %d\n", ret);
|
||||||
if (ret != TAR_STR_LEN) {
|
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;
|
*sharedflag = 1;
|
||||||
close(pipeFd[1]);
|
close(pipeFd[1]);
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ static UINT32 Testcase(VOID)
|
|||||||
|
|
||||||
ret = sigaction(SIGCHLD, &oldact, NULL);
|
ret = sigaction(SIGCHLD, &oldact, NULL);
|
||||||
if (ret == -1) {
|
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);
|
sleep(1);
|
||||||
printf("---son--cnt check----%d--------\n", g_actionCnt1);
|
printf("---son--cnt check----%d--------\n", g_actionCnt1);
|
||||||
|
|||||||
@@ -90,31 +90,31 @@ static int TestCase(void)
|
|||||||
printf("errline = %d\n", __LINE__);
|
printf("errline = %d\n", __LINE__);
|
||||||
exit(-1);
|
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) {
|
if (retValue != -1 || errno != EINVAL) {
|
||||||
printf("errline = %d\n", __LINE__);
|
printf("errline = %d\n", __LINE__);
|
||||||
exit(-1);
|
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) {
|
if (retValue != -1 || errno != EINVAL) {
|
||||||
printf("errline = %d\n", __LINE__);
|
printf("errline = %d\n", __LINE__);
|
||||||
exit(-1);
|
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) {
|
if (retValue != -1 || errno != EINVAL) {
|
||||||
printf("errline = %d\n", __LINE__);
|
printf("errline = %d\n", __LINE__);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("test EPERM begin\n");
|
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) {
|
if (retValue != -1 || errno != EPERM) {
|
||||||
printf("errline = %d\n", __LINE__);
|
printf("errline = %d\n", __LINE__);
|
||||||
exit(-1);
|
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) {
|
if (retValue != -1 || errno != EPERM) {
|
||||||
printf("errline = %d\n", __LINE__);
|
printf("errline = %d\n", __LINE__);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
@@ -126,7 +126,7 @@ static int TestCase(void)
|
|||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = kill(1, 5); // 5, kill sigal num .
|
ret = kill(1, 5); // 5, kill signal num .
|
||||||
if (retValue != -1 || errno != EPERM) {
|
if (retValue != -1 || errno != EPERM) {
|
||||||
printf("errline = %d\n", __LINE__);
|
printf("errline = %d\n", __LINE__);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ static void SigChildResponse(int signo)
|
|||||||
wait(nullptr);
|
wait(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Register SIGCHLD, through signal to restore the child memery */
|
/* Register SIGCHLD, through signal to restore the child memory */
|
||||||
static int TestSigKillResp()
|
static int TestSigKillResp()
|
||||||
{
|
{
|
||||||
void (*ret)(int) = nullptr;
|
void (*ret)(int) = nullptr;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ void SigChildResponse(int signo)
|
|||||||
wait(nullptr);
|
wait(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Register SIGCHLD, through signal to restore the child memery */
|
/* Register SIGCHLD, through signal to restore the child memory */
|
||||||
static int TestSigKillWaitFromSigChild()
|
static int TestSigKillWaitFromSigChild()
|
||||||
{
|
{
|
||||||
void (*ret)(int);
|
void (*ret)(int);
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ static int TestBlock()
|
|||||||
printf("\n\n");
|
printf("\n\n");
|
||||||
|
|
||||||
printf("Signal Pause(2)\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);
|
alarm(clock);
|
||||||
retValue = sighold(sig);
|
retValue = sighold(sig);
|
||||||
if (retValue != 0) {
|
if (retValue != 0) {
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ static UINT32 TestCase()
|
|||||||
sigemptyset(&set);
|
sigemptyset(&set);
|
||||||
sigprocmask(SIG_SETMASK, &set, NULL);
|
sigprocmask(SIG_SETMASK, &set, NULL);
|
||||||
|
|
||||||
printf("check invlid sigset ...\n");
|
printf("check invalid sigset ...\n");
|
||||||
int rt = sigaddset(&set, 0);
|
int rt = sigaddset(&set, 0);
|
||||||
ICUNIT_ASSERT_EQUAL(rt, -1, rt);
|
ICUNIT_ASSERT_EQUAL(rt, -1, rt);
|
||||||
ICUNIT_ASSERT_EQUAL(errno, EINVAL, errno);
|
ICUNIT_ASSERT_EQUAL(errno, EINVAL, errno);
|
||||||
@@ -79,19 +79,19 @@ static UINT32 TestCase()
|
|||||||
|
|
||||||
siginfo_t si;
|
siginfo_t si;
|
||||||
time1.tv_sec = -1;
|
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);
|
ret = SigtimedwaitFailTest(&set, &si, &time1, EINVAL);
|
||||||
ICUNIT_ASSERT_EQUAL(ret, 0, ret);
|
ICUNIT_ASSERT_EQUAL(ret, 0, ret);
|
||||||
|
|
||||||
time1.tv_sec = 1;
|
time1.tv_sec = 1;
|
||||||
time1.tv_nsec = -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);
|
ret = SigtimedwaitFailTest(&set, &si, &time1, EINVAL);
|
||||||
ICUNIT_ASSERT_EQUAL(ret, 0, ret);
|
ICUNIT_ASSERT_EQUAL(ret, 0, ret);
|
||||||
|
|
||||||
time1.tv_sec = 1;
|
time1.tv_sec = 1;
|
||||||
time1.tv_nsec = 1000 * 1000 * 1000 + 1; // 1000, set the nsec of time.
|
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);
|
ret = SigtimedwaitFailTest(&set, &si, &time1, EINVAL);
|
||||||
ICUNIT_ASSERT_EQUAL(ret, 0, ret);
|
ICUNIT_ASSERT_EQUAL(ret, 0, ret);
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ void child1(void)
|
|||||||
while (1) {
|
while (1) {
|
||||||
ret = pthread_getschedparam(pthread, &newPolicy, ¶m);
|
ret = pthread_getschedparam(pthread, &newPolicy, ¶m);
|
||||||
if (ret != 0) {
|
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.
|
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
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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")
|
import("./config.gni")
|
||||||
|
|
||||||
if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
|
if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
import("//build/lite/config/test.gni")
|
import("//build/lite/config/test.gni")
|
||||||
|
import("//kernel/liteos_a/liteos.gni")
|
||||||
import("//kernel/liteos_a/testsuites/unittest/config.gni")
|
import("//kernel/liteos_a/testsuites/unittest/config.gni")
|
||||||
|
|
||||||
common_include_dirs = [
|
common_include_dirs = [
|
||||||
|
|||||||
@@ -26,9 +26,6 @@
|
|||||||
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# 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")
|
import("./config.gni")
|
||||||
|
|
||||||
if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
|
if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
|
||||||
|
|||||||
@@ -27,6 +27,7 @@
|
|||||||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
import("//build/lite/config/test.gni")
|
import("//build/lite/config/test.gni")
|
||||||
|
import("//kernel/liteos_a/liteos.gni")
|
||||||
import("//kernel/liteos_a/testsuites/unittest/config.gni")
|
import("//kernel/liteos_a/testsuites/unittest/config.gni")
|
||||||
|
|
||||||
common_include_dirs = [
|
common_include_dirs = [
|
||||||
@@ -92,7 +93,7 @@ process_plimits_sources_smoke = [
|
|||||||
process_plimits_sources_full = []
|
process_plimits_sources_full = []
|
||||||
|
|
||||||
# plimits module
|
# plimits module
|
||||||
if (LOSCFG_USER_TEST_PROCESS == true) {
|
if (LOSCFG_USER_TEST_PROCESS_PLIMITS == true) {
|
||||||
common_include_dirs += process_plimits_include_dirs
|
common_include_dirs += process_plimits_include_dirs
|
||||||
sources_entry += process_plimits_sources_entry
|
sources_entry += process_plimits_sources_entry
|
||||||
sources_smoke += process_plimits_sources_smoke
|
sources_smoke += process_plimits_sources_smoke
|
||||||
|
|||||||
Reference in New Issue
Block a user