Skip to content

Commit e65a399

Browse files
committed
test: fix failing tests caused by isolate tests
1 parent cb7d61e commit e65a399

File tree

1 file changed

+45
-33
lines changed

1 file changed

+45
-33
lines changed

example/integration_test/t09_isolates_test.dart

Lines changed: 45 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -32,44 +32,56 @@ void main() {
3232
final RootIsolateToken rootIsolateToken = RootIsolateToken.instance!;
3333
const int numIsolates = 3;
3434
final List<ReceivePort> receivePorts = [];
35+
final List<Isolate> isolates = [];
3536

36-
for (int i = 0; i < numIsolates; i++) {
37-
final ReceivePort receivePort = ReceivePort();
38-
receivePorts.add(receivePort);
37+
try {
38+
for (int i = 0; i < numIsolates; i++) {
39+
final ReceivePort receivePort = ReceivePort();
40+
receivePorts.add(receivePort);
3941

40-
await Isolate.spawn(
41-
_isolateVersionCheckMain,
42-
_IsolateData(
43-
rootIsolateToken: rootIsolateToken,
44-
sendPort: receivePort.sendPort,
45-
),
46-
);
47-
}
42+
final Isolate isolate = await Isolate.spawn(
43+
_isolateVersionCheckMain,
44+
_IsolateData(
45+
rootIsolateToken: rootIsolateToken,
46+
sendPort: receivePort.sendPort,
47+
),
48+
);
49+
isolates.add(isolate);
50+
}
4851

49-
final List<_IsolateResult> results = [];
50-
for (final receivePort in receivePorts) {
51-
final dynamic result = await receivePort.first;
52-
expect(result, isA<_IsolateResult>());
53-
results.add(result as _IsolateResult);
54-
}
52+
final List<_IsolateResult> results = [];
53+
for (final receivePort in receivePorts) {
54+
final dynamic result = await receivePort.first;
55+
expect(result, isA<_IsolateResult>());
56+
results.add(result as _IsolateResult);
57+
}
5558

56-
for (int i = 0; i < results.length; i++) {
57-
expect(
58-
results[i].error,
59-
isNull,
60-
reason: 'Isolate $i should not throw an error',
61-
);
62-
expect(results[i].version, isNotNull);
63-
expect(results[i].version!.length, greaterThan(0));
64-
}
59+
for (int i = 0; i < results.length; i++) {
60+
expect(
61+
results[i].error,
62+
isNull,
63+
reason: 'Isolate $i should not throw an error',
64+
);
65+
expect(results[i].version, isNotNull);
66+
expect(results[i].version!.length, greaterThan(0));
67+
}
6568

66-
final String firstVersion = results[0].version!;
67-
for (int i = 1; i < results.length; i++) {
68-
expect(
69-
results[i].version,
70-
equals(firstVersion),
71-
reason: 'All isolates should return the same SDK version',
72-
);
69+
final String firstVersion = results[0].version!;
70+
for (int i = 1; i < results.length; i++) {
71+
expect(
72+
results[i].version,
73+
equals(firstVersion),
74+
reason: 'All isolates should return the same SDK version',
75+
);
76+
}
77+
} finally {
78+
// Clean up resources
79+
for (final receivePort in receivePorts) {
80+
receivePort.close();
81+
}
82+
for (final isolate in isolates) {
83+
isolate.kill(priority: Isolate.immediate);
84+
}
7385
}
7486
},
7587
);

0 commit comments

Comments
 (0)