Skip to content

Commit 66205ef

Browse files
committed
more testing tweaking
1 parent a426aae commit 66205ef

File tree

3 files changed

+50
-38
lines changed

3 files changed

+50
-38
lines changed

src/packages/backend/conat/test/cluster/node-discovery.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import { createClusterNode } from "./util";
99

1010
beforeAll(before);
1111

12+
jest.setTimeout(10000);
1213
describe("test automatic node discovery (and forgetting)", () => {
1314
const nodes: { client; server }[] = [];
1415
const clusterName = "auto";

src/packages/backend/conat/test/setup.ts

Lines changed: 45 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import { delay } from "awaiting";
1818
export { delay };
1919
export { setDefaultTimeouts } from "@cocalc/conat/core/client";
2020
export { once } from "@cocalc/util/async-utils";
21+
import { until } from "@cocalc/util/async-utils";
2122
import { randomId } from "@cocalc/conat/names";
2223
import { isEqual } from "lodash";
2324

@@ -169,8 +170,8 @@ export async function waitForConsistentState(
169170
}
170171

171172
const start = Date.now();
172-
await wait({
173-
until: () => {
173+
await until(
174+
() => {
174175
for (let i = 0; i < servers.length; i++) {
175176
if (servers[i].state == "closed") {
176177
return true;
@@ -186,33 +187,50 @@ export async function waitForConsistentState(
186187
throw Error(`node ${j} is not connected to node ${i}`);
187188
}
188189
const x = link.interest.serialize().patterns;
190+
const showInfo = () => {
191+
console.log(
192+
"server stream getAll: ",
193+
// @ts-ignore
194+
servers[i].clusterStreams.interest.stream.client.id,
195+
// @ts-ignore
196+
servers[i].clusterStreams.interest.stream.storage.path,
197+
// @ts-ignore
198+
servers[i].clusterStreams.interest.seqs(),
199+
// @ts-ignore
200+
//servers[i].clusterStreams.interest.getAll(),
201+
);
202+
console.log(
203+
"link stream getAll: ",
204+
// @ts-ignore
205+
link.streams.interest.stream.client.id,
206+
// @ts-ignore
207+
link.streams.interest.stream.storage.path,
208+
// @ts-ignore
209+
link.streams.interest.seqs(),
210+
// @ts-ignore
211+
//link.streams.interest.getAll(),
212+
);
213+
console.log("waitForConsistentState", { i, j, a, x });
214+
};
189215
if (!isEqual(a, x)) {
216+
// @ts-ignore
217+
const seqs0 = servers[i].clusterStreams.interest.seqs();
218+
const seqs1 = link.streams.interest.seqs();
219+
if (
220+
!isEqual(
221+
seqs0.slice(0, seqs1.length),
222+
seqs1.slice(0, seqs0.length),
223+
)
224+
) {
225+
showInfo();
226+
throw Error(`inconsistent initial sequences`);
227+
}
228+
190229
if (Date.now() - start > 3000) {
191230
// likely going to fail
192-
console.log(
193-
"server stream getAll: ",
194-
// @ts-ignore
195-
servers[i].clusterStreams.interest.stream.client.id,
196-
// @ts-ignore
197-
servers[i].clusterStreams.interest.stream.storage.path,
198-
// @ts-ignore
199-
servers[i].clusterStreams.interest.seqs(),
200-
// @ts-ignore
201-
//servers[i].clusterStreams.interest.getAll(),
202-
);
203-
console.log(
204-
"link stream getAll: ",
205-
// @ts-ignore
206-
link.streams.interest.stream.client.id,
207-
// @ts-ignore
208-
link.streams.interest.stream.storage.path,
209-
// @ts-ignore
210-
link.streams.interest.seqs(),
211-
// @ts-ignore
212-
//link.streams.interest.getAll(),
213-
);
214-
console.log("waitForConsistentState", { i, j, a, x });
231+
showInfo();
215232
}
233+
216234
// not yet equal
217235
return false;
218236
}
@@ -221,8 +239,8 @@ export async function waitForConsistentState(
221239
}
222240
return true;
223241
},
224-
timeout,
225-
});
242+
{ timeout },
243+
);
226244
}
227245

228246
export async function after() {

src/packages/backend/package.json

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,15 @@
1010
"./auth/*": "./dist/auth/*.js",
1111
"./auth/tokens/*": "./dist/auth/tokens/*.js"
1212
},
13-
"keywords": [
14-
"utilities",
15-
"cocalc"
16-
],
13+
"keywords": ["utilities", "cocalc"],
1714
"scripts": {
1815
"preinstall": "npx only-allow pnpm",
1916
"clean": "rm -rf dist node_modules",
2017
"build": "pnpm exec tsc --build",
2118
"tsc": "pnpm exec tsc --watch --pretty --preserveWatchOutput",
2219
"test": "pnpm exec jest --forceExit --maxWorkers=25%",
23-
"test-conat": " pnpm exec jest --forceExit -maxWorkers=50% conat",
20+
"test-conat": " pnpm exec jest --forceExit --maxWorkers=50% conat",
21+
"stress-test": " pnpm exec jest --forceExit",
2422
"testp": "pnpm exec jest --forceExit",
2523
"depcheck": "pnpx depcheck --ignores events",
2624
"prepublishOnly": "pnpm test",
@@ -31,12 +29,7 @@
3129
"conat-persist": "DEBUG=cocalc:* node ./bin/conat-persist.cjs",
3230
"conat-test-server": "node ./bin/conat-test-server.cjs"
3331
},
34-
"files": [
35-
"dist/**",
36-
"bin/**",
37-
"README.md",
38-
"package.json"
39-
],
32+
"files": ["dist/**", "bin/**", "README.md", "package.json"],
4033
"author": "SageMath, Inc.",
4134
"license": "SEE LICENSE.md",
4235
"dependencies": {

0 commit comments

Comments
 (0)