Skip to content

Commit e7a55a7

Browse files
enhance e2e test debugging
1 parent 3b997ed commit e7a55a7

1 file changed

Lines changed: 41 additions & 7 deletions

File tree

cli/src/test/kotlin/com/bazel_diff/e2e/E2ETest.kt

Lines changed: 41 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,40 @@ class E2ETest {
1818

1919
private fun CommandLine.execute(args: List<String>) = execute(*args.toTypedArray())
2020

21+
private fun assertTargetsMatch(actual: Set<String>, expected: Set<String>, testContext: String = "") {
22+
if (actual != expected) {
23+
val missingTargets = expected - actual
24+
val unexpectedTargets = actual - expected
25+
26+
val debugMessage = buildString {
27+
appendLine("\n========================================")
28+
appendLine("Target list mismatch${if (testContext.isNotEmpty()) " in $testContext" else ""}")
29+
appendLine("========================================")
30+
31+
if (missingTargets.isNotEmpty()) {
32+
appendLine("\nMISSING TARGETS (expected but not found):")
33+
missingTargets.sorted().forEach { appendLine(" - $it") }
34+
}
35+
36+
if (unexpectedTargets.isNotEmpty()) {
37+
appendLine("\nUNEXPECTED TARGETS (found but not expected):")
38+
unexpectedTargets.sorted().forEach { appendLine(" + $it") }
39+
}
40+
41+
appendLine("\nEXPECTED (${expected.size} targets):")
42+
expected.sorted().forEach { appendLine(" $it") }
43+
44+
appendLine("\nACTUAL (${actual.size} targets):")
45+
actual.sorted().forEach { appendLine(" $it") }
46+
appendLine("========================================")
47+
}
48+
49+
println(debugMessage)
50+
}
51+
52+
assertThat(actual).isEqualTo(expected)
53+
}
54+
2155
private fun testE2E(
2256
extraGenerateHashesArgs: List<String>,
2357
extraGetImpactedTargetsArgs: List<String>,
@@ -70,7 +104,7 @@ class E2ETest {
70104
it.bufferedReader().readLines().filter { it.isNotBlank() }.toSet()
71105
}
72106

73-
assertThat(actual).isEqualTo(expected)
107+
assertTargetsMatch(actual, expected, "testE2E")
74108
}
75109

76110
@Test
@@ -167,7 +201,7 @@ class E2ETest {
167201
"/fixture/fine-grained-hash-external-repo-test-impacted-targets.txt")
168202
.use { it.bufferedReader().readLines().filter { it.isNotBlank() }.toSet() }
169203

170-
assertThat(actual).isEqualTo(expected)
204+
assertTargetsMatch(actual, expected, "testFineGrainedHashExternalRepo")
171205
}
172206

173207
private fun testFineGrainedHashBzlMod(
@@ -247,7 +281,7 @@ class E2ETest {
247281
it.bufferedReader().readLines().filter { it.isNotBlank() }.toSet()
248282
}
249283

250-
assertThat(actual).isEqualTo(expected)
284+
assertTargetsMatch(actual, expected, "testFineGrainedHashBzlMod")
251285
}
252286

253287
@Test
@@ -376,7 +410,7 @@ class E2ETest {
376410
.getResourceAsStream("/fixture/cquery-test-guava-upgrade-android-impacted-targets.txt")
377411
.use { it.bufferedReader().readLines().filter { it.isNotBlank() }.toSet() }
378412

379-
assertThat(actual).isEqualTo(expected)
413+
assertTargetsMatch(actual, expected, "testUseCqueryWithExternalDependencyChange - Android platform")
380414

381415
// Query JRE platform
382416

@@ -422,7 +456,7 @@ class E2ETest {
422456
.getResourceAsStream("/fixture/cquery-test-guava-upgrade-jre-impacted-targets.txt")
423457
.use { it.bufferedReader().readLines().filter { it.isNotBlank() }.toSet() }
424458

425-
assertThat(actual).isEqualTo(expected)
459+
assertTargetsMatch(actual, expected, "testUseCqueryWithExternalDependencyChange - JRE platform")
426460
}
427461

428462
@Test
@@ -537,7 +571,7 @@ class E2ETest {
537571
"/fixture/cquery-test-android-code-change-android-impacted-targets.txt")
538572
.use { it.bufferedReader().readLines().filter { it.isNotBlank() }.toSet() }
539573

540-
assertThat(actual).isEqualTo(expected)
574+
assertTargetsMatch(actual, expected, "testUseCqueryWithAndroidCodeChange - Android platform")
541575

542576
// Query JRE platform
543577

@@ -584,7 +618,7 @@ class E2ETest {
584618
"/fixture/cquery-test-android-code-change-jre-impacted-targets.txt")
585619
.use { it.bufferedReader().readLines().filter { it.isNotBlank() }.toSet() }
586620

587-
assertThat(actual).isEqualTo(expected)
621+
assertTargetsMatch(actual, expected, "testUseCqueryWithAndroidCodeChange - JRE platform")
588622
}
589623

590624
@Test

0 commit comments

Comments
 (0)