From 8ee9eca74e13aed761960fcd0da29aba5bd0007f Mon Sep 17 00:00:00 2001 From: Tomoki Shirasawa Date: Mon, 5 Feb 2018 16:07:00 +0900 Subject: [PATCH] issue 863: add test cases and test evidences --- test/mng_mod/issues/863/CT1001.txt | 27 +++++++++++ test/mng_mod/issues/863/CT2001.txt | 21 +++++++++ test/mng_mod/issues/863/CT3001.c | 40 ++++++++++++++++ test/mng_mod/issues/863/CT3001.sh | 3 ++ test/mng_mod/issues/863/CT3002.c | 54 +++++++++++++++++++++ test/mng_mod/issues/863/CT3002.sh | 7 +++ test/mng_mod/issues/863/CT3003.c | 51 ++++++++++++++++++++ test/mng_mod/issues/863/CT3003.sh | 3 ++ test/mng_mod/issues/863/CT3004.c | 62 ++++++++++++++++++++++++ test/mng_mod/issues/863/CT3004.sh | 7 +++ test/mng_mod/issues/863/CT3005.c | 70 +++++++++++++++++++++++++++ test/mng_mod/issues/863/CT3005.sh | 3 ++ test/mng_mod/issues/863/CT3006.c | 75 +++++++++++++++++++++++++++++ test/mng_mod/issues/863/CT3006.sh | 7 +++ test/mng_mod/issues/863/CT3007.c | 71 ++++++++++++++++++++++++++++ test/mng_mod/issues/863/CT3007.sh | 3 ++ test/mng_mod/issues/863/CT3008.c | 76 ++++++++++++++++++++++++++++++ test/mng_mod/issues/863/CT3008.sh | 7 +++ test/mng_mod/issues/863/CT300x.sh | 12 +++++ test/mng_mod/issues/863/CT300x.txt | 40 ++++++++++++++++ test/mng_mod/issues/863/Makefile | 33 +++++++++++++ test/mng_mod/issues/863/README | 32 +++++++++++++ 22 files changed, 704 insertions(+) create mode 100644 test/mng_mod/issues/863/CT1001.txt create mode 100644 test/mng_mod/issues/863/CT2001.txt create mode 100644 test/mng_mod/issues/863/CT3001.c create mode 100755 test/mng_mod/issues/863/CT3001.sh create mode 100644 test/mng_mod/issues/863/CT3002.c create mode 100755 test/mng_mod/issues/863/CT3002.sh create mode 100644 test/mng_mod/issues/863/CT3003.c create mode 100755 test/mng_mod/issues/863/CT3003.sh create mode 100644 test/mng_mod/issues/863/CT3004.c create mode 100755 test/mng_mod/issues/863/CT3004.sh create mode 100644 test/mng_mod/issues/863/CT3005.c create mode 100755 test/mng_mod/issues/863/CT3005.sh create mode 100644 test/mng_mod/issues/863/CT3006.c create mode 100755 test/mng_mod/issues/863/CT3006.sh create mode 100644 test/mng_mod/issues/863/CT3007.c create mode 100755 test/mng_mod/issues/863/CT3007.sh create mode 100644 test/mng_mod/issues/863/CT3008.c create mode 100755 test/mng_mod/issues/863/CT3008.sh create mode 100755 test/mng_mod/issues/863/CT300x.sh create mode 100644 test/mng_mod/issues/863/CT300x.txt create mode 100644 test/mng_mod/issues/863/Makefile create mode 100644 test/mng_mod/issues/863/README diff --git a/test/mng_mod/issues/863/CT1001.txt b/test/mng_mod/issues/863/CT1001.txt new file mode 100644 index 00000000..15a55975 --- /dev/null +++ b/test/mng_mod/issues/863/CT1001.txt @@ -0,0 +1,27 @@ +スクリプトは Wed Jan 24 20:43:43 2018 + に開始しました[?1034hbash-4.2$ ~/wallaby11-smp-x86/development/mic/mcexec ./signalonread-multi +[4261] I am the examiner for 4270. +[4270] I am a subjectThread 1, ad000700 ad000700 +[4270] I am a subjectThread 3, ae400700 ae400700 +[4270] I am a subjectThread 2, ada00700 ada00700 +[4270] I am a subjectThread 0, ac72aec0 ac72aec0 +[3] setup: 1367 ms +[2] setup: 1367 ms +[1] setup: 1367 ms +[0] setup: 1367 ms +[3] START TEST +[2] START TEST +[3] ./signalonread-multi try to read 2147483648 bytes. buffp=0x2aac40000010 +[1] START TEST +[2] ./signalonread-multi try to read 2147483648 bytes. buffp=0x2aad00000010 +[0] START TEST +[1] ./signalonread-multi try to read 2147483648 bytes. buffp=0x2aab80000010 +[0] ./signalonread-multi try to read 2147483648 bytes. buffp=0x2aaac0000010 +The TEST process is terminated by the signal 15 +TEST SUCCESSED IF YOU DID NOT SEE 'OVERRUN' +TEST FINISHED +bash-4.2$ シェルから脱出するには "exit" を使用してください。 +bash-4.2$ exit + +スクリプトは Wed Jan 24 20:45:10 2018 + に終了しました \ No newline at end of file diff --git a/test/mng_mod/issues/863/CT2001.txt b/test/mng_mod/issues/863/CT2001.txt new file mode 100644 index 00000000..c6a04e02 --- /dev/null +++ b/test/mng_mod/issues/863/CT2001.txt @@ -0,0 +1,21 @@ +スクリプトは Wed Jan 24 20:56:37 2018 + に開始しました[?1034hbash-4.2$ pwd +/home/shirasawa/dangertest/bin +bash-4.2$ ./mck-mcexec.sh ./killit -t 4000 - ./signalonread -nt 4 -nosignal +SUCCESS kmsg +SUCCESS clear_kmsg +SUCCESS mcexec +SUCCESS ./killit -t 4000 mcexec ./signalonread -nt 4 -nosignal +SUCCESS kmsg +SUCCESS kmsg 1 lines +SUCCESS ioctl 40000000 1 +SUCCESS kmsg +SUCCESS 0 processes found +SUCCESS ioctl 40000000 2 +SUCCESS kmsg +SUCCESS 0 threads found +bash-4.2$ シェルから脱出するには "exit" を使用してください。 +bash-4.2$ exit + +スクリプトは Wed Jan 24 20:57:07 2018 + に終了しました \ No newline at end of file diff --git a/test/mng_mod/issues/863/CT3001.c b/test/mng_mod/issues/863/CT3001.c new file mode 100644 index 00000000..fdbc8a25 --- /dev/null +++ b/test/mng_mod/issues/863/CT3001.c @@ -0,0 +1,40 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +void +sig(int s) +{ + fprintf(stderr, "signal hanlder is called\n"); +} + +int +main(int argc, char **argv) +{ + struct sigaction act; + int fds[2]; + char c; + int rc; + + memset(&act, '\0', sizeof act); + act.sa_handler = sig; + sigaction(SIGALRM, &act, NULL); + alarm(3); + pipe(fds); + rc = read(fds[0], &c, 1); + if (rc != -1) { + fprintf(stderr, "CT3001 NG BAD read rc=%d\n", rc); + exit(1); + } + if (errno != EINTR) { + fprintf(stderr, "CT3001 NG BAD error errno=%d\n", errno); + exit(1); + } + fprintf(stderr, "CT3001 OK\n"); + exit(0); +} diff --git a/test/mng_mod/issues/863/CT3001.sh b/test/mng_mod/issues/863/CT3001.sh new file mode 100755 index 00000000..c5be2b31 --- /dev/null +++ b/test/mng_mod/issues/863/CT3001.sh @@ -0,0 +1,3 @@ +#!/bin/sh +MCEXEC=mcexec +$MCEXEC ./CT3001 diff --git a/test/mng_mod/issues/863/CT3002.c b/test/mng_mod/issues/863/CT3002.c new file mode 100644 index 00000000..8af19173 --- /dev/null +++ b/test/mng_mod/issues/863/CT3002.c @@ -0,0 +1,54 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define FILESIZE (2L * 1024 * 1024 * 1024) +int sigcalled = 0; + +void +sig(int s) +{ + sigcalled = 1; + fprintf(stderr, "signal hanlder is called\n"); +} + +int +main(int argc, char **argv) +{ + struct sigaction act; + char *buf; + long rc; + long l; + long r; + int fd; + + buf = malloc(FILESIZE); + fd = open("testfile", O_RDONLY); + if (fd == -1) { + fprintf(stderr, "Could not open file\n"); + unlink("testfile"); + exit(1); + } + + memset(&act, '\0', sizeof act); + act.sa_handler = sig; + sigaction(SIGALRM, &act, NULL); + alarm(1); + rc = read(fd, buf, FILESIZE); + if (rc == -1) { + fprintf(stderr, "CT3002 NG BAD read rc=%ld errno=%d\n", rc, errno); + exit(1); + } + if (sigcalled == 0) { + fprintf(stderr, "CT3002 NG signal handler was not called\n"); + exit(1); + } + fprintf(stderr, "CT3002 OK\n"); + exit(0); +} diff --git a/test/mng_mod/issues/863/CT3002.sh b/test/mng_mod/issues/863/CT3002.sh new file mode 100755 index 00000000..ff83699b --- /dev/null +++ b/test/mng_mod/issues/863/CT3002.sh @@ -0,0 +1,7 @@ +#!/bin/sh +MCEXEC=mcexec +dd if=/dev/zero of=testfile bs=$((1024 * 1024)) count=$((2 * 1024)) +sync +sudo /sbin/sysctl vm.drop_caches=3 +$MCEXEC ./CT3002 +rm -f testfile diff --git a/test/mng_mod/issues/863/CT3003.c b/test/mng_mod/issues/863/CT3003.c new file mode 100644 index 00000000..b706dfc0 --- /dev/null +++ b/test/mng_mod/issues/863/CT3003.c @@ -0,0 +1,51 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +void +child() +{ + struct sigaction act; + int fds[2]; + char c; + int rc; + + alarm(3); + pipe(fds); + rc = read(fds[0], &c, 1); +} + +int +main(int argc, char **argv) +{ + pid_t pid; + int st; + int rc; + + pid = fork(); + if (pid == 0) { + child(); + exit(1); + } + while ((rc = waitpid(pid, &st, 0)) == -1 && errno == EINTR); + if (rc != pid) { + fprintf(stderr, "CT3003 NG BAD wait rc=%d errno=%d\n", rc, errno); + exit(1); + } + if (!WIFSIGNALED(st)) { + fprintf(stderr, "CT3003 NG no signaled st=%08x\n", st); + exit(1); + } + if (WTERMSIG(st) != SIGALRM) { + fprintf(stderr, "CT3003 NG BAD signal sig=%d\n", WTERMSIG(st)); + exit(1); + } + fprintf(stderr, "CT3003 OK\n"); + exit(0); +} diff --git a/test/mng_mod/issues/863/CT3003.sh b/test/mng_mod/issues/863/CT3003.sh new file mode 100755 index 00000000..42e7fe7b --- /dev/null +++ b/test/mng_mod/issues/863/CT3003.sh @@ -0,0 +1,3 @@ +#!/bin/sh +MCEXEC=mcexec +$MCEXEC ./CT3003 diff --git a/test/mng_mod/issues/863/CT3004.c b/test/mng_mod/issues/863/CT3004.c new file mode 100644 index 00000000..87ffcfab --- /dev/null +++ b/test/mng_mod/issues/863/CT3004.c @@ -0,0 +1,62 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define FILESIZE (2L * 1024 * 1024 * 1024) + +void +child() +{ + char *buf; + long rc; + long l; + long r; + int fd; + + buf = malloc(FILESIZE); + fd = open("testfile", O_RDONLY); + if (fd == -1) { + fprintf(stderr, "Could not open file\n"); + unlink("testfile"); + exit(1); + } + + alarm(1); + rc = read(fd, buf, FILESIZE); +} + +int +main(int argc, char **argv) +{ + pid_t pid; + int st; + int rc; + + pid = fork(); + if (pid == 0) { + child(); + exit(1); + } + while ((rc = waitpid(pid, &st, 0)) == -1 && errno == EINTR); + if (rc != pid) { + fprintf(stderr, "CT3004 NG BAD wait rc=%d errno=%d\n", rc, errno); + exit(1); + } + if (!WIFSIGNALED(st)) { + fprintf(stderr, "CT3004 NG no signaled st=%08x\n", st); + exit(1); + } + if (WTERMSIG(st) != SIGALRM) { + fprintf(stderr, "CT3004 NG BAD signal sig=%d\n", WTERMSIG(st)); + exit(1); + } + fprintf(stderr, "CT3004 OK\n"); + exit(0); +} diff --git a/test/mng_mod/issues/863/CT3004.sh b/test/mng_mod/issues/863/CT3004.sh new file mode 100755 index 00000000..1346befd --- /dev/null +++ b/test/mng_mod/issues/863/CT3004.sh @@ -0,0 +1,7 @@ +#!/bin/sh +MCEXEC=mcexec +dd if=/dev/zero of=testfile bs=$((1024 * 1024)) count=$((2 * 1024)) +sync +sudo /sbin/sysctl vm.drop_caches=3 +$MCEXEC ./CT3004 +rm -f testfile diff --git a/test/mng_mod/issues/863/CT3005.c b/test/mng_mod/issues/863/CT3005.c new file mode 100644 index 00000000..6280bf25 --- /dev/null +++ b/test/mng_mod/issues/863/CT3005.c @@ -0,0 +1,70 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +pid_t pid; + +void +sig(int s) +{ + static int cnt = 0; + + cnt++; + if (cnt == 1) { + fprintf(stderr, "kill SIGURG\n"); + kill(pid, SIGURG); + } + else if (cnt == 2) { + fprintf(stderr, "kill SIGINT\n"); + kill(pid, SIGINT); + } + alarm(2); +} + +void +child() +{ + struct sigaction act; + int fds[2]; + char c; + int rc; + + pipe(fds); + rc = read(fds[0], &c, 1); +} + +int +main(int argc, char **argv) +{ + int st; + int rc; + + pid = fork(); + if (pid == 0) { + child(); + exit(1); + } + signal(SIGALRM, sig); + alarm(2); + while ((rc = waitpid(pid, &st, 0)) == -1 && errno == EINTR); + if (rc != pid) { + fprintf(stderr, "CT3005 NG BAD wait rc=%d errno=%d\n", rc, errno); + exit(1); + } + if (!WIFSIGNALED(st)) { + fprintf(stderr, "CT3005 NG no signaled st=%08x\n", st); + exit(1); + } + if (WTERMSIG(st) != SIGINT) { + fprintf(stderr, "CT3005 NG BAD signal sig=%d\n", WTERMSIG(st)); + exit(1); + } + fprintf(stderr, "CT3005 OK\n"); + exit(0); +} diff --git a/test/mng_mod/issues/863/CT3005.sh b/test/mng_mod/issues/863/CT3005.sh new file mode 100755 index 00000000..0d9ec33b --- /dev/null +++ b/test/mng_mod/issues/863/CT3005.sh @@ -0,0 +1,3 @@ +#!/bin/sh +MCEXEC=mcexec +$MCEXEC ./CT3005 diff --git a/test/mng_mod/issues/863/CT3006.c b/test/mng_mod/issues/863/CT3006.c new file mode 100644 index 00000000..7f72a8d0 --- /dev/null +++ b/test/mng_mod/issues/863/CT3006.c @@ -0,0 +1,75 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define FILESIZE (2L * 1024 * 1024 * 1024) + +pid_t pid; + +void +sig(int s) +{ + fprintf(stderr, "kill SIGURG\n"); + kill(pid, SIGURG); +} + +void +child() +{ + char *buf; + long rc; + long l; + long r; + int fd; + + buf = malloc(FILESIZE); + fd = open("testfile", O_RDONLY); + if (fd == -1) { + fprintf(stderr, "Could not open file\n"); + unlink("testfile"); + exit(1); + } + + rc = read(fd, buf, FILESIZE); +} + +int +main(int argc, char **argv) +{ + int st; + int rc; + + pid = fork(); + if (pid == 0) { + child(); + exit(99); + } + signal(SIGALRM, sig); + alarm(2); + while ((rc = waitpid(pid, &st, 0)) == -1 && errno == EINTR); + if (rc != pid) { + fprintf(stderr, "CT3006 NG BAD wait rc=%d errno=%d\n", rc, errno); + exit(1); + } + if (WIFSIGNALED(st)) { + fprintf(stderr, "CT3006 NG BAD signal st=%08x\n", st); + exit(1); + } + if (!WIFEXITED(st)) { + fprintf(stderr, "CT3006 NG BAD terminated st=%08x\n", st); + exit(1); + } + if (WEXITSTATUS(st) != 99) { + fprintf(stderr, "CT3006 NG BAD exit status st=%08x\n", st); + exit(1); + } + fprintf(stderr, "CT3006 OK\n"); + exit(0); +} diff --git a/test/mng_mod/issues/863/CT3006.sh b/test/mng_mod/issues/863/CT3006.sh new file mode 100755 index 00000000..9233d862 --- /dev/null +++ b/test/mng_mod/issues/863/CT3006.sh @@ -0,0 +1,7 @@ +#!/bin/sh +MCEXEC=mcexec +dd if=/dev/zero of=testfile bs=$((1024 * 1024)) count=$((2 * 1024)) +sync +sudo /sbin/sysctl vm.drop_caches=3 +$MCEXEC ./CT3006 +rm -f testfile diff --git a/test/mng_mod/issues/863/CT3007.c b/test/mng_mod/issues/863/CT3007.c new file mode 100644 index 00000000..82fb5176 --- /dev/null +++ b/test/mng_mod/issues/863/CT3007.c @@ -0,0 +1,71 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +pid_t pid; + +void +sig(int s) +{ + static int cnt = 0; + + cnt++; + if (cnt == 1) { + fprintf(stderr, "kill SIGTERM (ignored)\n"); + kill(pid, SIGTERM); + } + else if (cnt == 2) { + fprintf(stderr, "kill SIGINT\n"); + kill(pid, SIGINT); + } + alarm(2); +} + +void +child() +{ + struct sigaction act; + int fds[2]; + char c; + int rc; + + pipe(fds); + rc = read(fds[0], &c, 1); +} + +int +main(int argc, char **argv) +{ + int st; + int rc; + + pid = fork(); + if (pid == 0) { + signal(SIGTERM, SIG_IGN); + child(); + exit(1); + } + signal(SIGALRM, sig); + alarm(2); + while ((rc = waitpid(pid, &st, 0)) == -1 && errno == EINTR); + if (rc != pid) { + fprintf(stderr, "CT3007 NG BAD wait rc=%d errno=%d\n", rc, errno); + exit(1); + } + if (!WIFSIGNALED(st)) { + fprintf(stderr, "CT3007 NG no signaled st=%08x\n", st); + exit(1); + } + if (WTERMSIG(st) != SIGINT) { + fprintf(stderr, "CT3007 NG BAD signal sig=%d\n", WTERMSIG(st)); + exit(1); + } + fprintf(stderr, "CT3007 OK\n"); + exit(0); +} diff --git a/test/mng_mod/issues/863/CT3007.sh b/test/mng_mod/issues/863/CT3007.sh new file mode 100755 index 00000000..58e9afe8 --- /dev/null +++ b/test/mng_mod/issues/863/CT3007.sh @@ -0,0 +1,3 @@ +#!/bin/sh +MCEXEC=mcexec +$MCEXEC ./CT3007 diff --git a/test/mng_mod/issues/863/CT3008.c b/test/mng_mod/issues/863/CT3008.c new file mode 100644 index 00000000..7ad51563 --- /dev/null +++ b/test/mng_mod/issues/863/CT3008.c @@ -0,0 +1,76 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define FILESIZE (2L * 1024 * 1024 * 1024) + +pid_t pid; + +void +sig(int s) +{ + fprintf(stderr, "kill SIGTERM (ignored)\n"); + kill(pid, SIGURG); +} + +void +child() +{ + char *buf; + long rc; + long l; + long r; + int fd; + + buf = malloc(FILESIZE); + fd = open("testfile", O_RDONLY); + if (fd == -1) { + fprintf(stderr, "Could not open file\n"); + unlink("testfile"); + exit(1); + } + + rc = read(fd, buf, FILESIZE); +} + +int +main(int argc, char **argv) +{ + int st; + int rc; + + pid = fork(); + if (pid == 0) { + signal(SIGTERM, SIG_IGN); + child(); + exit(99); + } + signal(SIGALRM, sig); + alarm(2); + while ((rc = waitpid(pid, &st, 0)) == -1 && errno == EINTR); + if (rc != pid) { + fprintf(stderr, "CT3008 NG BAD wait rc=%d errno=%d\n", rc, errno); + exit(1); + } + if (WIFSIGNALED(st)) { + fprintf(stderr, "CT3008 NG BAD signal st=%08x\n", st); + exit(1); + } + if (!WIFEXITED(st)) { + fprintf(stderr, "CT3008 NG BAD terminated st=%08x\n", st); + exit(1); + } + if (WEXITSTATUS(st) != 99) { + fprintf(stderr, "CT3008 NG BAD exit status st=%08x\n", st); + exit(1); + } + fprintf(stderr, "CT3008 OK\n"); + exit(0); +} diff --git a/test/mng_mod/issues/863/CT3008.sh b/test/mng_mod/issues/863/CT3008.sh new file mode 100755 index 00000000..754e1628 --- /dev/null +++ b/test/mng_mod/issues/863/CT3008.sh @@ -0,0 +1,7 @@ +#!/bin/sh +MCEXEC=mcexec +dd if=/dev/zero of=testfile bs=$((1024 * 1024)) count=$((2 * 1024)) +sync +sudo /sbin/sysctl vm.drop_caches=3 +$MCEXEC ./CT3008 +rm -f testfile diff --git a/test/mng_mod/issues/863/CT300x.sh b/test/mng_mod/issues/863/CT300x.sh new file mode 100755 index 00000000..8b9f4518 --- /dev/null +++ b/test/mng_mod/issues/863/CT300x.sh @@ -0,0 +1,12 @@ +#!/bin/sh +MCKERNEL_DIR=/home/shirasawa/wallaby11-smp-x86/development/mic +export PATH=$MCKERNEL_DIR/bin:$PATH + +./CT3001.sh +./CT3002.sh +./CT3003.sh +./CT3004.sh +./CT3005.sh +./CT3006.sh +./CT3007.sh +./CT3008.sh diff --git a/test/mng_mod/issues/863/CT300x.txt b/test/mng_mod/issues/863/CT300x.txt new file mode 100644 index 00000000..06a95729 --- /dev/null +++ b/test/mng_mod/issues/863/CT300x.txt @@ -0,0 +1,40 @@ +スクリプトは Mon Feb 5 16:00:07 2018 + に開始しました[?1034hbash-4.2$ make test +./CT300x.sh +signal hanlder is called +CT3001 OK +2048+0 レコード入力 +2048+0 レコード出力 +2147483648 バイト (2.1 GB) コピーされました、 19.5651 秒、 110 MB/秒 +vm.drop_caches = 3 +signal hanlder is called +CT3002 OK +CT3003 OK +2048+0 レコード入力 +2048+0 レコード出力 +2147483648 バイト (2.1 GB) コピーされました、 19.5383 秒、 110 MB/秒 +vm.drop_caches = 3 +CT3004 OK +kill SIGURG +kill SIGINT +CT3005 OK +2048+0 レコード入力 +2048+0 レコード出力 +2147483648 バイト (2.1 GB) コピーされました、 19.5148 秒、 110 MB/秒 +vm.drop_caches = 3 +kill SIGURG +CT3006 OK +kill SIGTERM (ignored) +kill SIGINT +CT3007 OK +2048+0 レコード入力 +2048+0 レコード出力 +2147483648 バイト (2.1 GB) コピーされました、 19.5614 秒、 110 MB/秒 +vm.drop_caches = 3 +kill SIGTERM (ignored) +CT3008 OK +bash-4.2$ exit +exit + +スクリプトは Mon Feb 5 16:03:02 2018 + に終了しました \ No newline at end of file diff --git a/test/mng_mod/issues/863/Makefile b/test/mng_mod/issues/863/Makefile new file mode 100644 index 00000000..c274e8e9 --- /dev/null +++ b/test/mng_mod/issues/863/Makefile @@ -0,0 +1,33 @@ +CC=gcc +TARGET=CT3001 CT3002 CT3003 CT3004 CT3005 CT3006 CT3007 CT3008 +all:: $(TARGET) + +CT3001: CT3001.c + $(CC) -o CT3001 $< + +CT3002: CT3002.c + $(CC) -o CT3002 $< + +CT3003: CT3003.c + $(CC) -o CT3003 $< + +CT3004: CT3004.c + $(CC) -o CT3004 $< + +CT3005: CT3005.c + $(CC) -o CT3005 $< + +CT3006: CT3006.c + $(CC) -o CT3006 $< + +CT3007: CT3007.c + $(CC) -o CT3007 $< + +CT3008: CT3008.c + $(CC) -o CT3008 $< + +test:: $(TARGET) + ./CT300x.sh + +clean:: + rm -f $(TARGET) diff --git a/test/mng_mod/issues/863/README b/test/mng_mod/issues/863/README new file mode 100644 index 00000000..d74d5bb0 --- /dev/null +++ b/test/mng_mod/issues/863/README @@ -0,0 +1,32 @@ +【Issue#863 動作確認】 +1. Issue#863および、同件のIssue#870で指摘されたテストプログラムを用いて + 現象が解消されていることを確認した。(2件) + 実行結果(エビデンス)は以下の通り。 + +CT1001.txt Issue#863の指摘で使用されたテストプログラムの実行結果(OK 1件、NG 0件) +CT2001.txt Issue#870の指摘で使用されたテストプログラムの実行結果(OK 1件、NG 0件) + +2. Issue#863の変更が既存シグナル機能に影響しないことを確認した。 + 確認内容は以下の通り。 + +CT3001 遅いI/Oシステムコール実行中にシグナルを受け、即座にシグナル + ハンドラが呼び出され、システムコールがEINTRを返却することを + 確認する。 +CT3002 遅くないI/Oシステムコール実行中にシグナルを受け、システム + コール完了後にシグナルハンドラが呼び出され、システムコール + が正常に終了することを確認する。 +CT3003 遅いI/Oシステムコール実行中にプログラムを終了するシグナルを + 受けとると、即座にプログラムが終了することを確認する。 +CT3004 遅くないI/Oシステムコール実行中にプログラムを終了するシグナル + を受けとると、即座にプログラムを終了することを確認する。 +CT3005 遅いI/Oシステムコール実行中にプログラムを終了しないシグナル(SIGURG) + を受けとっても、プログラムの実行に影響しないことを確認する。 +CT3006 遅くないI/Oシステムコール実行中にプログラムを終了しないシグナル + (SIGURG)を受けとっても、プログラムの実行に影響しないことを確認する。 +CT3007 遅いI/Oシステムコール実行中に無視(SIG_IGN)するシグナルを + 受けとっても、プログラムの実行に影響しないことを確認する。 +CT3008 遅くないI/Oシステムコール実行中に無視(SIG_IGN)するシグナルを + 受けとっても、プログラムの実行に影響しないことを確認する。 + +CT300x の実行は、make test で行う。 +エビデンスは CT300x.txt に示す。(OK 8件、NG 0件)