Branch: Tag:

2003-03-01

2003-03-01 16:33:35 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Moved tracing of processes to a separate class: Process.TraceProcess().

Rev: lib/modules/Process.pmod:1.39
Rev: src/signal_handler.c:1.243
Rev: src/testsuite.in:1.612

1: - test_true([["$Id: testsuite.in,v 1.611 2003/03/01 14:24:25 nilsson Exp $"]]); + test_true([["$Id: testsuite.in,v 1.612 2003/03/01 16:33:34 grubba Exp $"]]);      // This triggered a bug only if run sufficiently early.   test_compile_any([[#pike 7.2]])
8946:    proc->kill (9);    return threads->wait() - ({-1});   ]], ({})) + ]])    -  + cond([[ file_stat("/bin/sleep") && __builtin->TraceProcess && (cpp("__NT__")/"\n")[1]=="__NT__" ]], + [[   test_do([[    // Check that tracing works... -  object proc = Process.create_process(({ "/bin/sleep", "99999" }), -  (["trace":1])); -  if (!proc->continue) { -  // No trace support... -  proc->kill(9); -  return 0; -  } -  int code = proc->wait(1); +  Process.TraceProcess proc = +  Process.TraceProcess(({ "/bin/sleep", "99999" })); +  +  int code = proc->wait();    if (code != -2) {    proc->kill(9);    return sprintf("Bad returncode from wait():%d (expected -2)", code);
8966:    proc->kill(9);    return sprintf("Unexpected signal:%d (expected 5)", sig);    } -  proc->continue(); +  proc->cont();       // Check that we can block deadly signals.    proc->kill(15); // SIGTERM -  code = proc->wait(1); +  code = proc->wait();    if (code != -2) {    proc->kill(9);    return sprintf("Bad second returncode from wait():%d (expected -2)", code);
8980:    proc->kill(9);    return sprintf("Unexpected signal:%d (expected 15)", sig);    } -  proc->continue(); +  proc->cont();       // Check that we can make harmless signals deadly.    proc->kill(18); // SIGCONT -  code = proc->wait(1); +  code = proc->wait();    if (code != -2) {    proc->kill(9);    return sprintf("Bad third returncode from wait():%d (expected -2)", code);
8994:    proc->kill(9);    return sprintf("Unexpected signal:%d (expected 18)", sig);    } -  proc->continue(9); // Make it a SIGKILL +  proc->cont(9); // Make it a SIGKILL    -  code = proc->wait(1); +  code = proc->wait();    if (code != -1) {    proc->kill(9);    return sprintf("Bad fourth returncode from wait():%d (expected -1)", code);