aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoriaz1607 <iaz1607@yandex-team.ru>2022-05-19 16:22:42 +0300
committeriaz1607 <iaz1607@yandex-team.ru>2022-05-19 16:22:42 +0300
commit9b18c778aaca9023c365db7f100490faa5aa8ceb (patch)
tree1ddd95c55abebfa71bdbbe6a01d4a26d9f97288b
parent617c2536904a4114758f4dd3fa5c8e356d4543fe (diff)
downloadydb-9b18c778aaca9023c365db7f100490faa5aa8ceb.tar.gz
Fix Kotlin coverage
ref:486ae0399a478a28300588f7f4d5b8b99619235a
-rw-r--r--build/scripts/java_pack_to_file.py15
-rw-r--r--build/scripts/make_java_srclists.py14
-rw-r--r--build/ymake.core.conf2
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)