diff options
author | iaz1607 <iaz1607@yandex-team.ru> | 2022-05-19 16:22:42 +0300 |
---|---|---|
committer | iaz1607 <iaz1607@yandex-team.ru> | 2022-05-19 16:22:42 +0300 |
commit | 9b18c778aaca9023c365db7f100490faa5aa8ceb (patch) | |
tree | 1ddd95c55abebfa71bdbbe6a01d4a26d9f97288b | |
parent | 617c2536904a4114758f4dd3fa5c8e356d4543fe (diff) | |
download | ydb-9b18c778aaca9023c365db7f100490faa5aa8ceb.tar.gz |
Fix Kotlin coverage
ref:486ae0399a478a28300588f7f4d5b8b99619235a
-rw-r--r-- | build/scripts/java_pack_to_file.py | 15 | ||||
-rw-r--r-- | build/scripts/make_java_srclists.py | 14 | ||||
-rw-r--r-- | build/ymake.core.conf | 2 |
3 files changed, 22 insertions, 9 deletions
diff --git a/build/scripts/java_pack_to_file.py b/build/scripts/java_pack_to_file.py index 8d2aeb93fda..c8ab7c311b4 100644 --- a/build/scripts/java_pack_to_file.py +++ b/build/scripts/java_pack_to_file.py @@ -2,7 +2,8 @@ import os import re import optparse -PACKAGE_REGEX = re.compile(r'^\s*package\s+(.*?);', flags=re.MULTILINE | re.DOTALL) +JAVA_PACKAGE_REGEX = re.compile(r'^\s*package\s+(.*?);', flags=re.MULTILINE | re.DOTALL) +KOTLIN_PACKAGE_REGEX = re.compile(r'^\s*package\s+(.*?)^', flags=re.MULTILINE | re.DOTALL) def parse_args(): @@ -14,9 +15,15 @@ def parse_args(): def get_package_name(filename): with open(filename) as afile: - match = PACKAGE_REGEX.search(afile.read()) - if match: - return match.group(1).replace('\n\t ', '').replace('.', '/') + content = afile.read() + if filename.endswith(".kt"): + match = KOTLIN_PACKAGE_REGEX.search(content) + if match: + return match.group(1).strip().replace('.', '/') + else: + match = JAVA_PACKAGE_REGEX.search(content) + if match: + return match.group(1).replace('\n\t ', '').replace('.', '/') return '' diff --git a/build/scripts/make_java_srclists.py b/build/scripts/make_java_srclists.py index f1dc807f7df..65174bafd7a 100644 --- a/build/scripts/make_java_srclists.py +++ b/build/scripts/make_java_srclists.py @@ -10,6 +10,12 @@ def writelines(f, rng): f.writelines(item + '\n' for item in rng) +def add_rel_src_to_coverage(coverage, src, source_root): + rel = os.path.relpath(src, source_root) + if not rel.startswith('..' + os.path.sep): + coverage.append(rel) + + def main(): args = pcf.get_args(sys.argv[1:]) parser = argparse.ArgumentParser() @@ -60,11 +66,11 @@ def main(): java.append(src) kotlin.append(src) if args.coverage and args.source_root: - rel = os.path.relpath(src, args.source_root) - if not rel.startswith('..' + os.path.sep): - coverage.append(rel) + add_rel_src_to_coverage(coverage, src, args.source_root) elif args.kotlin and src.endswith(".kt"): kotlin.append(src) + if args.coverage and args.source_root: + add_rel_src_to_coverage(coverage, src, args.source_root) elif args.groovy and src.endswith(".groovy"): groovy.append(src) else: @@ -119,4 +125,4 @@ def main(): if __name__ == '__main__': - sys.exit(main())
\ No newline at end of file + sys.exit(main()) diff --git a/build/ymake.core.conf b/build/ymake.core.conf index 58b84e3f1c3..9371a65a82e 100644 --- a/build/ymake.core.conf +++ b/build/ymake.core.conf @@ -3601,7 +3601,7 @@ JAVA_COVERAGE_SRCLIST_FLAG=--coverage ${output;pre=${MODULE_PREFIX};suf=.cpsf:RE JAVA_COVERAGE_SRCLIST= PREPARE_JAVA_BUILD_DIRS=$FS_TOOLS md ${BINDIR}/cls && $FS_TOOLS md ${BINDIR}/misc EXTRACT_GENDIRS=${cwd:BINDIR} $YMAKE_PYTHON ${input:"build/scripts/autotar_gendirs.py"} --unpack --ext .gentar ${ext=.gentar:AUTO_INPUT} -COLLECT_JAVA_SRCLIST=${YMAKE_PYTHON} ${input:"build/scripts/make_java_srclists.py"} --moddir ${CURDIR} --java ${BINDIR}/all-java.srclst ${KT_SRSCLIST} ${JAVA_COVERAGE_SRCLIST} --ya-start-command-file ${ALL_JAR_SOURCES} ${ext=.java:AUTO_INPUT} ${ext=.kt:AUTO_INPUT} --ya-end-command-file +COLLECT_JAVA_SRCLIST=${YMAKE_PYTHON} ${input:"build/scripts/make_java_srclists.py"} ${input;hide:"build/scripts/java_pack_to_file.py"} --moddir ${CURDIR} --java ${BINDIR}/all-java.srclst ${KT_SRSCLIST} ${JAVA_COVERAGE_SRCLIST} --ya-start-command-file ${ALL_JAR_SOURCES} ${ext=.java:AUTO_INPUT} ${ext=.kt:AUTO_INPUT} --ya-end-command-file COLLECT_CLASSPATH=${YMAKE_PYTHON} ${input:"build/scripts/writer.py"} --file ${BINDIR}/bfg.txt -m --ya-start-command-file ${rootrel:MANAGED_PEERS_CLOSURE} $KT_CLASSPATH_ITEM --ya-end-command-file LINK_CLASSPATH=${YMAKE_PYTHON} ${input:"build/scripts/make_manifest_from_bf.py"} ${BINDIR}/bfg.txt ${ARCADIA_BUILD_ROOT}/bfg.jar COMPILE_JAVA_SRCLIST=$_JAVAC_RUN_HELPER($JAVAC_CMD) |