10d163575Sopenharmony_ci# Copyright (c) 2013-2019 Huawei Technologies Co., Ltd. All rights reserved.
20d163575Sopenharmony_ci# Copyright (c) 2020-2023 Huawei Device Co., Ltd. All rights reserved.
30d163575Sopenharmony_ci#
40d163575Sopenharmony_ci# Redistribution and use in source and binary forms, with or without modification,
50d163575Sopenharmony_ci# are permitted provided that the following conditions are met:
60d163575Sopenharmony_ci#
70d163575Sopenharmony_ci# 1. Redistributions of source code must retain the above copyright notice, this list of
80d163575Sopenharmony_ci#    conditions and the following disclaimer.
90d163575Sopenharmony_ci#
100d163575Sopenharmony_ci# 2. Redistributions in binary form must reproduce the above copyright notice, this list
110d163575Sopenharmony_ci#    of conditions and the following disclaimer in the documentation and/or other materials
120d163575Sopenharmony_ci#    provided with the distribution.
130d163575Sopenharmony_ci#
140d163575Sopenharmony_ci# 3. Neither the name of the copyright holder nor the names of its contributors may be used
150d163575Sopenharmony_ci#    to endorse or promote products derived from this software without specific prior written
160d163575Sopenharmony_ci#    permission.
170d163575Sopenharmony_ci#
180d163575Sopenharmony_ci# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
190d163575Sopenharmony_ci# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
200d163575Sopenharmony_ci# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
210d163575Sopenharmony_ci# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
220d163575Sopenharmony_ci# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
230d163575Sopenharmony_ci# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
240d163575Sopenharmony_ci# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
250d163575Sopenharmony_ci# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
260d163575Sopenharmony_ci# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
270d163575Sopenharmony_ci# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
280d163575Sopenharmony_ci# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
290d163575Sopenharmony_ci
300d163575Sopenharmony_ciimport("config.gni")
310d163575Sopenharmony_ci
320d163575Sopenharmony_cilocal_flags = [
330d163575Sopenharmony_ci  "-fpermissive",
340d163575Sopenharmony_ci  "-O2",
350d163575Sopenharmony_ci  "-fbuiltin",
360d163575Sopenharmony_ci  "-Wno-narrowing",
370d163575Sopenharmony_ci  "-fPIE",
380d163575Sopenharmony_ci  "-Wno-error",
390d163575Sopenharmony_ci]
400d163575Sopenharmony_ciif (LOSCFG_USER_TEST_SMP == "enable" ||
410d163575Sopenharmony_ci    (LOSCFG_USER_TEST_SMP == "default" && board_name == "hispark_taurus")) {
420d163575Sopenharmony_ci  local_flags += [ "-DLOSCFG_USER_TEST_SMP" ]
430d163575Sopenharmony_ci}
440d163575Sopenharmony_ci
450d163575Sopenharmony_ciconfig("public_config_for_door") {
460d163575Sopenharmony_ci  cflags = [ "-DLOSCFG_USER_TEST_SMOKE" ]
470d163575Sopenharmony_ci  cflags += local_flags
480d163575Sopenharmony_ci  cflags_cc = cflags
490d163575Sopenharmony_ci}
500d163575Sopenharmony_ci
510d163575Sopenharmony_ciconfig("public_config_for_all") {
520d163575Sopenharmony_ci  cflags = [
530d163575Sopenharmony_ci    "-DLOSCFG_USER_TEST_SMOKE",
540d163575Sopenharmony_ci    "-DLOSCFG_USER_TEST_FULL",
550d163575Sopenharmony_ci  ]
560d163575Sopenharmony_ci  cflags += local_flags
570d163575Sopenharmony_ci  cflags_cc = cflags
580d163575Sopenharmony_ci}
590d163575Sopenharmony_ci
600d163575Sopenharmony_ciconfig("public_config_for_pressure") {
610d163575Sopenharmony_ci  cflags = [ "-DLOSCFG_USER_TEST_PRESSURE" ]
620d163575Sopenharmony_ci  cflags += local_flags
630d163575Sopenharmony_ci  cflags_cc = cflags
640d163575Sopenharmony_ci}
650d163575Sopenharmony_ci
660d163575Sopenharmony_ci# Note: The execution time of a single XXX_door.bin cannot exceed 90 seconds.
670d163575Sopenharmony_cigroup("unittest") {
680d163575Sopenharmony_ci  deps = []
690d163575Sopenharmony_ci  if (ohos_build_type == "debug") {
700d163575Sopenharmony_ci    deps += [ "tools:liteos_unittest_run" ]
710d163575Sopenharmony_ci
720d163575Sopenharmony_ci    # basic test
730d163575Sopenharmony_ci    if (LOSCFG_USER_TEST_BASIC == true) {
740d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
750d163575Sopenharmony_ci        deps += [ "basic:liteos_a_basic_unittest_door" ]
760d163575Sopenharmony_ci      }
770d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_MIDDLE) {
780d163575Sopenharmony_ci        deps += [ "basic:liteos_a_basic_unittest" ]
790d163575Sopenharmony_ci      }
800d163575Sopenharmony_ci    }
810d163575Sopenharmony_ci
820d163575Sopenharmony_ci    # drivers test
830d163575Sopenharmony_ci    if (LOSCFG_USER_TEST_DRIVERS == true) {
840d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
850d163575Sopenharmony_ci        deps += [ "drivers:liteos_a_drivers_unittest_door" ]
860d163575Sopenharmony_ci      }
870d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_MIDDLE) {
880d163575Sopenharmony_ci        deps += [ "drivers:liteos_a_drivers_unittest" ]
890d163575Sopenharmony_ci      }
900d163575Sopenharmony_ci    }
910d163575Sopenharmony_ci
920d163575Sopenharmony_ci    # extended test
930d163575Sopenharmony_ci    if (LOSCFG_USER_TEST_EXTENDED == true) {
940d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
950d163575Sopenharmony_ci        deps += [ "extended:liteos_a_extended_unittest_door" ]
960d163575Sopenharmony_ci      }
970d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_MIDDLE) {
980d163575Sopenharmony_ci        deps += [ "extended:liteos_a_extended_unittest" ]
990d163575Sopenharmony_ci      }
1000d163575Sopenharmony_ci    }
1010d163575Sopenharmony_ci
1020d163575Sopenharmony_ci    # fs test
1030d163575Sopenharmony_ci    if (LOSCFG_USER_TEST_FS == true) {
1040d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
1050d163575Sopenharmony_ci        deps += [ "fs:liteos_a_fs_unittest_door" ]
1060d163575Sopenharmony_ci      }
1070d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_MIDDLE) {
1080d163575Sopenharmony_ci        deps += [ "fs:liteos_a_fs_unittest" ]
1090d163575Sopenharmony_ci      }
1100d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_HIGH) {
1110d163575Sopenharmony_ci        deps += [ "fs:liteos_a_fs_unittest_pressure" ]
1120d163575Sopenharmony_ci      }
1130d163575Sopenharmony_ci    }
1140d163575Sopenharmony_ci
1150d163575Sopenharmony_ci    # libc test
1160d163575Sopenharmony_ci    if (LOSCFG_USER_TEST_LIBC == true) {
1170d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
1180d163575Sopenharmony_ci        deps += [
1190d163575Sopenharmony_ci          "libc/io:liteos_a_libc_io_unittest_door",
1200d163575Sopenharmony_ci          "libc/misc:liteos_a_libc_misc_unittest_door",
1210d163575Sopenharmony_ci          "libc/posix:liteos_a_libc_posix_unittest_door",
1220d163575Sopenharmony_ci          "libc/sys:liteos_a_libc_sys_unittest_door",
1230d163575Sopenharmony_ci          "libc/time:liteos_a_libc_time_unittest_door",
1240d163575Sopenharmony_ci          "libc/util:liteos_a_libc_util_unittest_door",
1250d163575Sopenharmony_ci        ]
1260d163575Sopenharmony_ci      }
1270d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_MIDDLE) {
1280d163575Sopenharmony_ci        deps += [
1290d163575Sopenharmony_ci          "libc/io:liteos_a_libc_io_unittest",
1300d163575Sopenharmony_ci          "libc/misc:liteos_a_libc_misc_unittest",
1310d163575Sopenharmony_ci          "libc/posix:liteos_a_libc_posix_unittest",
1320d163575Sopenharmony_ci          "libc/sys:liteos_a_libc_sys_unittest",
1330d163575Sopenharmony_ci          "libc/time:liteos_a_libc_time_unittest",
1340d163575Sopenharmony_ci          "libc/util:liteos_a_libc_util_unittest",
1350d163575Sopenharmony_ci        ]
1360d163575Sopenharmony_ci      }
1370d163575Sopenharmony_ci    }
1380d163575Sopenharmony_ci
1390d163575Sopenharmony_ci    # net test
1400d163575Sopenharmony_ci    if (LOSCFG_USER_TEST_NET == true) {
1410d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
1420d163575Sopenharmony_ci        deps += [ "net:liteos_a_net_unittest_door" ]
1430d163575Sopenharmony_ci      }
1440d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_MIDDLE) {
1450d163575Sopenharmony_ci        deps += [ "net:liteos_a_net_unittest" ]
1460d163575Sopenharmony_ci      }
1470d163575Sopenharmony_ci    }
1480d163575Sopenharmony_ci
1490d163575Sopenharmony_ci    # process test
1500d163575Sopenharmony_ci    if (LOSCFG_USER_TEST_PROCESS_THREAD == true) {
1510d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
1520d163575Sopenharmony_ci        deps += [
1530d163575Sopenharmony_ci          "process/basic/process:liteos_a_process_basic_process_unittest_door",
1540d163575Sopenharmony_ci          "process/basic/pthread:liteos_a_process_basic_pthread_unittest_door",
1550d163575Sopenharmony_ci          "process/lock:liteos_a_process_lock_unittest_door",
1560d163575Sopenharmony_ci        ]
1570d163575Sopenharmony_ci        if (LOSCFG_USER_TEST_PROCESS_FS == true) {
1580d163575Sopenharmony_ci          deps += [ "process/fs:liteos_a_process_fs_unittest_door" ]
1590d163575Sopenharmony_ci        }
1600d163575Sopenharmony_ci        if (LOSCFG_USER_TEST_PROCESS_PLIMITS == true) {
1610d163575Sopenharmony_ci          deps += [ "process/plimits:liteos_a_process_plimits_unittest_door" ]
1620d163575Sopenharmony_ci        }
1630d163575Sopenharmony_ci      }
1640d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_MIDDLE) {
1650d163575Sopenharmony_ci        deps += [
1660d163575Sopenharmony_ci          "process/basic/process:liteos_a_process_basic_process_unittest",
1670d163575Sopenharmony_ci          "process/basic/pthread:liteos_a_process_basic_pthread_unittest",
1680d163575Sopenharmony_ci          "process/lock:liteos_a_process_lock_unittest",
1690d163575Sopenharmony_ci        ]
1700d163575Sopenharmony_ci        if (LOSCFG_USER_TEST_PROCESS_FS == true) {
1710d163575Sopenharmony_ci          deps += [ "process/fs:liteos_a_process_fs_unittest" ]
1720d163575Sopenharmony_ci        }
1730d163575Sopenharmony_ci        if (LOSCFG_USER_TEST_PROCESS_PLIMITS == true) {
1740d163575Sopenharmony_ci          deps += [ "process/plimits:liteos_a_process_plimits_unittest" ]
1750d163575Sopenharmony_ci        }
1760d163575Sopenharmony_ci      }
1770d163575Sopenharmony_ci    }
1780d163575Sopenharmony_ci
1790d163575Sopenharmony_ci    # security test
1800d163575Sopenharmony_ci    if (LOSCFG_USER_TEST_SECURITY == true) {
1810d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
1820d163575Sopenharmony_ci        deps += [ "security:liteos_a_security_unittest_door" ]
1830d163575Sopenharmony_ci      }
1840d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_MIDDLE) {
1850d163575Sopenharmony_ci        deps += [ "security:liteos_a_security_unittest" ]
1860d163575Sopenharmony_ci      }
1870d163575Sopenharmony_ci    }
1880d163575Sopenharmony_ci
1890d163575Sopenharmony_ci    # container test
1900d163575Sopenharmony_ci    if (LOSCFG_USER_TEST_CONTAINER == true) {
1910d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_LOW) {
1920d163575Sopenharmony_ci        deps += [ "container:liteos_a_container_unittest_door" ]
1930d163575Sopenharmony_ci      }
1940d163575Sopenharmony_ci      if (LOSCFG_USER_TEST_LEVEL >= TEST_LEVEL_MIDDLE) {
1950d163575Sopenharmony_ci        deps += [ "container:liteos_a_container_unittest" ]
1960d163575Sopenharmony_ci      }
1970d163575Sopenharmony_ci    }
1980d163575Sopenharmony_ci
1990d163575Sopenharmony_ci    # fuzz test
2000d163575Sopenharmony_ci    if (LOSCFG_USER_FUZZ_TEST == true) {
2010d163575Sopenharmony_ci      deps += [ "fuzz:liteos_a_fuzztest" ]
2020d163575Sopenharmony_ci    }
2030d163575Sopenharmony_ci  }
2040d163575Sopenharmony_ci}
205