@@ -1143,176 +1143,4 @@ end_of_record"
1143
1143
assert_coverage_result " $coverage_result_num_lib_header " " $coverage_file_path "
1144
1144
}
1145
1145
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
-
1318
1146
run_suite " test tests"
0 commit comments