@@ -1143,176 +1143,4 @@ end_of_record"
11431143 assert_coverage_result " $coverage_result_num_lib_header " " $coverage_file_path "
11441144}
11451145
1146- function setup_external_java_target() {
1147- cat >> WORKSPACE << 'EOF '
1148- local_repository(
1149- name = "other_repo",
1150- path = "other_repo",
1151- )
1152- EOF
1153-
1154- cat > BUILD << 'EOF '
1155- java_library(
1156- name = "math",
1157- srcs = ["src/main/com/example/Math.java"],
1158- visibility = ["//visibility:public"],
1159- )
1160- EOF
1161-
1162- mkdir -p src/main/com/example
1163- cat > src/main/com/example/Math.java << 'EOF '
1164- package com.example;
1165-
1166- public class Math {
1167-
1168- public static boolean isEven(int n) {
1169- return n % 2 == 0;
1170- }
1171- }
1172- EOF
1173-
1174- mkdir -p other_repo
1175- touch other_repo/WORKSPACE
1176-
1177- cat > other_repo/BUILD << 'EOF '
1178- java_library(
1179- name = "collatz",
1180- srcs = ["src/main/com/example/Collatz.java"],
1181- deps = ["@//:math"],
1182- )
1183-
1184- java_test(
1185- name = "test",
1186- srcs = ["src/test/com/example/TestCollatz.java"],
1187- test_class = "com.example.TestCollatz",
1188- deps = [":collatz"],
1189- )
1190- EOF
1191-
1192- mkdir -p other_repo/src/main/com/example
1193- cat > other_repo/src/main/com/example/Collatz.java << 'EOF '
1194- package com.example;
1195-
1196- public class Collatz {
1197-
1198- public static int getCollatzFinal(int n) {
1199- if (n == 1) {
1200- return 1;
1201- }
1202- if (Math.isEven(n)) {
1203- return getCollatzFinal(n / 2);
1204- } else {
1205- return getCollatzFinal(n * 3 + 1);
1206- }
1207- }
1208-
1209- }
1210- EOF
1211-
1212- mkdir -p other_repo/src/test/com/example
1213- cat > other_repo/src/test/com/example/TestCollatz.java << 'EOF '
1214- package com.example;
1215-
1216- import static org.junit.Assert.assertEquals;
1217- import org.junit.Test;
1218-
1219- public class TestCollatz {
1220-
1221- @Test
1222- public void testGetCollatzFinal() {
1223- assertEquals(Collatz.getCollatzFinal(1), 1);
1224- assertEquals(Collatz.getCollatzFinal(5), 1);
1225- assertEquals(Collatz.getCollatzFinal(10), 1);
1226- assertEquals(Collatz.getCollatzFinal(21), 1);
1227- }
1228-
1229- }
1230- EOF
1231- }
1232-
1233- function test_external_java_target_can_collect_coverage() {
1234- setup_external_java_target
1235-
1236- bazel coverage --test_output=all @other_repo//:test --combined_report=lcov \
1237- --instrumentation_filter=// & > $TEST_log \
1238- || echo " Coverage for //:test failed"
1239-
1240- local coverage_file_path=" $( get_coverage_file_path_from_test_log) "
1241- local expected_result_math=' SF:src/main/com/example/Math.java
1242- FN:3,com/example/Math::<init> ()V
1243- FN:6,com/example/Math::isEven (I)Z
1244- FNDA:0,com/example/Math::<init> ()V
1245- FNDA:1,com/example/Math::isEven (I)Z
1246- FNF:2
1247- FNH:1
1248- BRDA:6,0,0,1
1249- BRDA:6,0,1,1
1250- BRF:2
1251- BRH:2
1252- DA:3,0
1253- DA:6,1
1254- LH:1
1255- LF:2
1256- end_of_record'
1257- local expected_result_collatz=" SF:external/other_repo/src/main/com/example/Collatz.java
1258- FN:3,com/example/Collatz::<init> ()V
1259- FN:6,com/example/Collatz::getCollatzFinal (I)I
1260- FNDA:0,com/example/Collatz::<init> ()V
1261- FNDA:1,com/example/Collatz::getCollatzFinal (I)I
1262- FNF:2
1263- FNH:1
1264- BRDA:6,0,0,1
1265- BRDA:6,0,1,1
1266- BRDA:9,0,0,1
1267- BRDA:9,0,1,1
1268- BRF:4
1269- BRH:4
1270- DA:3,0
1271- DA:6,1
1272- DA:7,1
1273- DA:9,1
1274- DA:10,1
1275- DA:12,1
1276- LH:5
1277- LF:6
1278- end_of_record"
1279-
1280- assert_coverage_result " $expected_result_math " " $coverage_file_path "
1281- assert_coverage_result " $expected_result_collatz " " $coverage_file_path "
1282-
1283- assert_coverage_result " $expected_result_math " bazel-out/_coverage/_coverage_report.dat
1284- assert_coverage_result " $expected_result_collatz " bazel-out/_coverage/_coverage_report.dat
1285- }
1286-
1287- function test_external_java_target_coverage_not_collected_by_default() {
1288- setup_external_java_target
1289-
1290- bazel coverage --test_output=all @other_repo//:test --combined_report=lcov & > $TEST_log \
1291- || echo " Coverage for //:test failed"
1292-
1293- local coverage_file_path=" $( get_coverage_file_path_from_test_log) "
1294- local expected_result_math=' SF:src/main/com/example/Math.java
1295- FN:3,com/example/Math::<init> ()V
1296- FN:6,com/example/Math::isEven (I)Z
1297- FNDA:0,com/example/Math::<init> ()V
1298- FNDA:1,com/example/Math::isEven (I)Z
1299- FNF:2
1300- FNH:1
1301- BRDA:6,0,0,1
1302- BRDA:6,0,1,1
1303- BRF:2
1304- BRH:2
1305- DA:3,0
1306- DA:6,1
1307- LH:1
1308- LF:2
1309- end_of_record'
1310-
1311- assert_coverage_result " $expected_result_math " " $coverage_file_path "
1312- assert_not_contains " SF:external/other_repo/" " $coverage_file_path "
1313-
1314- assert_coverage_result " $expected_result_math " bazel-out/_coverage/_coverage_report.dat
1315- assert_not_contains " SF:external/other_repo/" bazel-out/_coverage/_coverage_report.dat
1316- }
1317-
13181146run_suite " test tests"
0 commit comments