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_ciimport("//build/ohos.gni") 1531c75014Sopenharmony_ciimport("//build/test.gni") 1631c75014Sopenharmony_ciif (precise_xts) { 1731c75014Sopenharmony_ci import("//out/preloader/precise_run.gni") 1831c75014Sopenharmony_ci} 1931c75014Sopenharmony_ci 2031c75014Sopenharmony_cideclare_args() { 2131c75014Sopenharmony_ci SUITES_OUTPUT_ROOT = "$root_out_dir/suites" 2231c75014Sopenharmony_ci SUITE_ARCHIVE_DIR = "$root_out_dir/suites/archives" 2331c75014Sopenharmony_ci TESTCONFIG_FILENAME = "Test.xml" 2431c75014Sopenharmony_ci XTS_ROOT = "//test/xts" 2531c75014Sopenharmony_ci ACTS_ROOT = "//test/xts/acts" 2631c75014Sopenharmony_ci HATS_ROOT = "//test/xts/hats" 2731c75014Sopenharmony_ci HITS_ROOT = "//test/xts/hits" 2831c75014Sopenharmony_ci DCTS_ROOT = "//test/xts/dcts" 2931c75014Sopenharmony_ci 3031c75014Sopenharmony_ci # create testsuite archive is time-consuming, do it only if necessary 3131c75014Sopenharmony_ci make_archive = false 3231c75014Sopenharmony_ci XTS_SUITENAME = getenv("XTS_SUITENAME") 3331c75014Sopenharmony_ci} 3431c75014Sopenharmony_ci 3531c75014Sopenharmony_citemplate("ohos_testsuite_base") { 3631c75014Sopenharmony_ci assert(defined(invoker.project_type), 3731c75014Sopenharmony_ci "project_type is required in target ${target_name}") 3831c75014Sopenharmony_ci 3931c75014Sopenharmony_ci _part_name = "common" 4031c75014Sopenharmony_ci 4131c75014Sopenharmony_ci if (defined(invoker.part_name)) { 4231c75014Sopenharmony_ci _part_name = invoker.part_name 4331c75014Sopenharmony_ci } 4431c75014Sopenharmony_ci 4531c75014Sopenharmony_ci precise_build_boolean = true 4631c75014Sopenharmony_ci if (precise_xts && filter_include(precise_run, 4731c75014Sopenharmony_ci [ 4831c75014Sopenharmony_ci "all", 4931c75014Sopenharmony_ci _part_name, 5031c75014Sopenharmony_ci ]) == []) { 5131c75014Sopenharmony_ci print("precise_xts is on ,${_part_name} is not on build") 5231c75014Sopenharmony_ci precise_build_boolean = false 5331c75014Sopenharmony_ci } 5431c75014Sopenharmony_ci if (precise_build_boolean) { 5531c75014Sopenharmony_ci _subsystem_name = "common" 5631c75014Sopenharmony_ci if (defined(invoker.subsystem_name)) { 5731c75014Sopenharmony_ci _subsystem_name = invoker.subsystem_name 5831c75014Sopenharmony_ci } 5931c75014Sopenharmony_ci _project_type = invoker.project_type 6031c75014Sopenharmony_ci 6131c75014Sopenharmony_ci _build_part_boolean = false 6231c75014Sopenharmony_ci tmp_subsystem_part = "${_subsystem_name}_${_part_name}" 6331c75014Sopenharmony_ci _part_script_judge = "//test/xts/tools/build/judgePart.py" 6431c75014Sopenharmony_ci _script_judge_args1 = [ 6531c75014Sopenharmony_ci rebase_path("$preloader_output_dir") + "/parts_config.json", 6631c75014Sopenharmony_ci tmp_subsystem_part, 6731c75014Sopenharmony_ci "judgePart", 6831c75014Sopenharmony_ci ] 6931c75014Sopenharmony_ci _build_part_boolean_str = exec_script(rebase_path(_part_script_judge), 7031c75014Sopenharmony_ci _script_judge_args1, 7131c75014Sopenharmony_ci "trim string") 7231c75014Sopenharmony_ci if (_build_part_boolean_str == "True") { 7331c75014Sopenharmony_ci _build_part_boolean = true 7431c75014Sopenharmony_ci } 7531c75014Sopenharmony_ci 7631c75014Sopenharmony_ci if (_subsystem_name == "kernel" || _subsystem_name == "common") { 7731c75014Sopenharmony_ci _build_part_boolean = true 7831c75014Sopenharmony_ci } 7931c75014Sopenharmony_ci 8031c75014Sopenharmony_ci _test_files = "" 8131c75014Sopenharmony_ci if (defined(invoker.generated_testfiles)) { 8231c75014Sopenharmony_ci foreach(file, invoker.generated_testfiles) { 8331c75014Sopenharmony_ci _test_files = 8431c75014Sopenharmony_ci _test_files + "," + rebase_path("$root_gen_dir") + "/" + file 8531c75014Sopenharmony_ci } 8631c75014Sopenharmony_ci } 8731c75014Sopenharmony_ci 8831c75014Sopenharmony_ci _is_testbundle = defined(invoker.is_testbundle) && invoker.is_testbundle 8931c75014Sopenharmony_ci 9031c75014Sopenharmony_ci if (defined(invoker.sub_output_dir)) { 9131c75014Sopenharmony_ci _output_file_dir = rebase_path( 9231c75014Sopenharmony_ci "$root_out_dir/tests/moduletest/${invoker.sub_output_dir}") 9331c75014Sopenharmony_ci } else if (defined(invoker.module_out_path)) { 9431c75014Sopenharmony_ci _output_file_dir = rebase_path( 9531c75014Sopenharmony_ci "$root_out_dir/tests/moduletest/${invoker.module_out_path}") 9631c75014Sopenharmony_ci } else { 9731c75014Sopenharmony_ci _output_file_dir = rebase_path("$root_out_dir/tests/moduletest") 9831c75014Sopenharmony_ci } 9931c75014Sopenharmony_ci _output_file = "${_output_file_dir}/module_${target_name}" 10031c75014Sopenharmony_ci 10131c75014Sopenharmony_ci if (_project_type == "gtest" || _project_type == "ctestbundle") { 10231c75014Sopenharmony_ci _output_file = "${_output_file_dir}/${target_name}" 10331c75014Sopenharmony_ci _archive_filename = "${target_name}" 10431c75014Sopenharmony_ci if (_build_part_boolean == true) { 10531c75014Sopenharmony_ci target("ohos_moduletest", "module_${target_name}") { 10631c75014Sopenharmony_ci forward_variables_from(invoker, "*") 10731c75014Sopenharmony_ci testonly = true 10831c75014Sopenharmony_ci } 10931c75014Sopenharmony_ci } else { 11031c75014Sopenharmony_ci print(tmp_subsystem_part + " is not build") 11131c75014Sopenharmony_ci if (defined(invoker.public_configs)) { 11231c75014Sopenharmony_ci print(invoker.public_configs) 11331c75014Sopenharmony_ci } 11431c75014Sopenharmony_ci if (defined(invoker.external_deps)) { 11531c75014Sopenharmony_ci print(invoker.external_deps) 11631c75014Sopenharmony_ci } 11731c75014Sopenharmony_ci if (defined(invoker.deps)) { 11831c75014Sopenharmony_ci print(invoker.deps) 11931c75014Sopenharmony_ci } 12031c75014Sopenharmony_ci if (defined(invoker.configs)) { 12131c75014Sopenharmony_ci print(invoker.configs) 12231c75014Sopenharmony_ci } 12331c75014Sopenharmony_ci if (defined(invoker.sources)) { 12431c75014Sopenharmony_ci print(invoker.sources) 12531c75014Sopenharmony_ci } 12631c75014Sopenharmony_ci } 12731c75014Sopenharmony_ci } else if (_project_type == "zunit" || _project_type == "javatestbundle") { 12831c75014Sopenharmony_ci _output_file = "${_output_file_dir}/module_${target_name}.dex" 12931c75014Sopenharmony_ci _archive_filename = "${target_name}.dex" 13031c75014Sopenharmony_ci if (_build_part_boolean == true) { 13131c75014Sopenharmony_ci target("ohos_java_moduletest", "module_${target_name}") { 13231c75014Sopenharmony_ci forward_variables_from(invoker, "*") 13331c75014Sopenharmony_ci testonly = true 13431c75014Sopenharmony_ci } 13531c75014Sopenharmony_ci } 13631c75014Sopenharmony_ci } else if (_project_type == "hostjunit") { 13731c75014Sopenharmony_ci _output_file = "${_output_file_dir}/module_${target_name}.jar" 13831c75014Sopenharmony_ci if (defined(invoker.final_jar_path)) { 13931c75014Sopenharmony_ci _output_file = invoker.final_jar_path 14031c75014Sopenharmony_ci } 14131c75014Sopenharmony_ci _archive_filename = "${target_name}.jar" 14231c75014Sopenharmony_ci if (_build_part_boolean == true) { 14331c75014Sopenharmony_ci target("java_library", "module_${target_name}") { 14431c75014Sopenharmony_ci forward_variables_from(invoker, "*") 14531c75014Sopenharmony_ci is_host_library = true 14631c75014Sopenharmony_ci } 14731c75014Sopenharmony_ci } 14831c75014Sopenharmony_ci } else if (_project_type == "testhap" || _project_type == "haptestbundle" || 14931c75014Sopenharmony_ci _project_type == "testhapassist" || _project_type == "testapp" || 15031c75014Sopenharmony_ci _project_type == "testappassist") { 15131c75014Sopenharmony_ci assert(defined(invoker.hap_name), 15231c75014Sopenharmony_ci "hap_name is required in target ${target_name}") 15331c75014Sopenharmony_ci assert(!defined(invoker.final_hap_path), 15431c75014Sopenharmony_ci "please use hap_name instead of final_hap_path") 15531c75014Sopenharmony_ci 15631c75014Sopenharmony_ci _hap_name = invoker.hap_name 15731c75014Sopenharmony_ci _final_hap_path = "" 15831c75014Sopenharmony_ci _target_name = "" 15931c75014Sopenharmony_ci _suite_out_dir = "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}" 16031c75014Sopenharmony_ci subsystem_name = XTS_SUITENAME 16131c75014Sopenharmony_ci if (subsystem_name == "acts") { 16231c75014Sopenharmony_ci _suite_out_dir = "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/acts" 16331c75014Sopenharmony_ci } 16431c75014Sopenharmony_ci if (_project_type == "testhapassist") { 16531c75014Sopenharmony_ci _final_hap_path = "${_suite_out_dir}/testcases/${_hap_name}.hap" 16631c75014Sopenharmony_ci _target_name = target_name 16731c75014Sopenharmony_ci } else { 16831c75014Sopenharmony_ci _final_hap_path = "${SUITES_OUTPUT_ROOT}/haps/${_hap_name}.hap" 16931c75014Sopenharmony_ci _target_name = "module_${target_name}" 17031c75014Sopenharmony_ci } 17131c75014Sopenharmony_ci _output_file = _final_hap_path 17231c75014Sopenharmony_ci _archive_filename = "${_hap_name}.hap" 17331c75014Sopenharmony_ci if (_build_part_boolean == true) { 17431c75014Sopenharmony_ci if (_project_type == "testapp") { 17531c75014Sopenharmony_ci target("ohos_app", _target_name) { 17631c75014Sopenharmony_ci forward_variables_from(invoker, "*") 17731c75014Sopenharmony_ci subsystem_name = XTS_SUITENAME 17831c75014Sopenharmony_ci hap_out_dir = "${SUITES_OUTPUT_ROOT}/haps" 17931c75014Sopenharmony_ci testonly = true 18031c75014Sopenharmony_ci } 18131c75014Sopenharmony_ci } else if (_project_type == "testappassist") { 18231c75014Sopenharmony_ci target("ohos_app", target_name) { 18331c75014Sopenharmony_ci forward_variables_from(invoker, "*") 18431c75014Sopenharmony_ci subsystem_name = XTS_SUITENAME 18531c75014Sopenharmony_ci hap_out_dir = "${_suite_out_dir}/testcases" 18631c75014Sopenharmony_ci testonly = true 18731c75014Sopenharmony_ci } 18831c75014Sopenharmony_ci } else { 18931c75014Sopenharmony_ci target("ohos_hap", _target_name) { 19031c75014Sopenharmony_ci forward_variables_from(invoker, "*") 19131c75014Sopenharmony_ci subsystem_name = XTS_SUITENAME 19231c75014Sopenharmony_ci final_hap_path = _final_hap_path 19331c75014Sopenharmony_ci testonly = true 19431c75014Sopenharmony_ci } 19531c75014Sopenharmony_ci } 19631c75014Sopenharmony_ci } else { 19731c75014Sopenharmony_ci print(tmp_subsystem_part + " is not build") 19831c75014Sopenharmony_ci not_needed(invoker, "*") 19931c75014Sopenharmony_ci } 20031c75014Sopenharmony_ci } else if (_project_type == "pythontest") { 20131c75014Sopenharmony_ci if (defined(invoker.outputs_dir)) { 20231c75014Sopenharmony_ci _out_put_dir = invoker.outputs_dir 20331c75014Sopenharmony_ci _archive_filename = "${_subsystem_name}/${_out_put_dir}" 20431c75014Sopenharmony_ci } else { 20531c75014Sopenharmony_ci _archive_filename = "${_subsystem_name}" 20631c75014Sopenharmony_ci } 20731c75014Sopenharmony_ci _test_files = invoker.output_file 20831c75014Sopenharmony_ci _deps = [] 20931c75014Sopenharmony_ci if (defined(invoker.deps)) { 21031c75014Sopenharmony_ci _deps = invoker.deps 21131c75014Sopenharmony_ci } 21231c75014Sopenharmony_ci } else if (_project_type == "js_test_hap") { 21331c75014Sopenharmony_ci _hap_name = invoker.test_hap_name 21431c75014Sopenharmony_ci _output_file = invoker.hap_source_path 21531c75014Sopenharmony_ci _archive_filename = "${_hap_name}.hap" 21631c75014Sopenharmony_ci } 21731c75014Sopenharmony_ci 21831c75014Sopenharmony_ci _apilibrary_deps = "" 21931c75014Sopenharmony_ci if (_is_testbundle && defined(invoker.deps)) { 22031c75014Sopenharmony_ci foreach(dep, invoker.deps) { 22131c75014Sopenharmony_ci _apilibrary_deps = _apilibrary_deps + "," + dep 22231c75014Sopenharmony_ci } 22331c75014Sopenharmony_ci } 22431c75014Sopenharmony_ci 22531c75014Sopenharmony_ci if (_project_type != "pythontest" && _project_type != "js_test_hap" && 22631c75014Sopenharmony_ci _project_type != "testhapassist" && _project_type != "testappassist") { 22731c75014Sopenharmony_ci _deps = [ ":module_${target_name}" ] 22831c75014Sopenharmony_ci } else if (_project_type == "pythontest") { 22931c75014Sopenharmony_ci print("this is pythontest") 23031c75014Sopenharmony_ci } else if (_project_type != "testhapassist" && 23131c75014Sopenharmony_ci _project_type != "testappassist") { 23231c75014Sopenharmony_ci _deps = [] 23331c75014Sopenharmony_ci } 23431c75014Sopenharmony_ci _suite_out_dir = "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}" 23531c75014Sopenharmony_ci 23631c75014Sopenharmony_ci _archive_testfile = "" 23731c75014Sopenharmony_ci subsystem_name = XTS_SUITENAME 23831c75014Sopenharmony_ci if (subsystem_name == "acts") { 23931c75014Sopenharmony_ci _suite_out_dir = "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/acts" 24031c75014Sopenharmony_ci } 24131c75014Sopenharmony_ci if (_project_type == "testhapassist" || _project_type == "testappassist") { 24231c75014Sopenharmony_ci _archive_testfile = 24331c75014Sopenharmony_ci "${_suite_out_dir}/testcases/module_${_archive_filename}" 24431c75014Sopenharmony_ci } else if (_project_type == "testapp") { 24531c75014Sopenharmony_ci _hap_name = invoker.hap_name 24631c75014Sopenharmony_ci if (_hap_name == "validator" && subsystem_name == "acts") { 24731c75014Sopenharmony_ci _suite_out_dir = "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/acts-validator" 24831c75014Sopenharmony_ci _archive_testfile = "${_suite_out_dir}/testcases/${_archive_filename}" 24931c75014Sopenharmony_ci } else { 25031c75014Sopenharmony_ci _archive_testfile = "${_suite_out_dir}/testcases/${_archive_filename}" 25131c75014Sopenharmony_ci } 25231c75014Sopenharmony_ci } else { 25331c75014Sopenharmony_ci _archive_testfile = "${_suite_out_dir}/testcases/${_archive_filename}" 25431c75014Sopenharmony_ci } 25531c75014Sopenharmony_ci _arguments = [ 25631c75014Sopenharmony_ci "build_module_with_testbundle", 25731c75014Sopenharmony_ci "--build_gen_dir", 25831c75014Sopenharmony_ci rebase_path("$root_gen_dir"), 25931c75014Sopenharmony_ci "--build_target_name", 26031c75014Sopenharmony_ci target_name, 26131c75014Sopenharmony_ci "--buildgen_testfile", 26231c75014Sopenharmony_ci rebase_path(_output_file), 26331c75014Sopenharmony_ci "--project_path", 26431c75014Sopenharmony_ci rebase_path("."), 26531c75014Sopenharmony_ci "--test_xml", 26631c75014Sopenharmony_ci rebase_path(TESTCONFIG_FILENAME), 26731c75014Sopenharmony_ci "--project_type", 26831c75014Sopenharmony_ci _project_type, 26931c75014Sopenharmony_ci "--suite_out_dir", 27031c75014Sopenharmony_ci rebase_path("${_suite_out_dir}"), 27131c75014Sopenharmony_ci "--archive_testfile", 27231c75014Sopenharmony_ci rebase_path("${_archive_testfile}"), 27331c75014Sopenharmony_ci ] 27431c75014Sopenharmony_ci 27531c75014Sopenharmony_ci if (_subsystem_name != "") { 27631c75014Sopenharmony_ci _arguments += [ 27731c75014Sopenharmony_ci "--subsystem_name", 27831c75014Sopenharmony_ci _subsystem_name, 27931c75014Sopenharmony_ci ] 28031c75014Sopenharmony_ci } 28131c75014Sopenharmony_ci if (_part_name != "") { 28231c75014Sopenharmony_ci _arguments += [ 28331c75014Sopenharmony_ci "--part_name", 28431c75014Sopenharmony_ci _part_name, 28531c75014Sopenharmony_ci ] 28631c75014Sopenharmony_ci } 28731c75014Sopenharmony_ci if (_apilibrary_deps != "") { 28831c75014Sopenharmony_ci _arguments += [ 28931c75014Sopenharmony_ci "--apilibrary_deps", 29031c75014Sopenharmony_ci _apilibrary_deps, 29131c75014Sopenharmony_ci ] 29231c75014Sopenharmony_ci } 29331c75014Sopenharmony_ci 29431c75014Sopenharmony_ci if (_test_files != "") { 29531c75014Sopenharmony_ci _arguments += [ 29631c75014Sopenharmony_ci "--test_files", 29731c75014Sopenharmony_ci _test_files, 29831c75014Sopenharmony_ci ] 29931c75014Sopenharmony_ci } 30031c75014Sopenharmony_ci if (_build_part_boolean == true && _project_type != "testhapassist" && 30131c75014Sopenharmony_ci _project_type != "testappassist") { 30231c75014Sopenharmony_ci action(target_name) { 30331c75014Sopenharmony_ci deps = _deps 30431c75014Sopenharmony_ci script = rebase_path("//test/xts/tools/build/suite.py") 30531c75014Sopenharmony_ci args = _arguments 30631c75014Sopenharmony_ci outputs = [ _archive_testfile ] 30731c75014Sopenharmony_ci testonly = true 30831c75014Sopenharmony_ci } 30931c75014Sopenharmony_ci } else if (_build_part_boolean == false) { 31031c75014Sopenharmony_ci action(target_name) { 31131c75014Sopenharmony_ci script = rebase_path("//test/xts/tools/build/judgePart.py") 31231c75014Sopenharmony_ci args = _arguments 31331c75014Sopenharmony_ci outputs = [ _archive_testfile ] 31431c75014Sopenharmony_ci testonly = true 31531c75014Sopenharmony_ci } 31631c75014Sopenharmony_ci if (defined(_deps)) { 31731c75014Sopenharmony_ci print(_deps) 31831c75014Sopenharmony_ci } 31931c75014Sopenharmony_ci } 32031c75014Sopenharmony_ci } else { 32131c75014Sopenharmony_ci group(target_name) { 32231c75014Sopenharmony_ci print(target_name + " is not build") 32331c75014Sopenharmony_ci not_needed(invoker, "*") 32431c75014Sopenharmony_ci } 32531c75014Sopenharmony_ci } 32631c75014Sopenharmony_ci} 32731c75014Sopenharmony_ci 32831c75014Sopenharmony_citemplate("ohos_moduletest_suite") { 32931c75014Sopenharmony_ci target("ohos_testsuite_base", "${target_name}") { 33031c75014Sopenharmony_ci forward_variables_from(invoker, "*") 33131c75014Sopenharmony_ci if (!defined(module_out_path)) { 33231c75014Sopenharmony_ci module_out_path = "xts/modules" 33331c75014Sopenharmony_ci } 33431c75014Sopenharmony_ci project_type = "gtest" 33531c75014Sopenharmony_ci } 33631c75014Sopenharmony_ci} 33731c75014Sopenharmony_ci 33831c75014Sopenharmony_citemplate("ohos_hap_suite") { 33931c75014Sopenharmony_ci target("ohos_testsuite_base", "${target_name}") { 34031c75014Sopenharmony_ci forward_variables_from(invoker, "*") 34131c75014Sopenharmony_ci 34231c75014Sopenharmony_ci # auto add HJUnitRunner entry ability and test-framework 34331c75014Sopenharmony_ci if (defined(hap_profile)) { 34431c75014Sopenharmony_ci # NOTE:: the GN tool disallow source files located in the ${out_dir} 34531c75014Sopenharmony_ci # so we put the generated files in the xts dir. remember to REMOVE these. 34631c75014Sopenharmony_ci _profile_relative_path = rebase_path(hap_profile, rebase_path(XTS_ROOT)) 34731c75014Sopenharmony_ci _fixed_profile_path = 34831c75014Sopenharmony_ci "${XTS_ROOT}/autogen_apiobjs/${_profile_relative_path}" 34931c75014Sopenharmony_ci _fixer_script = rebase_path( 35031c75014Sopenharmony_ci "//test/xts/tools/build/adapter/haptest_manifest_fixer.py") 35131c75014Sopenharmony_ci exec_script(_fixer_script, 35231c75014Sopenharmony_ci [ 35331c75014Sopenharmony_ci "add_entryability", 35431c75014Sopenharmony_ci "--raw_file=" + rebase_path(hap_profile), 35531c75014Sopenharmony_ci "--dest_file=" + rebase_path(_fixed_profile_path), 35631c75014Sopenharmony_ci ]) 35731c75014Sopenharmony_ci hap_profile = _fixed_profile_path 35831c75014Sopenharmony_ci } 35931c75014Sopenharmony_ci 36031c75014Sopenharmony_ci if (defined(deps)) { 36131c75014Sopenharmony_ci deps += [ "//test/xts/tools/hjunit:testkit_harmonyjunitrunner_java" ] 36231c75014Sopenharmony_ci } else { 36331c75014Sopenharmony_ci deps = [ "//test/xts/tools/hjunit:testkit_harmonyjunitrunner_java" ] 36431c75014Sopenharmony_ci } 36531c75014Sopenharmony_ci 36631c75014Sopenharmony_ci project_type = "testhap" 36731c75014Sopenharmony_ci } 36831c75014Sopenharmony_ci} 36931c75014Sopenharmony_ci 37031c75014Sopenharmony_citemplate("ohos_js_hap_suite") { 37131c75014Sopenharmony_ci target("ohos_testsuite_base", "${target_name}") { 37231c75014Sopenharmony_ci forward_variables_from(invoker, "*") 37331c75014Sopenharmony_ci project_type = "testhap" 37431c75014Sopenharmony_ci 37531c75014Sopenharmony_ci #js_build_mode = "debug" 37631c75014Sopenharmony_ci } 37731c75014Sopenharmony_ci} 37831c75014Sopenharmony_ci 37931c75014Sopenharmony_citemplate("ohos_js_app_suite") { 38031c75014Sopenharmony_ci target("ohos_testsuite_base", "${target_name}") { 38131c75014Sopenharmony_ci forward_variables_from(invoker, "*") 38231c75014Sopenharmony_ci project_type = "testapp" 38331c75014Sopenharmony_ci } 38431c75014Sopenharmony_ci} 38531c75014Sopenharmony_ci 38631c75014Sopenharmony_citemplate("ohos_shell_app_suite") { 38731c75014Sopenharmony_ci target("ohos_adapter_shell_app_suite", "${target_name}") { 38831c75014Sopenharmony_ci forward_variables_from(invoker, "*") 38931c75014Sopenharmony_ci } 39031c75014Sopenharmony_ci} 39131c75014Sopenharmony_ci 39231c75014Sopenharmony_citemplate("ohos_prebuilt_suite") { 39331c75014Sopenharmony_ci assert(!defined(invoker.source_files) || !defined(invoker.jar_path) || 39431c75014Sopenharmony_ci !defined(invoker.source_dir), 39531c75014Sopenharmony_ci "source_files, jar_path or source_dir must be specified one.") 39631c75014Sopenharmony_ci assert(!defined(invoker.final_jar_path), 39731c75014Sopenharmony_ci "final_jar_path is not allowed in target ${target_name}") 39831c75014Sopenharmony_ci 39931c75014Sopenharmony_ci if (defined(invoker.jar_path)) { 40031c75014Sopenharmony_ci _output_name = "${target_name}.jar" 40131c75014Sopenharmony_ci if (defined(invoker.output_name)) { 40231c75014Sopenharmony_ci _output_name = "${invoker.output_name}.jar" 40331c75014Sopenharmony_ci } 40431c75014Sopenharmony_ci 40531c75014Sopenharmony_ci _output_type = "tools" 40631c75014Sopenharmony_ci if (defined(invoker.output_type)) { 40731c75014Sopenharmony_ci _output_type = invoker.output_type 40831c75014Sopenharmony_ci } 40931c75014Sopenharmony_ci 41031c75014Sopenharmony_ci _final_jar_path = 41131c75014Sopenharmony_ci "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/${_output_type}/${_output_name}" 41231c75014Sopenharmony_ci 41331c75014Sopenharmony_ci target("java_prebuilt", "${target_name}") { 41431c75014Sopenharmony_ci forward_variables_from(invoker, "*") 41531c75014Sopenharmony_ci final_jar_path = _final_jar_path 41631c75014Sopenharmony_ci is_host_library = true 41731c75014Sopenharmony_ci } 41831c75014Sopenharmony_ci } else { 41931c75014Sopenharmony_ci assert(defined(invoker.output_dir), 42031c75014Sopenharmony_ci "output_dir is require in target ${target_name}") 42131c75014Sopenharmony_ci _outputs = [] 42231c75014Sopenharmony_ci _copy_args = [ 42331c75014Sopenharmony_ci "--method_name", 42431c75014Sopenharmony_ci "copy_file", 42531c75014Sopenharmony_ci ] 42631c75014Sopenharmony_ci _deps = [] 42731c75014Sopenharmony_ci _output_dir = "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/${invoker.output_dir}" 42831c75014Sopenharmony_ci if (defined(invoker.source_dir)) { 42931c75014Sopenharmony_ci _copy_args += [ 43031c75014Sopenharmony_ci "--arguments", 43131c75014Sopenharmony_ci "output=" + rebase_path(_output_dir) + "#source_dirs=" + 43231c75014Sopenharmony_ci rebase_path(invoker.source_dir) + "#to_dir=True", 43331c75014Sopenharmony_ci ] 43431c75014Sopenharmony_ci _outputs = [ _output_dir ] 43531c75014Sopenharmony_ci } else if (defined(invoker.source_files)) { 43631c75014Sopenharmony_ci _sources = "" 43731c75014Sopenharmony_ci foreach(src, invoker.source_files) { 43831c75014Sopenharmony_ci _sources = _sources + rebase_path(src) + "," 43931c75014Sopenharmony_ci } 44031c75014Sopenharmony_ci _copy_args += [ 44131c75014Sopenharmony_ci "--arguments", 44231c75014Sopenharmony_ci "output=" + rebase_path(_output_dir) + "#sources=" + _sources + 44331c75014Sopenharmony_ci "#to_dir=True", 44431c75014Sopenharmony_ci ] 44531c75014Sopenharmony_ci _outputs = [ _output_dir ] 44631c75014Sopenharmony_ci } 44731c75014Sopenharmony_ci if (defined(invoker.deps)) { 44831c75014Sopenharmony_ci _deps = invoker.deps 44931c75014Sopenharmony_ci } 45031c75014Sopenharmony_ci action(target_name) { 45131c75014Sopenharmony_ci script = rebase_path("//test/xts/tools/build/utils.py") 45231c75014Sopenharmony_ci deps = _deps 45331c75014Sopenharmony_ci args = _copy_args 45431c75014Sopenharmony_ci outputs = _outputs 45531c75014Sopenharmony_ci } 45631c75014Sopenharmony_ci } 45731c75014Sopenharmony_ci} 45831c75014Sopenharmony_ci 45931c75014Sopenharmony_citemplate("ohos_deploy_xdevice") { 46031c75014Sopenharmony_ci _suite_out_dir = "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}" 46131c75014Sopenharmony_ci subsystem_name = XTS_SUITENAME 46231c75014Sopenharmony_ci if (subsystem_name == "acts") { 46331c75014Sopenharmony_ci _hap_name = target_name 46431c75014Sopenharmony_ci if (_hap_name == "validator") { 46531c75014Sopenharmony_ci _suite_out_dir = "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/acts-validator" 46631c75014Sopenharmony_ci } else { 46731c75014Sopenharmony_ci _suite_out_dir = "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/acts" 46831c75014Sopenharmony_ci } 46931c75014Sopenharmony_ci } 47031c75014Sopenharmony_ci 47131c75014Sopenharmony_ci _args = [ 47231c75014Sopenharmony_ci "build_xdevice", 47331c75014Sopenharmony_ci "--source_dir", 47431c75014Sopenharmony_ci rebase_path("//test/testfwk/xdevice"), 47531c75014Sopenharmony_ci "--suite_out_dir", 47631c75014Sopenharmony_ci rebase_path(_suite_out_dir), 47731c75014Sopenharmony_ci ] 47831c75014Sopenharmony_ci 47931c75014Sopenharmony_ci if (defined(invoker.configs_dir)) { 48031c75014Sopenharmony_ci _args += [ 48131c75014Sopenharmony_ci "--configs_dir", 48231c75014Sopenharmony_ci rebase_path(rebase_path(invoker.configs_dir)), 48331c75014Sopenharmony_ci ] 48431c75014Sopenharmony_ci } 48531c75014Sopenharmony_ci 48631c75014Sopenharmony_ci if (defined(invoker.resources_dir)) { 48731c75014Sopenharmony_ci _args += [ 48831c75014Sopenharmony_ci "--resources_dir", 48931c75014Sopenharmony_ci rebase_path(rebase_path(invoker.resources_dir)), 49031c75014Sopenharmony_ci ] 49131c75014Sopenharmony_ci } 49231c75014Sopenharmony_ci 49331c75014Sopenharmony_ci action(target_name) { 49431c75014Sopenharmony_ci testonly = true 49531c75014Sopenharmony_ci script = rebase_path("//test/xts/tools/build/suite.py") 49631c75014Sopenharmony_ci args = _args 49731c75014Sopenharmony_ci outputs = [ 49831c75014Sopenharmony_ci "${_suite_out_dir}/tools/xdevice-ohos-0.0.0.tar.gz", 49931c75014Sopenharmony_ci "${_suite_out_dir}/tools/xdevice-0.0.0.tar.gz", 50031c75014Sopenharmony_ci "${_suite_out_dir}/tools/xdevice-devicetest-0.0.0.tar.gz", 50131c75014Sopenharmony_ci "${_suite_out_dir}/tools/run.sh", 50231c75014Sopenharmony_ci "${_suite_out_dir}/tools/run.bat", 50331c75014Sopenharmony_ci ] 50431c75014Sopenharmony_ci } 50531c75014Sopenharmony_ci} 50631c75014Sopenharmony_ci 50731c75014Sopenharmony_citemplate("ohos_test_suite") { 50831c75014Sopenharmony_ci _output = "${SUITES_OUTPUT_ROOT}/${target_name}.zip" 50931c75014Sopenharmony_ci _suite_path = rebase_path("${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}") 51031c75014Sopenharmony_ci _suite_archive_dir = rebase_path("${SUITE_ARCHIVE_DIR}") 51131c75014Sopenharmony_ci _prebuilts_files = rebase_path("//xts/resource") 51231c75014Sopenharmony_ci _gen_args = [ 51331c75014Sopenharmony_ci "archive_suite", 51431c75014Sopenharmony_ci "--suite_path", 51531c75014Sopenharmony_ci _suite_path, 51631c75014Sopenharmony_ci "--prebuilts_resource", 51731c75014Sopenharmony_ci _prebuilts_files, 51831c75014Sopenharmony_ci "--suite_archive_dir", 51931c75014Sopenharmony_ci _suite_archive_dir, 52031c75014Sopenharmony_ci "--make_archive", 52131c75014Sopenharmony_ci "${make_archive}", 52231c75014Sopenharmony_ci ] 52331c75014Sopenharmony_ci 52431c75014Sopenharmony_ci _deps = [] 52531c75014Sopenharmony_ci if (defined(invoker.deps)) { 52631c75014Sopenharmony_ci _deps += invoker.deps 52731c75014Sopenharmony_ci } 52831c75014Sopenharmony_ci 52931c75014Sopenharmony_ci action(target_name) { 53031c75014Sopenharmony_ci testonly = true 53131c75014Sopenharmony_ci script = rebase_path("//test/xts/tools/build/suite.py") 53231c75014Sopenharmony_ci deps = _deps 53331c75014Sopenharmony_ci args = _gen_args 53431c75014Sopenharmony_ci outputs = [ _output ] 53531c75014Sopenharmony_ci } 53631c75014Sopenharmony_ci} 53731c75014Sopenharmony_ci 53831c75014Sopenharmony_citemplate("pythontest_suite") { 53931c75014Sopenharmony_ci assert(defined(invoker.script), "script is required in target ${target_name}") 54031c75014Sopenharmony_ci 54131c75014Sopenharmony_ci _subsystem_name = "" 54231c75014Sopenharmony_ci if (defined(invoker.subsystem_name)) { 54331c75014Sopenharmony_ci _subsystem_name = invoker.subsystem_name 54431c75014Sopenharmony_ci } else { 54531c75014Sopenharmony_ci _local_path = rebase_path(".") 54631c75014Sopenharmony_ci _args1 = [ 54731c75014Sopenharmony_ci "--method_name", 54831c75014Sopenharmony_ci "get_subsystem_name", 54931c75014Sopenharmony_ci "--arguments", 55031c75014Sopenharmony_ci "path=${_local_path}", 55131c75014Sopenharmony_ci ] 55231c75014Sopenharmony_ci _subsystem_name = 55331c75014Sopenharmony_ci exec_script(rebase_path("//test/xts/tools/build/utils.py"), 55431c75014Sopenharmony_ci _args1, 55531c75014Sopenharmony_ci "trim string") 55631c75014Sopenharmony_ci } 55731c75014Sopenharmony_ci _deps = [] 55831c75014Sopenharmony_ci if (defined(invoker.deps)) { 55931c75014Sopenharmony_ci _deps = invoker.deps + _deps 56031c75014Sopenharmony_ci } 56131c75014Sopenharmony_ci _outputs_dir = "" 56231c75014Sopenharmony_ci if (defined(invoker.outputs_dir)) { 56331c75014Sopenharmony_ci _outputs_dir = invoker.outputs_dir 56431c75014Sopenharmony_ci } 56531c75014Sopenharmony_ci _output_file = rebase_path("${invoker.script}") 56631c75014Sopenharmony_ci 56731c75014Sopenharmony_ci target("ohos_testsuite_base", "${target_name}") { 56831c75014Sopenharmony_ci project_type = "pythontest" 56931c75014Sopenharmony_ci subsystem_name = _subsystem_name 57031c75014Sopenharmony_ci output_file = _output_file 57131c75014Sopenharmony_ci deps = _deps 57231c75014Sopenharmony_ci outputs_dir = _outputs_dir 57331c75014Sopenharmony_ci } 57431c75014Sopenharmony_ci} 57531c75014Sopenharmony_ci 57631c75014Sopenharmony_citemplate("executable_suite") { 57731c75014Sopenharmony_ci assert(defined(invoker.suite_name), 57831c75014Sopenharmony_ci "suite_name is required in target ${target_name}") 57931c75014Sopenharmony_ci _suite_name = invoker.suite_name 58031c75014Sopenharmony_ci _local_path = rebase_path(".") 58131c75014Sopenharmony_ci _args1 = [ 58231c75014Sopenharmony_ci "--method_name", 58331c75014Sopenharmony_ci "get_subsystem_name", 58431c75014Sopenharmony_ci "--arguments", 58531c75014Sopenharmony_ci "path=${_local_path}", 58631c75014Sopenharmony_ci ] 58731c75014Sopenharmony_ci _subsystem_name = exec_script(rebase_path("//test/xts/tools/build/utils.py"), 58831c75014Sopenharmony_ci _args1, 58931c75014Sopenharmony_ci "trim string") 59031c75014Sopenharmony_ci 59131c75014Sopenharmony_ci _outputs_dir = "" 59231c75014Sopenharmony_ci if (defined(invoker.outputs_dir)) { 59331c75014Sopenharmony_ci _outputs_dir = "${invoker.outputs_dir}" 59431c75014Sopenharmony_ci } 59531c75014Sopenharmony_ci ohos_executable(target_name) { 59631c75014Sopenharmony_ci forward_variables_from(invoker, 59731c75014Sopenharmony_ci "*", 59831c75014Sopenharmony_ci [ 59931c75014Sopenharmony_ci "test_type", 60031c75014Sopenharmony_ci "module_out_path", 60131c75014Sopenharmony_ci "visibility", 60231c75014Sopenharmony_ci ]) 60331c75014Sopenharmony_ci forward_variables_from(invoker, [ "visibility" ]) 60431c75014Sopenharmony_ci if (!defined(deps)) { 60531c75014Sopenharmony_ci deps = [] 60631c75014Sopenharmony_ci } 60731c75014Sopenharmony_ci 60831c75014Sopenharmony_ci subsystem_name = "tests" 60931c75014Sopenharmony_ci part_name = "ssts" 61031c75014Sopenharmony_ci ohos_test = true 61131c75014Sopenharmony_ci testonly = true 61231c75014Sopenharmony_ci output_name = "$target_name" 61331c75014Sopenharmony_ci test_output_dir = "$SUITES_OUTPUT_ROOT/${_suite_name}/testcases/${_subsystem_name}/${_outputs_dir}" 61431c75014Sopenharmony_ci if (defined(invoker.output_extension)) { 61531c75014Sopenharmony_ci output_extension = invoker.output_extension 61631c75014Sopenharmony_ci } 61731c75014Sopenharmony_ci } 61831c75014Sopenharmony_ci} 61931c75014Sopenharmony_ci 62031c75014Sopenharmony_citemplate("js_hap_suite") { 62131c75014Sopenharmony_ci assert(defined(invoker.hap_source_path), 62231c75014Sopenharmony_ci "hap_source_path is required in target ${target_name}") 62331c75014Sopenharmony_ci assert(defined(invoker.test_hap_name), 62431c75014Sopenharmony_ci "test_hap_name is required in target ${target_name}") 62531c75014Sopenharmony_ci if (defined(invoker.deps)) { 62631c75014Sopenharmony_ci _deps = invoker.deps 62731c75014Sopenharmony_ci } 62831c75014Sopenharmony_ci target("ohos_testsuite_base", "${target_name}") { 62931c75014Sopenharmony_ci forward_variables_from(invoker, "*") 63031c75014Sopenharmony_ci project_type = "js_test_hap" 63131c75014Sopenharmony_ci } 63231c75014Sopenharmony_ci} 63331c75014Sopenharmony_ci 63431c75014Sopenharmony_citemplate("ohos_hap_assist_suite") { 63531c75014Sopenharmony_ci target("ohos_testsuite_base", target_name) { 63631c75014Sopenharmony_ci forward_variables_from(invoker, "*") 63731c75014Sopenharmony_ci project_type = "testhapassist" 63831c75014Sopenharmony_ci } 63931c75014Sopenharmony_ci} 64031c75014Sopenharmony_ci 64131c75014Sopenharmony_citemplate("ohos_app_assist_suite") { 64231c75014Sopenharmony_ci target("ohos_testsuite_base", target_name) { 64331c75014Sopenharmony_ci forward_variables_from(invoker, "*") 64431c75014Sopenharmony_ci project_type = "testappassist" 64531c75014Sopenharmony_ci } 64631c75014Sopenharmony_ci} 64731c75014Sopenharmony_ci 64831c75014Sopenharmony_citemplate("ohos_sh_assist_suite") { 64931c75014Sopenharmony_ci _part_name = "common" 65031c75014Sopenharmony_ci 65131c75014Sopenharmony_ci if (defined(invoker.part_name)) { 65231c75014Sopenharmony_ci _part_name = invoker.part_name 65331c75014Sopenharmony_ci } 65431c75014Sopenharmony_ci 65531c75014Sopenharmony_ci precise_build_boolean = true 65631c75014Sopenharmony_ci if (precise_xts && filter_include(precise_run, 65731c75014Sopenharmony_ci [ 65831c75014Sopenharmony_ci "all", 65931c75014Sopenharmony_ci _part_name, 66031c75014Sopenharmony_ci ]) == []) { 66131c75014Sopenharmony_ci print("precise_xts is on ,${_part_name} is not on build") 66231c75014Sopenharmony_ci precise_build_boolean = false 66331c75014Sopenharmony_ci } 66431c75014Sopenharmony_ci 66531c75014Sopenharmony_ci if (precise_build_boolean) { 66631c75014Sopenharmony_ci action(target_name) { 66731c75014Sopenharmony_ci forward_variables_from(invoker, "*") 66831c75014Sopenharmony_ci } 66931c75014Sopenharmony_ci } else { 67031c75014Sopenharmony_ci group(target_name) { 67131c75014Sopenharmony_ci print(target_name + " is not build") 67231c75014Sopenharmony_ci not_needed(invoker, "*") 67331c75014Sopenharmony_ci } 67431c75014Sopenharmony_ci } 67531c75014Sopenharmony_ci} 676