aboutsummaryrefslogtreecommitdiff
path: root/test/js/node/process/process-signal-handler.fixture.js
blob: de5a78bda60968581234db48f5654550644987fa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
import os from "os";
import { raise } from "./call-raise";

var counter = 0;
function done() {
  counter++;
  if (counter === 2) {
    setTimeout(() => {
      if (counter !== 2) {
        console.log(counter);
        console.log("FAIL");
        process.exit(1);
      }

      console.log("PASS");
      process.exit(0);
    }, 1);
  }
}

var counter2 = 0;
function done2() {
  counter2++;
  if (counter2 === 2) {
    setTimeout(() => {
      if (counter2 !== 2) {
        console.log(counter2);
        console.log("FAIL");
        process.exit(1);
      }

      console.log("PASS");
      process.exit(0);
    }, 1);
  }
}

const SIGUSR1 = os.constants.signals.SIGUSR1;
const SIGUSR2 = os.constants.signals.SIGUSR2;

switch (process.argv.at(-1)) {
  case "SIGUSR1": {
    process.on("SIGUSR1", () => {
      done();
    });
    process.on("SIGUSR1", () => {
      done();
    });
    raise(SIGUSR1);
    break;
  }
  case "SIGUSR2": {
    process.on("SIGUSR2", () => {
      done2();
    });
    process.emit("SIGUSR2");
    raise(SIGUSR2);
    break;
  }
  default: {
    throw new Error("Unknown argument: " + process.argv.at(-1));
  }
}