Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
chore: Add tests for verifying Java GC leaks
  • Loading branch information
mrousavy committed Mar 3, 2026
commit fdc6f3ed90f48c5055aa4db5c3c57cf2c56ae8ff
6 changes: 3 additions & 3 deletions example/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2217,7 +2217,7 @@ EXTERNAL SOURCES:

SPEC CHECKSUMS:
FBLazyVector: 7c1d69992204c5ec452eeefa4a24b0ff311709c8
hermes-engine: 16e781d7fca74c8bb3ca59b99527d9633ee9ee36
hermes-engine: b69aade2dcf59e8c2203c748ca79c7fa4c875053
NitroModules: ea6ec1c94ca32c73b22d726b113e570d2abc8b5d
NitroTest: cbbc53e62ed086d1993bbac0fcec3cc77c0b4617
NitroTestExternal: 31816d957144245da0b24b4f95fb3427533e73d7
Expand All @@ -2229,7 +2229,7 @@ SPEC CHECKSUMS:
React: f6f8fc5c01e77349cdfaf49102bcb928ac31d8ed
React-callinvoker: 3e62a849bda1522c6422309c02f5dc3210bc5359
React-Core: 0b765bc7c2b83dff178c2b03ed8a0390df26f18c
React-Core-prebuilt: 88810feb58457484bff17e9e91a15453407d745a
React-Core-prebuilt: 1ed3b91c7035f715bf741f1b8a2c87e94d126d38
React-CoreModules: 55b932564ba696301cb683a86385be6a6f137e57
React-cxxreact: 5bfb95256fde56cc0f9ce425f38cfaa085e71ad2
React-debug: f9dda2791d3ebe2078bc6102641edab77917efb7
Expand Down Expand Up @@ -2292,7 +2292,7 @@ SPEC CHECKSUMS:
ReactAppDependencyProvider: 23e2bca1661f8781e55fcc05a151fc1df97bc1fb
ReactCodegen: c049d7e966ed24be56d8e21cb1b8880316975e76
ReactCommon: 89ccc6cb100ca5a0303b46483037ef8f3e06e2e0
ReactNativeDependencies: 1a7e3c3ffa57533d8118dd9bc01790ffa9e02a3b
ReactNativeDependencies: 69de62c8a59d21e7b6af8bdfb62b61e798f65351
RNScreens: dd61bc3a3e6f6901ad833efa411917d44827cf51
Yoga: 21f482cbc18b56cdc477cd3a0c5b8c2c83ac27ce

Expand Down
33 changes: 32 additions & 1 deletion example/src/getTests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ export function getTests(
): TestRunner[] {
const backend = options.backend ?? throwingBackend
const { it } = createTestRunner(backend)
const createTest = createCreateTest(it)
const createTest = createCreateTest()

return [
// Basic prototype tests
Expand Down Expand Up @@ -1478,6 +1478,37 @@ export function getTests(
.didNotThrow()
.equals(10_000)
),
createTest(
'Kotlin HybridObjects deallocate (no 51,200 JNI global_ref leak)',
() =>
it(() => {
const HISTORIC_JNI_GLOBAL_REF_LIMIT = 51_200
const MARGIN = 2_048
const TOTAL_ALLOCATIONS = HISTORIC_JNI_GLOBAL_REF_LIMIT + MARGIN
const BATCH_SIZE = 512

const objects: Array<TestObjectCpp | TestObjectSwiftKotlin> = []
for (let i = 0; i < TOTAL_ALLOCATIONS; i++) {
const object = testObject.newTestObject()
object.numberValue = i
objects.push(object)

if (objects.length >= BATCH_SIZE) {
objects.length = 0
gc()
}
}

objects.length = 0
gc()
gc()
gc()

return true
})
.didNotThrow()
.equals(true)
),
createTest('callWithOptional(undefined)', async () =>
(
await it<number | undefined>(() => {
Expand Down