summaryrefslogtreecommitdiff
path: root/xpcom/tests/unit/test_nsIProcess_stress.js
blob: 63799141d8de39d0e24c1f030ed7e2c7d9269f1a (plain)
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
function run_test() {
  set_process_running_environment();

  var file = get_test_program("TestQuickReturn");
  var thread = Components.classes["@mozilla.org/thread-manager;1"]
                         .getService().currentThread;

  for (var i = 0; i < 1000; i++) {
    var process = Components.classes["@mozilla.org/process/util;1"]
                          .createInstance(Components.interfaces.nsIProcess);
    process.init(file);

    process.run(false, [], 0);

    try {
      process.kill();
    }
    catch (e) { }

    // We need to ensure that we process any events on the main thread -
    // this allow threads to clean up properly and avoid out of memory
    // errors during the test.
    while (thread.hasPendingEvents())
      thread.processNextEvent(false);
  }

}