Skip to content

Commit

Permalink
fix ostest sigprocmask testcase
Browse files Browse the repository at this point in the history
problem: ostest may fail at procmask test, because signals:sigkill/sigstop should not be added in signal mask
solution: skip checking whether sigkill/sigstop are in signal mask

Signed-off-by: guanyi <[email protected]>
  • Loading branch information
guanyi authored and masayuki2009 committed Aug 1, 2023
1 parent 4a4c550 commit f50d2cd
Showing 1 changed file with 34 additions and 6 deletions.
40 changes: 34 additions & 6 deletions testing/ostest/sigprocmask.c
Original file line number Diff line number Diff line change
Expand Up @@ -100,13 +100,19 @@ void sigprocmask_test(void)
{
int signo = g_some_signals[i];

ret = sigaddset(&newmask, signo);
if (ret != OK)
/* SIGKILL and SIGSTOP should not be added to signal mask */

if (signo != SIGKILL && signo != SIGSTOP)
{
int errcode = errno;
printf("sigprocmask_test: ERROR sigaddset failed: %d\n", errcode);
ASSERT(false);
goto errout_with_mask;
ret = sigaddset(&newmask, signo);
if (ret != OK)
{
int errcode = errno;
printf("sigprocmask_test: ERROR sigaddset failed: %d\n",
errcode);
ASSERT(false);
goto errout_with_mask;
}
}

ret = sighold(signo);
Expand Down Expand Up @@ -195,6 +201,28 @@ void sigprocmask_test(void)
goto errout_with_mask;
}

/* SIGKILL and SIGSTOP should never be added to signal mask,
* so delete them from newmask before comparing.
*/

ret = sigdelset(&newmask, SIGKILL);
if (ret != OK)
{
int errcode = errno;
printf("sigprocmask_test: ERROR sigprocmask failed: %d\n", errcode);
ASSERT(false);
goto errout_with_mask;
}

ret = sigdelset(&newmask, SIGSTOP);
if (ret != OK)
{
int errcode = errno;
printf("sigprocmask_test: ERROR sigprocmask failed: %d\n", errcode);
ASSERT(false);
goto errout_with_mask;
}

/* It should be the same as newmask */

if (memcmp(&currmask, &newmask, sizeof(sigset_t)) != 0)
Expand Down

0 comments on commit f50d2cd

Please sign in to comment.