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