Fix TestAttachDenied on linux

This test was timing out because the test inferior was forking a child, which was not terminated
correctly. The test contained provisions to terminate this child, but these were no longer
working. The idea was to wake up upon receiving SIGTERM and then kill the child. However, this
was failing because the test first tried to use SIGHUP, which ended up killing the inferior.

Fix: make sure we catch SIGHUP also.
llvm-svn: 248889
This commit is contained in:
Pavel Labath 2015-09-30 10:59:39 +00:00
parent 55a8e80de8
commit 8f4db787d5
2 changed files with 5 additions and 4 deletions

View File

@ -21,7 +21,6 @@ class AttachDeniedTestCase(TestBase):
return (err, shell_command.GetStatus(), shell_command.GetOutput())
@skipIfWindows
@skipIfLinux # hanging after reviews D13124 change went in
def test_attach_to_process_by_id_denied(self):
"""Test attach by process id denied"""
self.build()

View File

@ -54,7 +54,7 @@ bool writePid (const char* file_name, const pid_t pid)
return res;
}
void sigterm_handler (int)
void signal_handler (int)
{
}
@ -75,8 +75,10 @@ int main (int argc, char const *argv[])
if (pid > 0)
{
// Make pause call to return when SIGTERM is received.
signal (SIGTERM, sigterm_handler);
// Make pause call to return when a signal is received. Normally this happens when the
// test runner tries to terminate us.
signal (SIGHUP, signal_handler);
signal (SIGTERM, signal_handler);
if (ptrace (ATTACH_REQUEST, pid, NULL, 0) == -1)
{
fprintf (stderr, "ptrace(ATTACH) failed: %s\n", strerror (errno));