Skip to content

Commit 087248f

Browse files
Add tests for checking mixed versions (getsentry#4292)
* Check for mixed SDK versions * Format code * format + api * Init noops if mixed versions detected * Add BuildConfig * config entries for agentless module sdk names * Add MANIFEST.MF for JARs * Throw on startup; use manifests for backend; reuse code for otel * Format code * Format code * changelog * api * changelog * Remove duplicate addPackage calls * remove test assertion for package * Introduce fatal SDK logger * Use Implementation-Version as raw version * Add tests for checking mixed versions * Format code * clear storage after test to not affect other tests --------- Co-authored-by: Sentry Github Bot <[email protected]>
1 parent ce3873d commit 087248f

File tree

1 file changed

+75
-0
lines changed

1 file changed

+75
-0
lines changed
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package io.sentry
2+
3+
import kotlin.test.AfterTest
4+
import kotlin.test.Test
5+
import kotlin.test.assertFalse
6+
import kotlin.test.assertTrue
7+
8+
class SentryIntegrationPackageStorageTest {
9+
10+
@AfterTest
11+
fun teardown() {
12+
SentryIntegrationPackageStorage.getInstance().clearStorage()
13+
}
14+
15+
@Test
16+
fun `same package version is OK`() {
17+
val storage = SentryIntegrationPackageStorage.getInstance()
18+
storage.clearStorage()
19+
20+
storage.addPackage("maven:io.sentry:sentry", BuildConfig.VERSION_NAME)
21+
storage.addPackage("maven:io.sentry:sentry-logback", BuildConfig.VERSION_NAME)
22+
23+
assertFalse(storage.checkForMixedVersions(SystemOutLogger()))
24+
}
25+
26+
@Test
27+
fun `checking twice works`() {
28+
val storage = SentryIntegrationPackageStorage.getInstance()
29+
storage.clearStorage()
30+
31+
storage.addPackage("maven:io.sentry:sentry", BuildConfig.VERSION_NAME)
32+
storage.addPackage("maven:io.sentry:sentry-logback", BuildConfig.VERSION_NAME)
33+
34+
assertFalse(storage.checkForMixedVersions(SystemOutLogger()))
35+
assertFalse(storage.checkForMixedVersions(SystemOutLogger()))
36+
}
37+
38+
@Test
39+
fun `checking twice with changes works`() {
40+
val storage = SentryIntegrationPackageStorage.getInstance()
41+
storage.clearStorage()
42+
43+
storage.addPackage("maven:io.sentry:sentry", BuildConfig.VERSION_NAME)
44+
storage.addPackage("maven:io.sentry:sentry-logback", BuildConfig.VERSION_NAME)
45+
46+
assertFalse(storage.checkForMixedVersions(SystemOutLogger()))
47+
48+
storage.addPackage("maven:io.sentry:sentry-spring", "8.0.0")
49+
assertTrue(storage.checkForMixedVersions(SystemOutLogger()))
50+
}
51+
52+
@Test
53+
fun `mixed package version is not OK`() {
54+
val storage = SentryIntegrationPackageStorage.getInstance()
55+
storage.clearStorage()
56+
57+
storage.addPackage("maven:io.sentry:sentry", BuildConfig.VERSION_NAME)
58+
storage.addPackage("maven:io.sentry:sentry-logback", "8.0.0")
59+
60+
assertTrue(storage.checkForMixedVersions(SystemOutLogger()))
61+
}
62+
63+
@Test
64+
fun `only java sdk modules are checked`() {
65+
val storage = SentryIntegrationPackageStorage.getInstance()
66+
storage.clearStorage()
67+
68+
storage.addPackage("maven:io.sentry:sentry", BuildConfig.VERSION_NAME)
69+
storage.addPackage("maven:io.sentry:sentry-logback", BuildConfig.VERSION_NAME)
70+
storage.addPackage("maven:io.sentry.other:sentry-other", "1.0.0")
71+
storage.addPackage("maven:io.opentelemetry.javaagent:opentelemetry-javaagent", "2.0.0")
72+
73+
assertFalse(storage.checkForMixedVersions(SystemOutLogger()))
74+
}
75+
}

0 commit comments

Comments
 (0)