131c75014Sopenharmony_ci# Copyright (c) 2021 Huawei Device Co., Ltd.
231c75014Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
331c75014Sopenharmony_ci# you may not use this file except in compliance with the License.
431c75014Sopenharmony_ci# You may obtain a copy of the License at
531c75014Sopenharmony_ci#
631c75014Sopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
731c75014Sopenharmony_ci#
831c75014Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software
931c75014Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
1031c75014Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1131c75014Sopenharmony_ci# See the License for the specific language governing permissions and
1231c75014Sopenharmony_ci# limitations under the License.
1331c75014Sopenharmony_ci
1431c75014Sopenharmony_cideclare_args() {
1531c75014Sopenharmony_ci  SUITE_OUTPUT_PREFIX = "$root_out_dir/suites/"
1631c75014Sopenharmony_ci  SUITE_ARCHIVE_DIR = "$root_out_dir/suites/testsuite"
1731c75014Sopenharmony_ci  SUITE_TESTCASES_NAME = "testcases"
1831c75014Sopenharmony_ci  SUITE_TOOLS_NAME = "tools"
1931c75014Sopenharmony_ci  BUILD_DIR_PREFIX = "//test/xts/tools/lite/build/"
2031c75014Sopenharmony_ci}
2131c75014Sopenharmony_citemplate("testsuite_common") {
2231c75014Sopenharmony_ci  assert(defined(invoker.suite_name),
2331c75014Sopenharmony_ci         "suite_name is required in target ${target_name}")
2431c75014Sopenharmony_ci  assert(defined(invoker.subsystem_name),
2531c75014Sopenharmony_ci         "subsystem_name is required in target ${target_name}")
2631c75014Sopenharmony_ci
2731c75014Sopenharmony_ci  _suite_name = invoker.suite_name
2831c75014Sopenharmony_ci  _output_file = invoker.output_file
2931c75014Sopenharmony_ci  _project_dir = invoker.project_dir
3031c75014Sopenharmony_ci  _project_type = invoker.project_type
3131c75014Sopenharmony_ci  _archive_filename = invoker.archive_filename
3231c75014Sopenharmony_ci  _deps = []
3331c75014Sopenharmony_ci  if (defined(invoker.deps)) {
3431c75014Sopenharmony_ci    _deps += invoker.deps
3531c75014Sopenharmony_ci  }
3631c75014Sopenharmony_ci  _subsystem_name = invoker.subsystem_name
3731c75014Sopenharmony_ci
3831c75014Sopenharmony_ci  _outputs_dir = ""
3931c75014Sopenharmony_ci  if (defined(invoker.outputs_dir)) {
4031c75014Sopenharmony_ci    _outputs_dir = invoker.outputs_dir
4131c75014Sopenharmony_ci  }
4231c75014Sopenharmony_ci
4331c75014Sopenharmony_ci  _hap_name = ","
4431c75014Sopenharmony_ci  if (defined(invoker.hap_name)) {
4531c75014Sopenharmony_ci    _hap_name = invoker.hap_name
4631c75014Sopenharmony_ci  }
4731c75014Sopenharmony_ci
4831c75014Sopenharmony_ci  _hap_sign = ","
4931c75014Sopenharmony_ci  if (defined(invoker.hap_sign)) {
5031c75014Sopenharmony_ci    _hap_sign = invoker.hap_sign
5131c75014Sopenharmony_ci  }
5231c75014Sopenharmony_ci  _args2 = [
5331c75014Sopenharmony_ci    "--method_name",
5431c75014Sopenharmony_ci    "gen_suite_out",
5531c75014Sopenharmony_ci    "--arguments",
5631c75014Sopenharmony_ci    "suite_output_prefix=${SUITE_OUTPUT_PREFIX}#suite_names=${_suite_name}#out_suffix=${SUITE_TESTCASES_NAME}/${_subsystem_name}/${_outputs_dir}",
5731c75014Sopenharmony_ci  ]
5831c75014Sopenharmony_ci  _output_files = exec_script(rebase_path("$BUILD_DIR_PREFIX/utils.py"),
5931c75014Sopenharmony_ci                              _args2,
6031c75014Sopenharmony_ci                              "list lines")
6131c75014Sopenharmony_ci  _outputs = []
6231c75014Sopenharmony_ci  _out_paths = ""
6331c75014Sopenharmony_ci  foreach(out, _output_files) {
6431c75014Sopenharmony_ci    _outputs += [ "$out/$_archive_filename" ]
6531c75014Sopenharmony_ci    _out_paths = _out_paths + rebase_path(out) + ","
6631c75014Sopenharmony_ci  }
6731c75014Sopenharmony_ci
6831c75014Sopenharmony_ci  _arguments = [
6931c75014Sopenharmony_ci    "build_module",
7031c75014Sopenharmony_ci    "--build_target_name",
7131c75014Sopenharmony_ci    target_name,
7231c75014Sopenharmony_ci    "--target_file",
7331c75014Sopenharmony_ci    _output_file,
7431c75014Sopenharmony_ci    "--project_path",
7531c75014Sopenharmony_ci    _project_dir,
7631c75014Sopenharmony_ci    "--test_xml",
7731c75014Sopenharmony_ci    rebase_path("Test.json"),
7831c75014Sopenharmony_ci    "--project_type",
7931c75014Sopenharmony_ci    _project_type,
8031c75014Sopenharmony_ci    "--suite_out_paths",
8131c75014Sopenharmony_ci    _out_paths,
8231c75014Sopenharmony_ci    "--suite_filename",
8331c75014Sopenharmony_ci    _archive_filename,
8431c75014Sopenharmony_ci    "--subsystem_name",
8531c75014Sopenharmony_ci    _subsystem_name,
8631c75014Sopenharmony_ci    "--hap_name",
8731c75014Sopenharmony_ci    _hap_name,
8831c75014Sopenharmony_ci    "--hap_sign",
8931c75014Sopenharmony_ci    _hap_sign,
9031c75014Sopenharmony_ci  ]
9131c75014Sopenharmony_ci
9231c75014Sopenharmony_ci  action(target_name) {
9331c75014Sopenharmony_ci    deps = _deps
9431c75014Sopenharmony_ci    script = rebase_path("$BUILD_DIR_PREFIX/suite.py")
9531c75014Sopenharmony_ci    args = _arguments
9631c75014Sopenharmony_ci    outputs = _outputs
9731c75014Sopenharmony_ci  }
9831c75014Sopenharmony_ci}
9931c75014Sopenharmony_ci
10031c75014Sopenharmony_citemplate("deploy_suite") {
10131c75014Sopenharmony_ci  assert(defined(invoker.suite_name),
10231c75014Sopenharmony_ci         "suite_name is required in target ${target_name}")
10331c75014Sopenharmony_ci  _suite_name = invoker.suite_name
10431c75014Sopenharmony_ci  _output_prefix = "$SUITE_OUTPUT_PREFIX"
10531c75014Sopenharmony_ci  _args = [
10631c75014Sopenharmony_ci    "--method_name",
10731c75014Sopenharmony_ci    "gen_suite_out",
10831c75014Sopenharmony_ci    "--arguments",
10931c75014Sopenharmony_ci    "suite_output_prefix=${_output_prefix}#suite_names=${_suite_name}#out_suffix=${SUITE_TOOLS_NAME}",
11031c75014Sopenharmony_ci  ]
11131c75014Sopenharmony_ci  _output_dirs = exec_script(rebase_path("$BUILD_DIR_PREFIX/utils.py"),
11231c75014Sopenharmony_ci                             _args,
11331c75014Sopenharmony_ci                             "list lines")
11431c75014Sopenharmony_ci  _outputs = ""
11531c75014Sopenharmony_ci  foreach(dir, _output_dirs) {
11631c75014Sopenharmony_ci    _outputs = _outputs + rebase_path(dir) + ","
11731c75014Sopenharmony_ci  }
11831c75014Sopenharmony_ci  _arguments = [
11931c75014Sopenharmony_ci    "build_xdevice",
12031c75014Sopenharmony_ci    "--project_dir",
12131c75014Sopenharmony_ci    rebase_path("//test/testfwk/xdevice"),
12231c75014Sopenharmony_ci    "--output_dirs",
12331c75014Sopenharmony_ci    _outputs,
12431c75014Sopenharmony_ci  ]
12531c75014Sopenharmony_ci  action(target_name) {
12631c75014Sopenharmony_ci    deps = []
12731c75014Sopenharmony_ci    script = rebase_path("$BUILD_DIR_PREFIX/suite.py")
12831c75014Sopenharmony_ci    args = _arguments
12931c75014Sopenharmony_ci    outputs = _output_dirs
13031c75014Sopenharmony_ci  }
13131c75014Sopenharmony_ci}
132