1# Copyright (c) 2023-2023 Huawei Device Co., Ltd. All rights reserved.
2#
3# Redistribution and use in source and binary forms, with or without modification,
4# are permitted provided that the following conditions are met:
5#
6# 1. Redistributions of source code must retain the above copyright notice, this list of
7#    conditions and the following disclaimer.
8#
9# 2. Redistributions in binary form must reproduce the above copyright notice, this list
10#    of conditions and the following disclaimer in the documentation and/or other materials
11#    provided with the distribution.
12#
13# 3. Neither the name of the copyright holder nor the names of its contributors may be used
14#    to endorse or promote products derived from this software without specific prior written
15#    permission.
16#
17# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
19# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
21# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
24# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
26# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
27# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
29import("./config.gni")
30
31config("container_config") {
32  cflags = []
33  if (defined(LOSCFG_USER_TEST_PID_CONTAINER)) {
34    cflags += [ "-DLOSCFG_USER_TEST_PID_CONTAINER" ]
35  }
36  if (defined(LOSCFG_USER_TEST_UTS_CONTAINER)) {
37    cflags += [ "-DLOSCFG_USER_TEST_UTS_CONTAINER" ]
38  }
39  if (defined(LOSCFG_USER_TEST_MNT_CONTAINER)) {
40    cflags += [ "-DLOSCFG_USER_TEST_MNT_CONTAINER" ]
41  }
42  if (defined(LOSCFG_USER_TEST_IPC_CONTAINER)) {
43    cflags += [ "-DLOSCFG_USER_TEST_IPC_CONTAINER" ]
44  }
45  if (defined(LOSCFG_USER_TEST_TIME_CONTAINER)) {
46    cflags += [ "-DLOSCFG_USER_TEST_TIME_CONTAINER" ]
47  }
48  if (defined(LOSCFG_USER_TEST_USER_CONTAINER)) {
49    cflags += [ "-DLOSCFG_USER_TEST_USER_CONTAINER" ]
50  }
51  if (defined(LOSCFG_USER_TEST_NET_CONTAINER)) {
52    cflags += [ "-DLOSCFG_USER_TEST_NET_CONTAINER" ]
53  }
54  cflags_cc = cflags
55}
56
57if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
58  unittest("liteos_a_container_unittest_door") {
59    output_extension = "bin"
60    output_dir = "$root_out_dir/test/unittest/kernel"
61    include_dirs = common_include_dirs
62    sources = sources_entry
63    sources += sources_smoke
64    sources_full = []
65    sources += sources_full
66    configs = [
67      "..:public_config_for_door",
68      ":container_config",
69    ]
70    deps = [ "$THIRDPARTY_BOUNDS_CHECKING_FUNCTION_DIR:libsec_shared" ]
71  }
72}
73
74if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_MIDDLE) {
75  unittest("liteos_a_container_unittest") {
76    output_extension = "bin"
77    output_dir = "$root_out_dir/test/unittest/kernel"
78    include_dirs = common_include_dirs
79    sources = sources_entry
80    sources += sources_smoke
81    sources += sources_full
82    configs = [
83      "..:public_config_for_all",
84      ":container_config",
85    ]
86    deps = [ "$THIRDPARTY_BOUNDS_CHECKING_FUNCTION_DIR:libsec_shared" ]
87  }
88}
89