SIGCONT: don't terminate process

Change-Id: Ib959a9e5341fda37bd055724ecb9319a469b7420
Refs: #1410
This commit is contained in:
Tomoki Shirasawa
2019-11-14 11:35:01 +09:00
committed by Masamichi Takagi
parent adb6cce3ce
commit 4b252a990f
11 changed files with 1939 additions and 5 deletions

View File

@ -1523,7 +1523,9 @@ check_sig_pending_thread(struct thread *thread)
sig++, x >>= 1)
;
k = thread->sigcommon->action + sig - 1;
if ((sig != SIGCHLD && sig != SIGURG) ||
if ((sig != SIGCHLD &&
sig != SIGURG &&
sig != SIGCONT) ||
(k->sa.sa_handler != SIG_IGN &&
k->sa.sa_handler != NULL)) {
if (!(pending->sigmask.__val[0] & w)) {
@ -1532,6 +1534,7 @@ check_sig_pending_thread(struct thread *thread)
found = 1;
if (sig != SIGCHLD &&
sig != SIGURG &&
sig != SIGCONT &&
!k->sa.sa_handler) {
found = 2;
break;
@ -1819,7 +1822,9 @@ done:
if ((sig != SIGKILL && (tthread->ptrace & PT_TRACED)) ||
(k->sa.sa_handler != SIG_IGN &&
(k->sa.sa_handler != NULL ||
(sig != SIGCHLD && sig != SIGURG)))) {
(sig != SIGCHLD &&
sig != SIGURG &&
sig != SIGCONT)))) {
struct sig_pending *pending = NULL;
if (sig < SIGRTMIN) { // SIGRTMIN - SIGRTMAX
list_for_each_entry(pending, head, list){

View File

@ -1067,7 +1067,9 @@ getsigpending(struct thread *thread, int delflag){
for(x = pending->sigmask.__val[0], sig = 0; x; sig++, x >>= 1);
k = thread->sigcommon->action + sig - 1;
if(delflag ||
(sig != SIGCHLD && sig != SIGURG) ||
(sig != SIGCHLD &&
sig != SIGURG &&
sig != SIGCONT) ||
(k->sa.sa_handler != (void *)1 &&
k->sa.sa_handler != NULL)){
if(!(pending->sigmask.__val[0] & w)){
@ -1214,7 +1216,9 @@ check_sig_pending_thread(struct thread *thread)
for (x = pending->sigmask.__val[0], sig = 0; x;
sig++, x >>= 1);
k = thread->sigcommon->action + sig - 1;
if ((sig != SIGCHLD && sig != SIGURG) ||
if ((sig != SIGCHLD &&
sig != SIGURG &&
sig != SIGCONT) ||
(k->sa.sa_handler != (void *)1 &&
k->sa.sa_handler != NULL)) {
if (!(pending->sigmask.__val[0] & w)) {
@ -1223,6 +1227,7 @@ check_sig_pending_thread(struct thread *thread)
found = 1;
if (sig != SIGCHLD &&
sig != SIGURG &&
sig != SIGCONT &&
!k->sa.sa_handler) {
found = 2;
break;
@ -1546,7 +1551,7 @@ done:
if ((sig != SIGKILL && (tthread->ptrace & PT_TRACED)) ||
(k->sa.sa_handler != (void *)1 &&
(k->sa.sa_handler != NULL ||
(sig != SIGCHLD && sig != SIGURG)))) {
(sig != SIGCHLD && sig != SIGURG && sig != SIGCONT)))) {
struct sig_pending *pending = NULL;
if (sig < 33) { // SIGRTMIN - SIGRTMAX
list_for_each_entry(pending, head, list){

View File

@ -0,0 +1,31 @@
#!/bin/sh
uname -m
USELTP=1
USEOSTEST=0
BOOTPARAM="-c 1 -m 1G@0 -O"
. ../../common.sh
################################################################################
export MCEXEC
sh ./C1410T01run.sh
mcstop
unset BOOTPARAM
. $HOME/.mck_test_config
mcreboot
$MCEXEC ./C1420T01
for i in kill01:02 kill02:03 kill06:04 kill07:05 kill08:06 kill09:07 \
signal03:08 signal04:09 signal05:10; do
tp=`echo $i|sed 's/:.*//'`
id=`echo $i|sed 's/.*://'`
$MCEXEC $LTPBIN/$tp 2>&1 | tee $tp.txt
ok=`grep TPASS $tp.txt | wc -l`
ng=`grep TFAIL $tp.txt | wc -l`
if [ $ng = 0 ]; then
echo "*** C1410T$id: $tp PASS ($ok)"
else
echo "*** C1410T$id: $tp FAIL (ok=$ok ng=%ng)"
fi
done

View File

@ -0,0 +1,208 @@
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <semaphore.h>
#include <sys/mman.h>
#include <sys/types.h>
#include <unistd.h>
#include <sched.h>
#include <errno.h>
#include <string.h>
#include <signal.h>
#ifndef PAUSE_INST
#define PAUSE_INST "pause"
#endif
#define cpu_pause() \
({ \
__asm__ __volatile__(PAUSE_INST ::: "memory"); \
})
static sem_t *sync_sem1;
static sem_t *sync_sem2;
static int *parent_core;
static int *sync_flag;
#define CHILD_DONE 1
#define PARENT_DONE 2
static int *child_count;
static void child_func(void)
{
pid_t pid = getpid();
printf("[child] pid = %d\n", pid);
for (;;) {
*sync_flag = CHILD_DONE;
while (*sync_flag != PARENT_DONE) {
cpu_pause();
}
(*child_count)++;
cpu_pause();
}
}
static void parent_func(void)
{
pid_t pid;
int i = 0;
pid = getpid();
printf("[parent] pid = %d\n", pid);
for (;;) {
*sync_flag = PARENT_DONE;
while (*sync_flag != CHILD_DONE) {
cpu_pause();
}
printf("[parent] loop ok. (%d)\n", i);
if (*child_count != -1) {
printf("[child] loop ok. (%d)\n", *child_count);
}
else {
return;
}
i++;
cpu_pause();
}
}
int main(int argc, char *argv[])
{
pid_t pid = 0;
/* get shared memory */
sync_sem1 = (sem_t *)mmap(NULL, sizeof(sem_t),
PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS, -1, 0);
sync_sem2 = (sem_t *)mmap(NULL, sizeof(sem_t),
PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS, -1, 0);
parent_core = (int *)mmap(NULL, sizeof(int),
PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS, -1, 0);
sync_flag = (int *)mmap(NULL, sizeof(int),
PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS, -1, 0);
child_count = (int *)mmap(NULL, sizeof(int),
PROT_READ | PROT_WRITE,
MAP_SHARED | MAP_ANONYMOUS, -1, 0);
*parent_core = 0;
*sync_flag = 0;
*child_count = 0;
/* semaphore init */
sem_init(sync_sem1, 1, 0);
sem_init(sync_sem2, 1, 0);
/* create child process */
pid = fork();
switch (pid) {
case -1:
/* fork() error. */
perror("fork()");
return -1;
case 0: {
/* child process */
/* before migrate, get cpunum */
int old_mycore = sched_getcpu();
int new_mycore = -1;
printf("[child] running core %d\n", old_mycore);
/* sync parent */
sem_post(sync_sem1);
/* sync parent */
sem_wait(sync_sem2);
/* after migrate, get cpunum */
new_mycore = sched_getcpu();
/* corenum check. */
if (*parent_core != old_mycore) {
printf("[child] before migrate prevcore "
"%d, nowcore %d\n", old_mycore, new_mycore);
if (old_mycore == new_mycore) {
printf("TP failed, "
"not migrate child process.\n");
exit(-1);
}
} else {
printf("[child] migrate not required.\n");
}
/* loop */
child_func();
/* unmap */
munmap(sync_sem1, sizeof(sem_t));
munmap(sync_sem2, sizeof(sem_t));
munmap(parent_core, sizeof(int));
munmap(sync_flag, sizeof(int));
munmap(child_count, sizeof(int));
/* child exit */
exit(-1);
break;
}
default: {
/* parent process */
cpu_set_t cpuset;
int result = -1;
/* sync child */
sem_wait(sync_sem1);
/* parent corenum get */
*parent_core = sched_getcpu();
/* child process to migrate parent core */
printf("[parent] running core %d\n", *parent_core);
printf("[parent] child process migrate/bind "
"to core %d\n", *parent_core);
CPU_ZERO(&cpuset);
CPU_SET(*parent_core, &cpuset);
result = sched_setaffinity(pid, sizeof(cpuset), &cpuset);
if (result == -1) {
printf("errno = %d\n", errno);
break;
}
/* parent core bind */
printf("[parent] parent process bind "
"to core %d\n", *parent_core);
result = sched_setaffinity(0, sizeof(cpuset), &cpuset);
if (result == -1) {
printf("errno = %d\n", errno);
break;
}
/* sync child */
sem_post(sync_sem2);
/* loop */
parent_func();
/* unmap */
munmap(sync_sem1, sizeof(sem_t));
munmap(sync_sem2, sizeof(sem_t));
munmap(parent_core, sizeof(int));
munmap(sync_flag, sizeof(int));
munmap(child_count, sizeof(int));
break;
}
}
/* never return */
printf("RESULT: NG.\n");
return 0;
}

View File

@ -0,0 +1,21 @@
#!/bin/sh
if [ "X$MCEXEC" = X ]; then
echo FAIL: No mcexec found >&2
exit 1
fi
$MCEXEC ./C1410T01 &
sleep 1
for i in `seq 1 5`
do
echo "send SIGSTOP"
kill -STOP `pidof mcexec`
sleep 1
echo "send SIGCONT"
kill -CONT `pidof mcexec`
sleep 1
done
echo "send SIGKILL"
kill -KILL `pidof mcexec`

View File

@ -0,0 +1,27 @@
#!/bin/sh
script -c 'sh ./C1410T01.sh' C1410T01.log
awk '
/send (SIGCONT|SIGKILL)/{
if (st>0) {
if (n > 5) {
ok++
}
else{
ng++
}
}
st++
n=0
next
}
{n++}
END{
if (ng > 0) {
printf("*** C1410T01 FAIL ng=%d ok=%d\n", ng, ok)
exit(1)
}
else {
printf("*** C1410T01 PASS ng=%d ok=%d\n", ng, ok)
exit(0)
}
}' C1410T01.log

View File

@ -0,0 +1,753 @@
Script started on 2019-12-02 00:47:21+00:00
bash-4.4$ make test
if [ `uname -m` = x86_64 ]; then \
gcc -g -Wall -o C1410T01 C1410T01.c -lpthread ;\
else \
gcc -DPAUSE_INST=\"yield\" -g -Wall -o C1410T01 C1410T01.c -lpthread ;\
fi
gcc -g -Wall -o C1420T01 C1420T01.c
sh ./C1410.sh
aarch64
mcstop+release.sh ... done
mcreboot.sh -c 1 -m 1G@0 -O ... done
Script started, file is C1410T01.log
[child] running core 0
[parent] running core 0
[parent] child process migrate/bind to core 0
[parent] parent process bind to core 0
[child] migrate not required.
[parent] pid = 3500
[child] pid = 3505
[parent] loop ok. (0)
[child] loop ok. (0)
[parent] loop ok. (1)
[child] loop ok. (1)
[parent] loop ok. (2)
[child] loop ok. (2)
[parent] loop ok. (3)
[child] loop ok. (3)
[parent] loop ok. (4)
[child] loop ok. (4)
[parent] loop ok. (5)
[child] loop ok. (5)
[parent] loop ok. (6)
[child] loop ok. (6)
[parent] loop ok. (7)
[child] loop ok. (7)
[parent] loop ok. (8)
[child] loop ok. (8)
[parent] loop ok. (9)
[child] loop ok. (9)
[parent] loop ok. (10)
[child] loop ok. (10)
[parent] loop ok. (11)
[child] loop ok. (11)
[parent] loop ok. (12)
[child] loop ok. (12)
[parent] loop ok. (13)
[child] loop ok. (13)
[parent] loop ok. (14)
[child] loop ok. (14)
[parent] loop ok. (15)
[child] loop ok. (15)
[parent] loop ok. (16)
[child] loop ok. (16)
[parent] loop ok. (17)
[child] loop ok. (17)
[parent] loop ok. (18)
[child] loop ok. (18)
[parent] loop ok. (19)
[child] loop ok. (19)
[parent] loop ok. (20)
[child] loop ok. (20)
[parent] loop ok. (21)
[child] loop ok. (21)
[parent] loop ok. (22)
[child] loop ok. (22)
[parent] loop ok. (23)
[child] loop ok. (23)
[parent] loop ok. (24)
[child] loop ok. (24)
[parent] loop ok. (25)
[child] loop ok. (25)
[parent] loop ok. (26)
[child] loop ok. (26)
[parent] loop ok. (27)
[child] loop ok. (27)
[parent] loop ok. (28)
[child] loop ok. (28)
[parent] loop ok. (29)
[child] loop ok. (29)
[parent] loop ok. (30)
[child] loop ok. (30)
[parent] loop ok. (31)
[child] loop ok. (31)
[parent] loop ok. (32)
[child] loop ok. (32)
[parent] loop ok. (33)
[child] loop ok. (33)
[parent] loop ok. (34)
[child] loop ok. (34)
[parent] loop ok. (35)
[child] loop ok. (35)
[parent] loop ok. (36)
[child] loop ok. (36)
[parent] loop ok. (37)
[child] loop ok. (37)
[parent] loop ok. (38)
[child] loop ok. (38)
[parent] loop ok. (39)
[child] loop ok. (39)
[parent] loop ok. (40)
[child] loop ok. (40)
[parent] loop ok. (41)
[child] loop ok. (41)
[parent] loop ok. (42)
[child] loop ok. (42)
[parent] loop ok. (43)
[child] loop ok. (43)
[parent] loop ok. (44)
[child] loop ok. (44)
[parent] loop ok. (45)
[child] loop ok. (45)
[parent] loop ok. (46)
[child] loop ok. (46)
[parent] loop ok. (47)
send SIGSTOP
[child] loop ok. (47)
[parent] loop ok. (48)
[child] loop ok. (48)
send SIGCONT
[parent] loop ok. (49)
[child] loop ok. (49)
[parent] loop ok. (50)
[child] loop ok. (50)
[parent] loop ok. (51)
[child] loop ok. (51)
[parent] loop ok. (52)
[child] loop ok. (52)
[parent] loop ok. (53)
[child] loop ok. (53)
[parent] loop ok. (54)
[child] loop ok. (54)
[parent] loop ok. (55)
[child] loop ok. (55)
[parent] loop ok. (56)
[child] loop ok. (56)
[parent] loop ok. (57)
[child] loop ok. (57)
[parent] loop ok. (58)
[child] loop ok. (58)
[parent] loop ok. (59)
[child] loop ok. (59)
[parent] loop ok. (60)
[child] loop ok. (60)
[parent] loop ok. (61)
[child] loop ok. (61)
[parent] loop ok. (62)
[child] loop ok. (62)
[parent] loop ok. (63)
[child] loop ok. (63)
[parent] loop ok. (64)
[child] loop ok. (64)
[parent] loop ok. (65)
[child] loop ok. (65)
[parent] loop ok. (66)
[child] loop ok. (66)
[parent] loop ok. (67)
[child] loop ok. (67)
[parent] loop ok. (68)
[child] loop ok. (68)
[parent] loop ok. (69)
[child] loop ok. (69)
[parent] loop ok. (70)
[child] loop ok. (70)
[parent] loop ok. (71)
[child] loop ok. (71)
[parent] loop ok. (72)
[child] loop ok. (72)
[parent] loop ok. (73)
[child] loop ok. (73)
[parent] loop ok. (74)
[child] loop ok. (74)
[parent] loop ok. (75)
[child] loop ok. (75)
[parent] loop ok. (76)
[child] loop ok. (76)
[parent] loop ok. (77)
[child] loop ok. (77)
[parent] loop ok. (78)
[child] loop ok. (78)
[parent] loop ok. (79)
[child] loop ok. (79)
[parent] loop ok. (80)
[child] loop ok. (80)
[parent] loop ok. (81)
[child] loop ok. (81)
[parent] loop ok. (82)
[child] loop ok. (82)
[parent] loop ok. (83)
[child] loop ok. (83)
[parent] loop ok. (84)
[child] loop ok. (84)
[parent] loop ok. (85)
[child] loop ok. (85)
[parent] loop ok. (86)
[child] loop ok. (86)
[parent] loop ok. (87)
[child] loop ok. (87)
[parent] loop ok. (88)
[child] loop ok. (88)
[parent] loop ok. (89)
[child] loop ok. (89)
[parent] loop ok. (90)
[child] loop ok. (90)
[parent] loop ok. (91)
[child] loop ok. (91)
[parent] loop ok. (92)
[child] loop ok. (92)
[parent] loop ok. (93)
[child] loop ok. (93)
[parent] loop ok. (94)
[child] loop ok. (94)
[parent] loop ok. (95)
[child] loop ok. (95)
[parent] loop ok. (96)
[child] loop ok. (96)
[parent] loop ok. (97)
[child] loop ok. (97)
[parent] loop ok. (98)
[child] loop ok. (98)
send SIGSTOP
send SIGCONT
[parent] loop ok. (99)
[child] loop ok. (99)
[parent] loop ok. (100)
[child] loop ok. (100)
[parent] loop ok. (101)
[child] loop ok. (101)
[parent] loop ok. (102)
[child] loop ok. (102)
[parent] loop ok. (103)
[child] loop ok. (103)
[parent] loop ok. (104)
[child] loop ok. (104)
[parent] loop ok. (105)
[child] loop ok. (105)
[parent] loop ok. (106)
[child] loop ok. (106)
[parent] loop ok. (107)
[child] loop ok. (107)
[parent] loop ok. (108)
[child] loop ok. (108)
[parent] loop ok. (109)
[child] loop ok. (109)
[parent] loop ok. (110)
[child] loop ok. (110)
[parent] loop ok. (111)
[child] loop ok. (111)
[parent] loop ok. (112)
[child] loop ok. (112)
[parent] loop ok. (113)
[child] loop ok. (113)
[parent] loop ok. (114)
[child] loop ok. (114)
[parent] loop ok. (115)
[child] loop ok. (115)
[parent] loop ok. (116)
[child] loop ok. (116)
[parent] loop ok. (117)
[child] loop ok. (117)
[parent] loop ok. (118)
[child] loop ok. (118)
[parent] loop ok. (119)
[child] loop ok. (119)
[parent] loop ok. (120)
[child] loop ok. (120)
[parent] loop ok. (121)
[child] loop ok. (121)
[parent] loop ok. (122)
[child] loop ok. (122)
[parent] loop ok. (123)
[child] loop ok. (123)
[parent] loop ok. (124)
[child] loop ok. (124)
[parent] loop ok. (125)
[child] loop ok. (125)
[parent] loop ok. (126)
[child] loop ok. (126)
[parent] loop ok. (127)
[child] loop ok. (127)
[parent] loop ok. (128)
[child] loop ok. (128)
[parent] loop ok. (129)
[child] loop ok. (129)
[parent] loop ok. (130)
[child] loop ok. (130)
[parent] loop ok. (131)
[child] loop ok. (131)
[parent] loop ok. (132)
[child] loop ok. (132)
[parent] loop ok. (133)
[child] loop ok. (133)
[parent] loop ok. (134)
[child] loop ok. (134)
[parent] loop ok. (135)
[child] loop ok. (135)
[parent] loop ok. (136)
[child] loop ok. (136)
[parent] loop ok. (137)
[child] loop ok. (137)
[parent] loop ok. (138)
[child] loop ok. (138)
[parent] loop ok. (139)
[child] loop ok. (139)
[parent] loop ok. (140)
[child] loop ok. (140)
[parent] loop ok. (141)
[child] loop ok. (141)
[parent] loop ok. (142)
[child] loop ok. (142)
[parent] loop ok. (143)
[child] loop ok. (143)
[parent] loop ok. (144)
[child] loop ok. (144)
[parent] loop ok. (145)
[child] loop ok. (145)
[parent] loop ok. (146)
[child] loop ok. (146)
[parent] loop ok. (147)
[child] loop ok. (147)
[parent] loop ok. (148)
[child] loop ok. (148)
send SIGSTOP
send SIGCONT
[parent] loop ok. (149)
[child] loop ok. (149)
[parent] loop ok. (150)
[child] loop ok. (150)
[parent] loop ok. (151)
[child] loop ok. (151)
[parent] loop ok. (152)
[child] loop ok. (152)
[parent] loop ok. (153)
[child] loop ok. (153)
[parent] loop ok. (154)
[child] loop ok. (154)
[parent] loop ok. (155)
[child] loop ok. (155)
[parent] loop ok. (156)
[child] loop ok. (156)
[parent] loop ok. (157)
[child] loop ok. (157)
[parent] loop ok. (158)
[child] loop ok. (158)
[parent] loop ok. (159)
[child] loop ok. (159)
[parent] loop ok. (160)
[child] loop ok. (160)
[parent] loop ok. (161)
[child] loop ok. (161)
[parent] loop ok. (162)
[child] loop ok. (162)
[parent] loop ok. (163)
[child] loop ok. (163)
[parent] loop ok. (164)
[child] loop ok. (164)
[parent] loop ok. (165)
[child] loop ok. (165)
[parent] loop ok. (166)
[child] loop ok. (166)
[parent] loop ok. (167)
[child] loop ok. (167)
[parent] loop ok. (168)
[child] loop ok. (168)
[parent] loop ok. (169)
[child] loop ok. (169)
[parent] loop ok. (170)
[child] loop ok. (170)
[parent] loop ok. (171)
[child] loop ok. (171)
[parent] loop ok. (172)
[child] loop ok. (172)
[parent] loop ok. (173)
[child] loop ok. (173)
[parent] loop ok. (174)
[child] loop ok. (174)
[parent] loop ok. (175)
[child] loop ok. (175)
[parent] loop ok. (176)
[child] loop ok. (176)
[parent] loop ok. (177)
[child] loop ok. (177)
[parent] loop ok. (178)
[child] loop ok. (178)
[parent] loop ok. (179)
[child] loop ok. (179)
[parent] loop ok. (180)
[child] loop ok. (180)
[parent] loop ok. (181)
[child] loop ok. (181)
[parent] loop ok. (182)
[child] loop ok. (182)
[parent] loop ok. (183)
[child] loop ok. (183)
[parent] loop ok. (184)
[child] loop ok. (184)
[parent] loop ok. (185)
[child] loop ok. (185)
[parent] loop ok. (186)
[child] loop ok. (186)
[parent] loop ok. (187)
[child] loop ok. (187)
[parent] loop ok. (188)
[child] loop ok. (188)
[parent] loop ok. (189)
[child] loop ok. (189)
[parent] loop ok. (190)
[child] loop ok. (190)
[parent] loop ok. (191)
[child] loop ok. (191)
[parent] loop ok. (192)
[child] loop ok. (192)
[parent] loop ok. (193)
[child] loop ok. (193)
[parent] loop ok. (194)
[child] loop ok. (194)
[parent] loop ok. (195)
[child] loop ok. (195)
[parent] loop ok. (196)
[child] loop ok. (196)
[parent] loop ok. (197)
[child] loop ok. (197)
[parent] loop ok. (198)
[child] loop ok. (198)
send SIGSTOP
send SIGCONT
[parent] loop ok. (199)
[child] loop ok. (199)
[parent] loop ok. (200)
[child] loop ok. (200)
[parent] loop ok. (201)
[child] loop ok. (201)
[parent] loop ok. (202)
[child] loop ok. (202)
[parent] loop ok. (203)
[child] loop ok. (203)
[parent] loop ok. (204)
[child] loop ok. (204)
[parent] loop ok. (205)
[child] loop ok. (205)
[parent] loop ok. (206)
[child] loop ok. (206)
[parent] loop ok. (207)
[child] loop ok. (207)
[parent] loop ok. (208)
[child] loop ok. (208)
[parent] loop ok. (209)
[child] loop ok. (209)
[parent] loop ok. (210)
[child] loop ok. (210)
[parent] loop ok. (211)
[child] loop ok. (211)
[parent] loop ok. (212)
[child] loop ok. (212)
[parent] loop ok. (213)
[child] loop ok. (213)
[parent] loop ok. (214)
[child] loop ok. (214)
[parent] loop ok. (215)
[child] loop ok. (215)
[parent] loop ok. (216)
[child] loop ok. (216)
[parent] loop ok. (217)
[child] loop ok. (217)
[parent] loop ok. (218)
[child] loop ok. (218)
[parent] loop ok. (219)
[child] loop ok. (219)
[parent] loop ok. (220)
[child] loop ok. (220)
[parent] loop ok. (221)
[child] loop ok. (221)
[parent] loop ok. (222)
[child] loop ok. (222)
[parent] loop ok. (223)
[child] loop ok. (223)
[parent] loop ok. (224)
[child] loop ok. (224)
[parent] loop ok. (225)
[child] loop ok. (225)
[parent] loop ok. (226)
[child] loop ok. (226)
[parent] loop ok. (227)
[child] loop ok. (227)
[parent] loop ok. (228)
[child] loop ok. (228)
[parent] loop ok. (229)
[child] loop ok. (229)
[parent] loop ok. (230)
[child] loop ok. (230)
[parent] loop ok. (231)
[child] loop ok. (231)
[parent] loop ok. (232)
[child] loop ok. (232)
[parent] loop ok. (233)
[child] loop ok. (233)
[parent] loop ok. (234)
[child] loop ok. (234)
[parent] loop ok. (235)
[child] loop ok. (235)
[parent] loop ok. (236)
[child] loop ok. (236)
[parent] loop ok. (237)
[child] loop ok. (237)
[parent] loop ok. (238)
[child] loop ok. (238)
[parent] loop ok. (239)
[child] loop ok. (239)
[parent] loop ok. (240)
[child] loop ok. (240)
[parent] loop ok. (241)
[child] loop ok. (241)
[parent] loop ok. (242)
[child] loop ok. (242)
[parent] loop ok. (243)
[child] loop ok. (243)
[parent] loop ok. (244)
[child] loop ok. (244)
[parent] loop ok. (245)
[child] loop ok. (245)
[parent] loop ok. (246)
[child] loop ok. (246)
[parent] loop ok. (247)
[child] loop ok. (247)
[parent] loop ok. (248)
[child] loop ok. (248)
send SIGSTOP
send SIGCONT
[parent] loop ok. (249)
[child] loop ok. (249)
[parent] loop ok. (250)
[child] loop ok. (250)
[parent] loop ok. (251)
[child] loop ok. (251)
[parent] loop ok. (252)
[child] loop ok. (252)
[parent] loop ok. (253)
[child] loop ok. (253)
[parent] loop ok. (254)
[child] loop ok. (254)
[parent] loop ok. (255)
[child] loop ok. (255)
[parent] loop ok. (256)
[child] loop ok. (256)
[parent] loop ok. (257)
[child] loop ok. (257)
[parent] loop ok. (258)
[child] loop ok. (258)
[parent] loop ok. (259)
[child] loop ok. (259)
[parent] loop ok. (260)
[child] loop ok. (260)
[parent] loop ok. (261)
[child] loop ok. (261)
[parent] loop ok. (262)
[child] loop ok. (262)
[parent] loop ok. (263)
[child] loop ok. (263)
[parent] loop ok. (264)
[child] loop ok. (264)
[parent] loop ok. (265)
[child] loop ok. (265)
[parent] loop ok. (266)
[child] loop ok. (266)
[parent] loop ok. (267)
[child] loop ok. (267)
[parent] loop ok. (268)
[child] loop ok. (268)
[parent] loop ok. (269)
[child] loop ok. (269)
[parent] loop ok. (270)
[child] loop ok. (270)
[parent] loop ok. (271)
[child] loop ok. (271)
[parent] loop ok. (272)
[child] loop ok. (272)
[parent] loop ok. (273)
[child] loop ok. (273)
[parent] loop ok. (274)
[child] loop ok. (274)
[parent] loop ok. (275)
[child] loop ok. (275)
[parent] loop ok. (276)
[child] loop ok. (276)
[parent] loop ok. (277)
[child] loop ok. (277)
[parent] loop ok. (278)
[child] loop ok. (278)
[parent] loop ok. (279)
[child] loop ok. (279)
[parent] loop ok. (280)
[child] loop ok. (280)
[parent] loop ok. (281)
[child] loop ok. (281)
[parent] loop ok. (282)
[child] loop ok. (282)
[parent] loop ok. (283)
[child] loop ok. (283)
[parent] loop ok. (284)
[child] loop ok. (284)
[parent] loop ok. (285)
[child] loop ok. (285)
[parent] loop ok. (286)
[child] loop ok. (286)
[parent] loop ok. (287)
[child] loop ok. (287)
[parent] loop ok. (288)
[child] loop ok. (288)
[parent] loop ok. (289)
[child] loop ok. (289)
[parent] loop ok. (290)
[child] loop ok. (290)
[parent] loop ok. (291)
[child] loop ok. (291)
[parent] loop ok. (292)
[child] loop ok. (292)
[parent] loop ok. (293)
[child] loop ok. (293)
[parent] loop ok. (294)
[child] loop ok. (294)
[parent] loop ok. (295)
[child] loop ok. (295)
[parent] loop ok. (296)
[child] loop ok. (296)
[parent] loop ok. (297)
[child] loop ok. (297)
[parent] loop ok. (298)
[child] loop ok. (298)
send SIGKILL
Script done, file is C1410T01.log
*** C1410T01 PASS ng=0 ok=5
mcstop+release.sh ... done
mcreboot.sh -c 2-7,10-15 -m 2G@0 -O ... done
*** C1420T01: START
.
.
.
send SIGSTOP
send SIGCONT
.
.
.
send SIGINT
*** C1420T01 PASS: child terminated by signal 2
kill01 1 TPASS : received expected signal 9
*** C1410T02: kill01 PASS (1)
kill02 1 TPASS : The signal was sent to all processes in the process group.
kill02 2 TPASS : The signal was not sent to selective processes that were not in the process group.
*** C1410T03: kill02 PASS (2)
kill06 1 TPASS : received expected signal 9
*** C1410T04: kill06 PASS (1)
kill07 0 TINFO : received expected signal 9
kill07 1 TPASS : Did not catch signal as expected
*** C1410T05: kill07 PASS (1)
kill08 1 TPASS : received expected signal 9
*** C1410T06: kill08 PASS (1)
kill09 1 TPASS : kill(4097, SIGKILL) returned 0
*** C1410T07: kill09 PASS (1)
signal03 1 TPASS : signal03 call succeeded
signal03 2 TPASS : signal03 call succeeded
signal03 3 TPASS : signal03 call succeeded
signal03 4 TPASS : signal03 call succeeded
signal03 5 TPASS : signal03 call succeeded
signal03 6 TPASS : signal03 call succeeded
signal03 7 TPASS : signal03 call succeeded
signal03 8 TPASS : signal03 call succeeded
signal03 9 TPASS : signal03 call succeeded
signal03 10 TPASS : signal03 call succeeded
signal03 11 TPASS : signal03 call succeeded
signal03 12 TPASS : signal03 call succeeded
signal03 13 TPASS : signal03 call succeeded
signal03 14 TPASS : signal03 call succeeded
signal03 15 TPASS : signal03 call succeeded
signal03 16 TPASS : signal03 call succeeded
signal03 17 TPASS : signal03 call succeeded
signal03 18 TPASS : signal03 call succeeded
signal03 19 TPASS : signal03 call succeeded
signal03 20 TPASS : signal03 call succeeded
signal03 21 TPASS : signal03 call succeeded
signal03 22 TPASS : signal03 call succeeded
signal03 23 TPASS : signal03 call succeeded
signal03 24 TPASS : signal03 call succeeded
signal03 25 TPASS : signal03 call succeeded
signal03 26 TPASS : signal03 call succeeded
signal03 27 TPASS : signal03 call succeeded
signal03 28 TPASS : signal03 call succeeded
signal03 29 TPASS : signal03 call succeeded
signal03 30 TPASS : signal03 call succeeded
*** C1410T08: signal03 PASS (30)
signal04 1 TPASS : signal04 call succeeded received (nil).
signal04 2 TPASS : signal04 call succeeded received (nil).
signal04 3 TPASS : signal04 call succeeded received (nil).
signal04 4 TPASS : signal04 call succeeded received (nil).
signal04 5 TPASS : signal04 call succeeded received (nil).
signal04 6 TPASS : signal04 call succeeded received (nil).
signal04 7 TPASS : signal04 call succeeded received (nil).
signal04 8 TPASS : signal04 call succeeded received (nil).
signal04 9 TPASS : signal04 call succeeded received (nil).
signal04 10 TPASS : signal04 call succeeded received (nil).
signal04 11 TPASS : signal04 call succeeded received (nil).
signal04 12 TPASS : signal04 call succeeded received (nil).
signal04 13 TPASS : signal04 call succeeded received (nil).
signal04 14 TPASS : signal04 call succeeded received (nil).
signal04 15 TPASS : signal04 call succeeded received (nil).
signal04 16 TPASS : signal04 call succeeded received (nil).
signal04 17 TPASS : signal04 call succeeded received (nil).
signal04 18 TPASS : signal04 call succeeded received (nil).
signal04 19 TPASS : signal04 call succeeded received (nil).
signal04 20 TPASS : signal04 call succeeded received (nil).
signal04 21 TPASS : signal04 call succeeded received (nil).
signal04 22 TPASS : signal04 call succeeded received (nil).
signal04 23 TPASS : signal04 call succeeded received (nil).
signal04 24 TPASS : signal04 call succeeded received (nil).
signal04 25 TPASS : signal04 call succeeded received (nil).
signal04 26 TPASS : signal04 call succeeded received (nil).
signal04 27 TPASS : signal04 call succeeded received (nil).
signal04 28 TPASS : signal04 call succeeded received (nil).
*** C1410T09: signal04 PASS (28)
signal05 1 TPASS : signal05 call succeeded
signal05 2 TPASS : signal05 call succeeded
signal05 3 TPASS : signal05 call succeeded
signal05 4 TPASS : signal05 call succeeded
signal05 5 TPASS : signal05 call succeeded
signal05 6 TPASS : signal05 call succeeded
signal05 7 TPASS : signal05 call succeeded
signal05 8 TPASS : signal05 call succeeded
signal05 9 TPASS : signal05 call succeeded
signal05 10 TPASS : signal05 call succeeded
signal05 11 TPASS : signal05 call succeeded
signal05 12 TPASS : signal05 call succeeded
signal05 13 TPASS : signal05 call succeeded
signal05 14 TPASS : signal05 call succeeded
signal05 15 TPASS : signal05 call succeeded
signal05 16 TPASS : signal05 call succeeded
signal05 17 TPASS : signal05 call succeeded
signal05 18 TPASS : signal05 call succeeded
signal05 19 TPASS : signal05 call succeeded
signal05 20 TPASS : signal05 call succeeded
signal05 21 TPASS : signal05 call succeeded
signal05 22 TPASS : signal05 call succeeded
signal05 23 TPASS : signal05 call succeeded
signal05 24 TPASS : signal05 call succeeded
signal05 25 TPASS : signal05 call succeeded
signal05 26 TPASS : signal05 call succeeded
signal05 27 TPASS : signal05 call succeeded
signal05 28 TPASS : signal05 call succeeded
signal05 29 TPASS : signal05 call succeeded
signal05 30 TPASS : signal05 call succeeded
*** C1410T10: signal05 PASS (30)
bash-4.4$ exit
exit
Script done on 2019-12-02 00:48:11+00:00

View File

@ -0,0 +1,769 @@
Script started on Mon Dec 2 09:27:00 2019
bash-4.2$ make test
if [ `uname -m` = x86_64 ]; then \
gcc -g -Wall -o C1410T01 C1410T01.c -lpthread ;\
else \
gcc -DPAUSE_INST=\"yield\" -g -Wall -o C1410T01 C1410T01.c -lpthread ;\
fi
gcc -g -Wall -o C1420T01 C1420T01.c
sh ./C1410.sh
x86_64
mcstop+release.sh ... done
mcreboot.sh -c 1 -m 1G@0 -O ... done
Script started, file is C1410T01.log
[child] running core 0
[parent] running core 0
[parent] child process migrate/bind to core 0
[parent] parent process bind to core 0
[child] migrate not required.
[parent] pid = 8896
[child] pid = 8901
[parent] loop ok. (0)
[child] loop ok. (0)
[parent] loop ok. (1)
[child] loop ok. (1)
[parent] loop ok. (2)
[child] loop ok. (2)
[parent] loop ok. (3)
[child] loop ok. (3)
[parent] loop ok. (4)
[child] loop ok. (4)
[parent] loop ok. (5)
[child] loop ok. (5)
[parent] loop ok. (6)
[child] loop ok. (6)
[parent] loop ok. (7)
[child] loop ok. (7)
[parent] loop ok. (8)
[child] loop ok. (8)
[parent] loop ok. (9)
[child] loop ok. (9)
[parent] loop ok. (10)
[child] loop ok. (10)
[parent] loop ok. (11)
[child] loop ok. (11)
[parent] loop ok. (12)
[child] loop ok. (12)
[parent] loop ok. (13)
[child] loop ok. (13)
[parent] loop ok. (14)
[child] loop ok. (14)
[parent] loop ok. (15)
[child] loop ok. (15)
[parent] loop ok. (16)
[child] loop ok. (16)
[parent] loop ok. (17)
[child] loop ok. (17)
[parent] loop ok. (18)
[child] loop ok. (18)
[parent] loop ok. (19)
[child] loop ok. (19)
[parent] loop ok. (20)
[child] loop ok. (20)
[parent] loop ok. (21)
[child] loop ok. (21)
[parent] loop ok. (22)
[child] loop ok. (22)
[parent] loop ok. (23)
[child] loop ok. (23)
[parent] loop ok. (24)
[child] loop ok. (24)
[parent] loop ok. (25)
[child] loop ok. (25)
[parent] loop ok. (26)
[child] loop ok. (26)
[parent] loop ok. (27)
[child] loop ok. (27)
[parent] loop ok. (28)
[child] loop ok. (28)
[parent] loop ok. (29)
[child] loop ok. (29)
[parent] loop ok. (30)
[child] loop ok. (30)
[parent] loop ok. (31)
[child] loop ok. (31)
[parent] loop ok. (32)
[child] loop ok. (32)
[parent] loop ok. (33)
[child] loop ok. (33)
[parent] loop ok. (34)
[child] loop ok. (34)
[parent] loop ok. (35)
[child] loop ok. (35)
[parent] loop ok. (36)
[child] loop ok. (36)
[parent] loop ok. (37)
[child] loop ok. (37)
[parent] loop ok. (38)
[child] loop ok. (38)
[parent] loop ok. (39)
[child] loop ok. (39)
[parent] loop ok. (40)
[child] loop ok. (40)
[parent] loop ok. (41)
[child] loop ok. (41)
[parent] loop ok. (42)
[child] loop ok. (42)
[parent] loop ok. (43)
[child] loop ok. (43)
[parent] loop ok. (44)
[child] loop ok. (44)
[parent] loop ok. (45)
[child] loop ok. (45)
[parent] loop ok. (46)
[child] loop ok. (46)
[parent] loop ok. (47)
[child] loop ok. (47)
[parent] loop ok. (48)
[child] loop ok. (48)
[parent] loop ok. (49)
[child] loop ok. (49)
send SIGSTOP
[parent] loop ok. (50)
[child] loop ok. (50)
send SIGCONT
[parent] loop ok. (51)
[child] loop ok. (51)
[parent] loop ok. (52)
[child] loop ok. (52)
[parent] loop ok. (53)
[child] loop ok. (53)
[parent] loop ok. (54)
[child] loop ok. (54)
[parent] loop ok. (55)
[child] loop ok. (55)
[parent] loop ok. (56)
[child] loop ok. (56)
[parent] loop ok. (57)
[child] loop ok. (57)
[parent] loop ok. (58)
[child] loop ok. (58)
[parent] loop ok. (59)
[child] loop ok. (59)
[parent] loop ok. (60)
[child] loop ok. (60)
[parent] loop ok. (61)
[child] loop ok. (61)
[parent] loop ok. (62)
[child] loop ok. (62)
[parent] loop ok. (63)
[child] loop ok. (63)
[parent] loop ok. (64)
[child] loop ok. (64)
[parent] loop ok. (65)
[child] loop ok. (65)
[parent] loop ok. (66)
[child] loop ok. (66)
[parent] loop ok. (67)
[child] loop ok. (67)
[parent] loop ok. (68)
[child] loop ok. (68)
[parent] loop ok. (69)
[child] loop ok. (69)
[parent] loop ok. (70)
[child] loop ok. (70)
[parent] loop ok. (71)
[child] loop ok. (71)
[parent] loop ok. (72)
[child] loop ok. (72)
[parent] loop ok. (73)
[child] loop ok. (73)
[parent] loop ok. (74)
[child] loop ok. (74)
[parent] loop ok. (75)
[child] loop ok. (75)
[parent] loop ok. (76)
[child] loop ok. (76)
[parent] loop ok. (77)
[child] loop ok. (77)
[parent] loop ok. (78)
[child] loop ok. (78)
[parent] loop ok. (79)
[child] loop ok. (79)
[parent] loop ok. (80)
[child] loop ok. (80)
[parent] loop ok. (81)
[child] loop ok. (81)
[parent] loop ok. (82)
[child] loop ok. (82)
[parent] loop ok. (83)
[child] loop ok. (83)
[parent] loop ok. (84)
[child] loop ok. (84)
[parent] loop ok. (85)
[child] loop ok. (85)
[parent] loop ok. (86)
[child] loop ok. (86)
[parent] loop ok. (87)
[child] loop ok. (87)
[parent] loop ok. (88)
[child] loop ok. (88)
[parent] loop ok. (89)
[child] loop ok. (89)
[parent] loop ok. (90)
[child] loop ok. (90)
[parent] loop ok. (91)
[child] loop ok. (91)
[parent] loop ok. (92)
[child] loop ok. (92)
[parent] loop ok. (93)
[child] loop ok. (93)
[parent] loop ok. (94)
[child] loop ok. (94)
[parent] loop ok. (95)
[child] loop ok. (95)
[parent] loop ok. (96)
[child] loop ok. (96)
[parent] loop ok. (97)
[child] loop ok. (97)
[parent] loop ok. (98)
[child] loop ok. (98)
[parent] loop ok. (99)
[child] loop ok. (99)
[parent] loop ok. (100)
[child] loop ok. (100)
send SIGSTOP
[parent] loop ok. (101)
[child] loop ok. (101)
send SIGCONT
[parent] loop ok. (102)
[child] loop ok. (102)
[parent] loop ok. (103)
[child] loop ok. (103)
[parent] loop ok. (104)
[child] loop ok. (104)
[parent] loop ok. (105)
[child] loop ok. (105)
[parent] loop ok. (106)
[child] loop ok. (106)
[parent] loop ok. (107)
[child] loop ok. (107)
[parent] loop ok. (108)
[child] loop ok. (108)
[parent] loop ok. (109)
[child] loop ok. (109)
[parent] loop ok. (110)
[child] loop ok. (110)
[parent] loop ok. (111)
[child] loop ok. (111)
[parent] loop ok. (112)
[child] loop ok. (112)
[parent] loop ok. (113)
[child] loop ok. (113)
[parent] loop ok. (114)
[child] loop ok. (114)
[parent] loop ok. (115)
[child] loop ok. (115)
[parent] loop ok. (116)
[child] loop ok. (116)
[parent] loop ok. (117)
[child] loop ok. (117)
[parent] loop ok. (118)
[child] loop ok. (118)
[parent] loop ok. (119)
[child] loop ok. (119)
[parent] loop ok. (120)
[child] loop ok. (120)
[parent] loop ok. (121)
[child] loop ok. (121)
[parent] loop ok. (122)
[child] loop ok. (122)
[parent] loop ok. (123)
[child] loop ok. (123)
[parent] loop ok. (124)
[child] loop ok. (124)
[parent] loop ok. (125)
[child] loop ok. (125)
[parent] loop ok. (126)
[child] loop ok. (126)
[parent] loop ok. (127)
[child] loop ok. (127)
[parent] loop ok. (128)
[child] loop ok. (128)
[parent] loop ok. (129)
[child] loop ok. (129)
[parent] loop ok. (130)
[child] loop ok. (130)
[parent] loop ok. (131)
[child] loop ok. (131)
[parent] loop ok. (132)
[child] loop ok. (132)
[parent] loop ok. (133)
[child] loop ok. (133)
[parent] loop ok. (134)
[child] loop ok. (134)
[parent] loop ok. (135)
[child] loop ok. (135)
[parent] loop ok. (136)
[child] loop ok. (136)
[parent] loop ok. (137)
[child] loop ok. (137)
[parent] loop ok. (138)
[child] loop ok. (138)
[parent] loop ok. (139)
[child] loop ok. (139)
[parent] loop ok. (140)
[child] loop ok. (140)
[parent] loop ok. (141)
[child] loop ok. (141)
[parent] loop ok. (142)
[child] loop ok. (142)
[parent] loop ok. (143)
[child] loop ok. (143)
[parent] loop ok. (144)
[child] loop ok. (144)
[parent] loop ok. (145)
[child] loop ok. (145)
[parent] loop ok. (146)
[child] loop ok. (146)
[parent] loop ok. (147)
[child] loop ok. (147)
[parent] loop ok. (148)
[child] loop ok. (148)
[parent] loop ok. (149)
[child] loop ok. (149)
[parent] loop ok. (150)
[child] loop ok. (150)
[parent] loop ok. (151)
[child] loop ok. (151)
send SIGSTOP
[parent] loop ok. (152)
[child] loop ok. (152)
send SIGCONT
[parent] loop ok. (153)
[child] loop ok. (153)
[parent] loop ok. (154)
[child] loop ok. (154)
[parent] loop ok. (155)
[child] loop ok. (155)
[parent] loop ok. (156)
[child] loop ok. (156)
[parent] loop ok. (157)
[child] loop ok. (157)
[parent] loop ok. (158)
[child] loop ok. (158)
[parent] loop ok. (159)
[child] loop ok. (159)
[parent] loop ok. (160)
[child] loop ok. (160)
[parent] loop ok. (161)
[child] loop ok. (161)
[parent] loop ok. (162)
[child] loop ok. (162)
[parent] loop ok. (163)
[child] loop ok. (163)
[parent] loop ok. (164)
[child] loop ok. (164)
[parent] loop ok. (165)
[child] loop ok. (165)
[parent] loop ok. (166)
[child] loop ok. (166)
[parent] loop ok. (167)
[child] loop ok. (167)
[parent] loop ok. (168)
[child] loop ok. (168)
[parent] loop ok. (169)
[child] loop ok. (169)
[parent] loop ok. (170)
[child] loop ok. (170)
[parent] loop ok. (171)
[child] loop ok. (171)
[parent] loop ok. (172)
[child] loop ok. (172)
[parent] loop ok. (173)
[child] loop ok. (173)
[parent] loop ok. (174)
[child] loop ok. (174)
[parent] loop ok. (175)
[child] loop ok. (175)
[parent] loop ok. (176)
[child] loop ok. (176)
[parent] loop ok. (177)
[child] loop ok. (177)
[parent] loop ok. (178)
[child] loop ok. (178)
[parent] loop ok. (179)
[child] loop ok. (179)
[parent] loop ok. (180)
[child] loop ok. (180)
[parent] loop ok. (181)
[child] loop ok. (181)
[parent] loop ok. (182)
[child] loop ok. (182)
[parent] loop ok. (183)
[child] loop ok. (183)
[parent] loop ok. (184)
[child] loop ok. (184)
[parent] loop ok. (185)
[child] loop ok. (185)
[parent] loop ok. (186)
[child] loop ok. (186)
[parent] loop ok. (187)
[child] loop ok. (187)
[parent] loop ok. (188)
[child] loop ok. (188)
[parent] loop ok. (189)
[child] loop ok. (189)
[parent] loop ok. (190)
[child] loop ok. (190)
[parent] loop ok. (191)
[child] loop ok. (191)
[parent] loop ok. (192)
[child] loop ok. (192)
[parent] loop ok. (193)
[child] loop ok. (193)
[parent] loop ok. (194)
[child] loop ok. (194)
[parent] loop ok. (195)
[child] loop ok. (195)
[parent] loop ok. (196)
[child] loop ok. (196)
[parent] loop ok. (197)
[child] loop ok. (197)
[parent] loop ok. (198)
[child] loop ok. (198)
[parent] loop ok. (199)
[child] loop ok. (199)
[parent] loop ok. (200)
[child] loop ok. (200)
[parent] loop ok. (201)
[child] loop ok. (201)
[parent] loop ok. (202)
[child] loop ok. (202)
send SIGSTOP
[parent] loop ok. (203)
[child] loop ok. (203)
send SIGCONT
[parent] loop ok. (204)
[child] loop ok. (204)
[parent] loop ok. (205)
[child] loop ok. (205)
[parent] loop ok. (206)
[child] loop ok. (206)
[parent] loop ok. (207)
[child] loop ok. (207)
[parent] loop ok. (208)
[child] loop ok. (208)
[parent] loop ok. (209)
[child] loop ok. (209)
[parent] loop ok. (210)
[child] loop ok. (210)
[parent] loop ok. (211)
[child] loop ok. (211)
[parent] loop ok. (212)
[child] loop ok. (212)
[parent] loop ok. (213)
[child] loop ok. (213)
[parent] loop ok. (214)
[child] loop ok. (214)
[parent] loop ok. (215)
[child] loop ok. (215)
[parent] loop ok. (216)
[child] loop ok. (216)
[parent] loop ok. (217)
[child] loop ok. (217)
[parent] loop ok. (218)
[child] loop ok. (218)
[parent] loop ok. (219)
[child] loop ok. (219)
[parent] loop ok. (220)
[child] loop ok. (220)
[parent] loop ok. (221)
[child] loop ok. (221)
[parent] loop ok. (222)
[child] loop ok. (222)
[parent] loop ok. (223)
[child] loop ok. (223)
[parent] loop ok. (224)
[child] loop ok. (224)
[parent] loop ok. (225)
[child] loop ok. (225)
[parent] loop ok. (226)
[child] loop ok. (226)
[parent] loop ok. (227)
[child] loop ok. (227)
[parent] loop ok. (228)
[child] loop ok. (228)
[parent] loop ok. (229)
[child] loop ok. (229)
[parent] loop ok. (230)
[child] loop ok. (230)
[parent] loop ok. (231)
[child] loop ok. (231)
[parent] loop ok. (232)
[child] loop ok. (232)
[parent] loop ok. (233)
[child] loop ok. (233)
[parent] loop ok. (234)
[child] loop ok. (234)
[parent] loop ok. (235)
[child] loop ok. (235)
[parent] loop ok. (236)
[child] loop ok. (236)
[parent] loop ok. (237)
[child] loop ok. (237)
[parent] loop ok. (238)
[child] loop ok. (238)
[parent] loop ok. (239)
[child] loop ok. (239)
[parent] loop ok. (240)
[child] loop ok. (240)
[parent] loop ok. (241)
[child] loop ok. (241)
[parent] loop ok. (242)
[child] loop ok. (242)
[parent] loop ok. (243)
[child] loop ok. (243)
[parent] loop ok. (244)
[child] loop ok. (244)
[parent] loop ok. (245)
[child] loop ok. (245)
[parent] loop ok. (246)
[child] loop ok. (246)
[parent] loop ok. (247)
[child] loop ok. (247)
[parent] loop ok. (248)
[child] loop ok. (248)
[parent] loop ok. (249)
[child] loop ok. (249)
[parent] loop ok. (250)
[child] loop ok. (250)
[parent] loop ok. (251)
[child] loop ok. (251)
[parent] loop ok. (252)
[child] loop ok. (252)
[parent] loop ok. (253)
[child] loop ok. (253)
send SIGSTOP
[parent] loop ok. (254)
[child] loop ok. (254)
send SIGCONT
[parent] loop ok. (255)
[child] loop ok. (255)
[parent] loop ok. (256)
[child] loop ok. (256)
[parent] loop ok. (257)
[child] loop ok. (257)
[parent] loop ok. (258)
[child] loop ok. (258)
[parent] loop ok. (259)
[child] loop ok. (259)
[parent] loop ok. (260)
[child] loop ok. (260)
[parent] loop ok. (261)
[child] loop ok. (261)
[parent] loop ok. (262)
[child] loop ok. (262)
[parent] loop ok. (263)
[child] loop ok. (263)
[parent] loop ok. (264)
[child] loop ok. (264)
[parent] loop ok. (265)
[child] loop ok. (265)
[parent] loop ok. (266)
[child] loop ok. (266)
[parent] loop ok. (267)
[child] loop ok. (267)
[parent] loop ok. (268)
[child] loop ok. (268)
[parent] loop ok. (269)
[child] loop ok. (269)
[parent] loop ok. (270)
[child] loop ok. (270)
[parent] loop ok. (271)
[child] loop ok. (271)
[parent] loop ok. (272)
[child] loop ok. (272)
[parent] loop ok. (273)
[child] loop ok. (273)
[parent] loop ok. (274)
[child] loop ok. (274)
[parent] loop ok. (275)
[child] loop ok. (275)
[parent] loop ok. (276)
[child] loop ok. (276)
[parent] loop ok. (277)
[child] loop ok. (277)
[parent] loop ok. (278)
[child] loop ok. (278)
[parent] loop ok. (279)
[child] loop ok. (279)
[parent] loop ok. (280)
[child] loop ok. (280)
[parent] loop ok. (281)
[child] loop ok. (281)
[parent] loop ok. (282)
[child] loop ok. (282)
[parent] loop ok. (283)
[child] loop ok. (283)
[parent] loop ok. (284)
[child] loop ok. (284)
[parent] loop ok. (285)
[child] loop ok. (285)
[parent] loop ok. (286)
[child] loop ok. (286)
[parent] loop ok. (287)
[child] loop ok. (287)
[parent] loop ok. (288)
[child] loop ok. (288)
[parent] loop ok. (289)
[child] loop ok. (289)
[parent] loop ok. (290)
[child] loop ok. (290)
[parent] loop ok. (291)
[child] loop ok. (291)
[parent] loop ok. (292)
[child] loop ok. (292)
[parent] loop ok. (293)
[child] loop ok. (293)
[parent] loop ok. (294)
[child] loop ok. (294)
[parent] loop ok. (295)
[child] loop ok. (295)
[parent] loop ok. (296)
[child] loop ok. (296)
[parent] loop ok. (297)
[child] loop ok. (297)
[parent] loop ok. (298)
[child] loop ok. (298)
[parent] loop ok. (299)
[child] loop ok. (299)
[parent] loop ok. (300)
[child] loop ok. (300)
[parent] loop ok. (301)
[child] loop ok. (301)
[parent] loop ok. (302)
[child] loop ok. (302)
[parent] loop ok. (303)
[child] loop ok. (303)
[parent] loop ok. (304)
[child] loop ok. (304)
send SIGKILL
[parent] loop ok. (305)
[child] loop ok. (305)
Script done, file is C1410T01.log
*** C1410T01 PASS ng=0 ok=5
mcstop+release.sh ... done
mcreboot.sh -c 1-7,9-15,17-23,25-31 -m 10G@0,10G@1 -r 1-7:0+9-15:8+17-23:16+25-31:24 ... done
*** C1420T01: START
.
.
.
send SIGSTOP
send SIGCONT
.
.
.
send SIGINT
*** C1420T01 PASS: child terminated by signal 2
kill01 1 TPASS : received expected signal 9
*** C1410T02: kill01 PASS (1)
kill02 1 TPASS : The signal was sent to all processes in the process group.
kill02 2 TPASS : The signal was not sent to selective processes that were not in the process group.
*** C1410T03: kill02 PASS (2)
kill06 1 TPASS : received expected signal 9
*** C1410T04: kill06 PASS (1)
kill07 0 TINFO : received expected signal 9
kill07 1 TPASS : Did not catch signal as expected
*** C1410T05: kill07 PASS (1)
kill08 1 TPASS : received expected signal 9
*** C1410T06: kill08 PASS (1)
kill09 1 TPASS : kill(10983, SIGKILL) returned 0
*** C1410T07: kill09 PASS (1)
signal03 1 TPASS : signal03 call succeeded
signal03 2 TPASS : signal03 call succeeded
signal03 3 TPASS : signal03 call succeeded
signal03 4 TPASS : signal03 call succeeded
signal03 5 TPASS : signal03 call succeeded
signal03 6 TPASS : signal03 call succeeded
signal03 7 TPASS : signal03 call succeeded
signal03 8 TPASS : signal03 call succeeded
signal03 9 TPASS : signal03 call succeeded
signal03 10 TPASS : signal03 call succeeded
signal03 11 TPASS : signal03 call succeeded
signal03 12 TPASS : signal03 call succeeded
signal03 13 TPASS : signal03 call succeeded
signal03 14 TPASS : signal03 call succeeded
signal03 15 TPASS : signal03 call succeeded
signal03 16 TPASS : signal03 call succeeded
signal03 17 TPASS : signal03 call succeeded
signal03 18 TPASS : signal03 call succeeded
signal03 19 TPASS : signal03 call succeeded
signal03 20 TPASS : signal03 call succeeded
signal03 21 TPASS : signal03 call succeeded
signal03 22 TPASS : signal03 call succeeded
signal03 23 TPASS : signal03 call succeeded
signal03 24 TPASS : signal03 call succeeded
signal03 25 TPASS : signal03 call succeeded
signal03 26 TPASS : signal03 call succeeded
signal03 27 TPASS : signal03 call succeeded
signal03 28 TPASS : signal03 call succeeded
signal03 29 TPASS : signal03 call succeeded
signal03 30 TPASS : signal03 call succeeded
signal03 31 TPASS : signal03 call succeeded
*** C1410T08: signal03 PASS (31)
signal04 1 TPASS : signal04 call succeeded received (nil).
signal04 2 TPASS : signal04 call succeeded received (nil).
signal04 3 TPASS : signal04 call succeeded received (nil).
signal04 4 TPASS : signal04 call succeeded received (nil).
signal04 5 TPASS : signal04 call succeeded received (nil).
signal04 6 TPASS : signal04 call succeeded received (nil).
signal04 7 TPASS : signal04 call succeeded received (nil).
signal04 8 TPASS : signal04 call succeeded received (nil).
signal04 9 TPASS : signal04 call succeeded received (nil).
signal04 10 TPASS : signal04 call succeeded received (nil).
signal04 11 TPASS : signal04 call succeeded received (nil).
signal04 12 TPASS : signal04 call succeeded received (nil).
signal04 13 TPASS : signal04 call succeeded received (nil).
signal04 14 TPASS : signal04 call succeeded received (nil).
signal04 15 TPASS : signal04 call succeeded received (nil).
signal04 16 TPASS : signal04 call succeeded received (nil).
signal04 17 TPASS : signal04 call succeeded received (nil).
signal04 18 TPASS : signal04 call succeeded received (nil).
signal04 19 TPASS : signal04 call succeeded received (nil).
signal04 20 TPASS : signal04 call succeeded received (nil).
signal04 21 TPASS : signal04 call succeeded received (nil).
signal04 22 TPASS : signal04 call succeeded received (nil).
signal04 23 TPASS : signal04 call succeeded received (nil).
signal04 24 TPASS : signal04 call succeeded received (nil).
signal04 25 TPASS : signal04 call succeeded received (nil).
signal04 26 TPASS : signal04 call succeeded received (nil).
signal04 27 TPASS : signal04 call succeeded received (nil).
signal04 28 TPASS : signal04 call succeeded received (nil).
*** C1410T09: signal04 PASS (28)
signal05 1 TPASS : signal05 call succeeded
signal05 2 TPASS : signal05 call succeeded
signal05 3 TPASS : signal05 call succeeded
signal05 4 TPASS : signal05 call succeeded
signal05 5 TPASS : signal05 call succeeded
signal05 6 TPASS : signal05 call succeeded
signal05 7 TPASS : signal05 call succeeded
signal05 8 TPASS : signal05 call succeeded
signal05 9 TPASS : signal05 call succeeded
signal05 10 TPASS : signal05 call succeeded
signal05 11 TPASS : signal05 call succeeded
signal05 12 TPASS : signal05 call succeeded
signal05 13 TPASS : signal05 call succeeded
signal05 14 TPASS : signal05 call succeeded
signal05 15 TPASS : signal05 call succeeded
signal05 16 TPASS : signal05 call succeeded
signal05 17 TPASS : signal05 call succeeded
signal05 18 TPASS : signal05 call succeeded
signal05 19 TPASS : signal05 call succeeded
signal05 20 TPASS : signal05 call succeeded
signal05 21 TPASS : signal05 call succeeded
signal05 22 TPASS : signal05 call succeeded
signal05 23 TPASS : signal05 call succeeded
signal05 24 TPASS : signal05 call succeeded
signal05 25 TPASS : signal05 call succeeded
signal05 26 TPASS : signal05 call succeeded
signal05 27 TPASS : signal05 call succeeded
signal05 28 TPASS : signal05 call succeeded
signal05 29 TPASS : signal05 call succeeded
signal05 30 TPASS : signal05 call succeeded
signal05 31 TPASS : signal05 call succeeded
*** C1410T10: signal05 PASS (31)
bash-4.2$ exit
exit
Script done on Mon Dec 2 09:27:54 2019

View File

@ -0,0 +1,64 @@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <sys/wait.h>
void
cont(int s)
{
printf("SIGCONT\n");
exit(1);
}
void
child()
{
int mask;
mask = sigmask(SIGCONT);
sigprocmask(SIG_BLOCK, (sigset_t *)&mask, NULL);
signal(SIGCONT, cont);
for (;;) {
printf(".\n");
sleep(1);
}
}
int
main(int argc, char **argv)
{
pid_t pid = fork();
int st;
if (!pid)
child();
printf("*** C1420T01: START\n");
sleep(3);
printf("send SIGSTOP\n");
kill(pid, SIGSTOP);
sleep(3);
printf("send SIGCONT\n");
kill(pid, SIGCONT);
sleep(3);
printf("send SIGINT\n");
kill(pid, SIGINT);
waitpid(pid, &st, 0);
printf("*** C1420T01 ");
if (WIFEXITED(st)) {
printf("FAIL: child exited st=%d\n", WEXITSTATUS(st));
}
else if (WIFSIGNALED(st)) {
if (WTERMSIG(st) == SIGINT) {
printf("PASS");
}
else {
printf("FAIL");
}
printf(": child terminated by signal %d\n", WTERMSIG(st));
}
else {
printf("FAIL: child status=%08x\n", st);
}
exit(0);
}

View File

@ -0,0 +1,20 @@
CC = gcc
TARGET = C1410T01 C1420T01
all:: $(TARGET)
C1410T01: C1410T01.c
if [ `uname -m` = x86_64 ]; then \
$(CC) -g -Wall -o $@ $^ -lpthread ;\
else \
$(CC) -DPAUSE_INST=\"yield\" -g -Wall -o $@ $^ -lpthread ;\
fi
C1420T01: C1420T01.c
$(CC) -g -Wall -o $@ $^
test:: all
sh ./C1410.sh
clean::
rm -f $(TARGET) *.o

View File

@ -0,0 +1,31 @@
【Issue#1410 動作確認】
□ テスト内容
1. Issue 指摘事項の再現確認
C1410T01 McKernelに1CPU割り当てた状態で、2つのmcexecにSIGSTOPとSIGCONTを
送ったときプロセスが再開することを確認する。実行の結果PASSすること。
C1420T01 SIGCONTをマスクした状態でプロセスを停止し、その後SIGCONTを送付して
プロセスが再開することを確認する。実行の結果PASSすること。
2. LTP を用いて既存処理に影響しないことを確認
シグナル関連処理を変更したため、関連するシステムコールのテストを選定した。
全てPASSすること。
C1410T02 kill01: kill の基本機能の確認
C1410T03 kill02: kill の基本機能の確認
C1410T04 kill06: kill の基本機能の確認
C1410T05 kill07: kill の基本機能の確認
C1410T06 kill08: kill の基本機能の確認
C1410T07 kill09: kill の基本機能の確認
C1410T08 signal03: signal の基本機能の確認
C1410T09 signal04: signal の基本機能の確認
C1410T10 signal05: signal の基本機能の確認
□ 実行手順
$ make test
McKernelのインストール先や LTP の配置場所は、$HOME/.mck_test_config を
参照する。.mck_test_config は、McKernel をビルドした際に生成される
mck_test_config.sample ファイルを $HOME にコピーし、適宜編集すること。
□ 実行結果
C1410_x86_64.txt(x86_64実行結果)、C1410_arm64.txt(arm64実行結果) 参照。
全ての項目が PASS していることを確認。