Skip to content

Commit f35f121

Browse files
committed
test changes in SpawnAsync.run
1 parent 7ea662f commit f35f121

File tree

2 files changed

+35
-25
lines changed

2 files changed

+35
-25
lines changed

tests/docstrings_examples/DocTest.res

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ module Node = {
4040
@send
4141
external once: (spawnReturns, string, (Js.Null.t<float>, Js.Null.t<string>) => unit) => unit =
4242
"once"
43+
@send
44+
external onceError: (spawnReturns, string, Js.Exn.t => unit) => unit = "once"
4345
}
4446

4547
module OS = {
@@ -92,17 +94,20 @@ module SpawnAsync = {
9294
code: Null.t<float>,
9395
}
9496
let run = async (~command, ~args, ~options=?) => {
95-
await Promise.make((resolve, _reject) => {
96-
let spawn = ChildProcess.spawn(command, args, ~options?)
97-
let stdout = []
98-
let stderr = []
99-
spawn.stdout->ChildProcess.on("data", data => {
100-
Array.push(stdout, data)
101-
})
102-
spawn.stderr->ChildProcess.on("data", data => {
103-
Array.push(stderr, data)
97+
let spawn = ChildProcess.spawn(command, args, ~options?)
98+
let stdout = []
99+
let stderr = []
100+
spawn.stdout->ChildProcess.on("data", data => {
101+
Array.push(stdout, data)
102+
})
103+
spawn.stderr->ChildProcess.on("data", data => {
104+
Array.push(stderr, data)
105+
})
106+
await Promise.make((resolve, reject) => {
107+
spawn->ChildProcess.once("error", (_, _) => {
108+
reject({stdout, stderr, code: Null.make(1.0)})
104109
})
105-
spawn->ChildProcess.onFromSpawn("close", code => {
110+
spawn->ChildProcess.once("close", (code, _signal) => {
106111
resolve({stdout, stderr, code})
107112
})
108113
})
@@ -374,8 +379,6 @@ let main = async () => {
374379
// Await the next iterator value
375380
let {value, done} = await asyncIterator->AsyncIterator.next
376381

377-
Console.log2(value, Array.length(chuncks))
378-
379382
// Exit the while loop if the iterator says it's done
380383
break := done
381384

@@ -402,6 +405,8 @@ let main = async () => {
402405

403406
let () = await processMyAsyncIterator()
404407

408+
Console.log("Compiation tests finished")
409+
405410
let compilationResults = result->Array.flat
406411

407412
// let compilationResults =

tests/docstrings_examples/DocTest.res.mjs

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -62,17 +62,22 @@ let v = values["ignore-runtime-tests"];
6262
let ignoreRuntimeTests = v !== undefined ? v.split(",").map(s => s.trim()) : [];
6363

6464
async function run(command, args, options) {
65-
return await new Promise((resolve, _reject) => {
66-
let spawn = Child_process.spawn(command, args, options !== undefined ? Primitive_option.valFromOption(options) : undefined);
67-
let stdout = [];
68-
let stderr = [];
69-
spawn.stdout.on("data", data => {
70-
stdout.push(data);
71-
});
72-
spawn.stderr.on("data", data => {
73-
stderr.push(data);
74-
});
75-
spawn.on("close", code => resolve({
65+
let spawn = Child_process.spawn(command, args, options !== undefined ? Primitive_option.valFromOption(options) : undefined);
66+
let stdout = [];
67+
let stderr = [];
68+
spawn.stdout.on("data", data => {
69+
stdout.push(data);
70+
});
71+
spawn.stderr.on("data", data => {
72+
stderr.push(data);
73+
});
74+
return await new Promise((resolve, reject) => {
75+
spawn.once("error", (param, param$1) => reject({
76+
stdout: stdout,
77+
stderr: stderr,
78+
code: 1.0
79+
}));
80+
spawn.once("close", (code, _signal) => resolve({
7681
stdout: stdout,
7782
stderr: stderr,
7883
code: code
@@ -183,7 +188,7 @@ function extractDocFromFile(file) {
183188
RE_EXN_ID: "Assert_failure",
184189
_1: [
185190
"DocTest.res",
186-
199,
191+
204,
187192
9
188193
],
189194
Error: new Error()
@@ -381,7 +386,6 @@ async function main() {
381386
while (!$$break) {
382387
let match = await asyncIterator.next();
383388
let value = match.value;
384-
console.log(value, chuncks.length);
385389
$$break = match.done;
386390
if (value !== undefined) {
387391
let c = chuncks[value];
@@ -403,6 +407,7 @@ async function main() {
403407
};
404408
};
405409
await processMyAsyncIterator();
410+
console.log("Compiation tests finished");
406411
let compilationResults = result.flat();
407412
let match = $$Array.reduce(compilationResults, [
408413
[],

0 commit comments

Comments
 (0)