Add test cases for #840
Refs: #840 Change-Id: Ie29867d29ba6a25cfac77b95b8effc2f057aae14
This commit is contained in:
committed by
Masamichi Takagi
parent
67ebcca74d
commit
0c7384f980
@@ -1,152 +1,234 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
BIN=
|
||||||
|
SBIN=
|
||||||
|
BOOTPARAM="-c 1-7 -m 4G@0"
|
||||||
|
|
||||||
if ! sudo ls /sys/kernel/debug | grep kmemleak > /dev/null 2>&1; then
|
if ! sudo ls /sys/kernel/debug | grep kmemleak > /dev/null 2>&1; then
|
||||||
echo kmemleak: not found >&2
|
echo kmemleak: not found >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo 'C840T01... '
|
if [ -f ../../../config.h ]; then
|
||||||
ng=0
|
str=`grep "^#define BINDIR " ../../../config.h | head -1 | sed 's/^#define BINDIR /BINDIR=/'`
|
||||||
|
eval $str
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f ../../../Makefile ]; then
|
||||||
|
str=`grep ^SBINDIR ../../../Makefile | head -1 | sed 's/ //g'`
|
||||||
|
eval $str
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "x$BINDIR" = x ];then
|
||||||
|
BINDIR="$BIN"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "x$SBINDIR" = x ];then
|
||||||
|
SBINDIR="$SBIN"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if lsmod | grep mcctrl > /dev/null 2>&1; then
|
||||||
|
sudo $SBINDIR/mcstop+release.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
dd if=/dev/zero of=rpf.data bs=1M count=1024
|
||||||
sync
|
sync
|
||||||
sudo /sbin/sysctl vm.drop_caches=3 > /dev/null 2>&1
|
|
||||||
./ihkosctl 0 clear_kmsg
|
echo 'C840T01... '
|
||||||
sudo dmesg -c > /dev/null
|
b=
|
||||||
sudo sh -c 'echo clear > /sys/kernel/debug/kmemleak'
|
while [ x$b = x ]; do
|
||||||
./mcexec ./C840T01
|
ng=0
|
||||||
if [ `sudo cat /sys/kernel/debug/kmemleak | wc -l` != 0 ]; then
|
sync
|
||||||
echo 'C840T01: NG (kmemleak)'
|
sudo /sbin/sysctl vm.drop_caches=3 > /dev/null 2>&1
|
||||||
ng=1
|
sudo sh -c 'echo clear > /sys/kernel/debug/kmemleak'
|
||||||
fi
|
sudo $SBINDIR/mcreboot.sh $BOOTPARAM
|
||||||
if ! dmesg | grep 'remote_page_fault:interrupted. -512' > /dev/null 2>&1; then
|
$SBINDIR/ihkosctl 0 clear_kmsg
|
||||||
echo 'C840T01: WARN (remote_page_fault)'
|
sudo dmesg -c > /dev/null
|
||||||
ng=1
|
$BINDIR/mcexec ./C840T01
|
||||||
fi
|
sleep 3
|
||||||
if ! ./ihkosctl 0 kmsg | grep 'is dead, terminate()' > /dev/null 2>&1; then
|
rpf=`dmesg | grep 'remote_page_fault:interrupted. -512'`
|
||||||
echo 'C840T01: WARN (syscall offloading)'
|
offload=` $SBINDIR/ihkosctl 0 kmsg | grep 'is dead, terminate()'`
|
||||||
ng=1
|
sudo $SBINDIR/mcstop+release.sh
|
||||||
fi
|
sudo sh -c 'echo scan > /sys/kernel/debug/kmemleak'
|
||||||
if [ $ng = 0 ]; then
|
if [ x"$rpf" = x ]; then
|
||||||
echo C840T01: OK
|
echo '*** C840T01: WARN (remote_page_fault)'
|
||||||
fi
|
ng=1
|
||||||
|
elif [ x"$offload" = x ]; then
|
||||||
|
echo '*** C840T01: WARN (syscall offloading)'
|
||||||
|
ng=1
|
||||||
|
elif sudo cat /sys/kernel/debug/kmemleak | tee C840T01.kmemleak | grep 'mcctrl'; then
|
||||||
|
echo '*** C840T01: NG (kmemleak)'
|
||||||
|
ng=1
|
||||||
|
b=1
|
||||||
|
fi
|
||||||
|
if [ $ng = 0 ]; then
|
||||||
|
echo '*** C840T01: OK'
|
||||||
|
b=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
echo 'C840T02... '
|
echo 'C840T02... '
|
||||||
ng=0
|
b=
|
||||||
sync
|
while [ x$b = x ]; do
|
||||||
sudo /sbin/sysctl vm.drop_caches=3 > /dev/null 2>&1
|
ng=0
|
||||||
./ihkosctl 0 clear_kmsg
|
sync
|
||||||
sudo dmesg -c > /dev/null
|
sudo /sbin/sysctl vm.drop_caches=3 > /dev/null 2>&1
|
||||||
sudo sh -c 'echo clear > /sys/kernel/debug/kmemleak'
|
sudo sh -c 'echo clear > /sys/kernel/debug/kmemleak'
|
||||||
./mcexec ./C840T02
|
sudo $SBINDIR/mcreboot.sh $BOOTPARAM
|
||||||
if [ `sudo cat /sys/kernel/debug/kmemleak | wc -l` != 0 ]; then
|
$SBINDIR/ihkosctl 0 clear_kmsg
|
||||||
echo 'C840T02: NG (kmemleak)'
|
sudo dmesg -c > /dev/null
|
||||||
ng=1
|
$BINDIR/mcexec ./C840T02
|
||||||
fi
|
sleep 3
|
||||||
if dmesg | grep 'remote_page_fault:interrupted. -512' > /dev/null 2>&1; then
|
rpf=`dmesg | grep 'remote_page_fault:interrupted. -512'`
|
||||||
echo 'C840T02: WARN (remote_page_fault)'
|
offload=` $SBINDIR/ihkosctl 0 kmsg | grep 'is dead, terminate()'`
|
||||||
ng=1
|
sudo $SBINDIR/mcstop+release.sh
|
||||||
fi
|
sudo sh -c 'echo scan > /sys/kernel/debug/kmemleak'
|
||||||
if ! ./ihkosctl 0 kmsg | grep 'is dead, terminate()' > /dev/null 2>&1; then
|
if [ x"$rpf" != x ]; then
|
||||||
echo 'C840T02: WARN (syscall offloading)'
|
echo '*** C840T02: WARN (remote_page_fault)'
|
||||||
ng=1
|
ng=1
|
||||||
fi
|
elif [ x"$offload" = x ]; then
|
||||||
if [ $ng = 0 ]; then
|
echo '*** C840T02: WARN (syscall offloading)'
|
||||||
echo C840T02: OK
|
ng=1
|
||||||
fi
|
elif sudo cat /sys/kernel/debug/kmemleak | tee C840T02.kmemleak | grep 'mcctrl'; then
|
||||||
|
echo '*** C840T02: NG (kmemleak)'
|
||||||
|
ng=1
|
||||||
|
b=1
|
||||||
|
fi
|
||||||
|
if [ $ng = 0 ]; then
|
||||||
|
echo '*** C840T02: OK'
|
||||||
|
b=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
echo 'C840T03... '
|
echo 'C840T03... '
|
||||||
ng=0
|
b=
|
||||||
sync
|
while [ x$b = x ]; do
|
||||||
sudo /sbin/sysctl vm.drop_caches=3 > /dev/null 2>&1
|
ng=0
|
||||||
./ihkosctl 0 clear_kmsg
|
sync
|
||||||
sudo dmesg -c > /dev/null
|
sudo /sbin/sysctl vm.drop_caches=3 > /dev/null 2>&1
|
||||||
sudo sh -c 'echo clear > /sys/kernel/debug/kmemleak'
|
sudo sh -c 'echo clear > /sys/kernel/debug/kmemleak'
|
||||||
./mcexec ./C840T03
|
sudo $SBINDIR/mcreboot.sh $BOOTPARAM
|
||||||
if [ `sudo cat /sys/kernel/debug/kmemleak | wc -l` != 0 ]; then
|
$SBINDIR/ihkosctl 0 clear_kmsg
|
||||||
echo 'C840T03: NG (kmemleak)'
|
sudo dmesg -c > /dev/null
|
||||||
ng=1
|
$BINDIR/mcexec ./C840T03
|
||||||
fi
|
sleep 3
|
||||||
if dmesg | grep 'remote_page_fault:interrupted. -512' > /dev/null 2>&1; then
|
rpf=`dmesg | grep 'remote_page_fault:interrupted. -512'`
|
||||||
echo 'C840T03: WARN (remote_page_fault)'
|
offload=` $SBINDIR/ihkosctl 0 kmsg | grep 'is dead, terminate()'`
|
||||||
ng=1
|
sudo $SBINDIR/mcstop+release.sh
|
||||||
fi
|
sudo sh -c 'echo scan > /sys/kernel/debug/kmemleak'
|
||||||
if ./ihkosctl 0 kmsg | grep 'is dead, terminate()' > /dev/null 2>&1; then
|
if [ x"$rpf" != x ]; then
|
||||||
echo 'C840T03: WARN (syscall offloading)'
|
echo '*** C840T03: WARN (remote_page_fault)'
|
||||||
ng=1
|
ng=1
|
||||||
fi
|
elif [ x"$offload" != x ]; then
|
||||||
if [ $ng = 0 ]; then
|
echo '*** C840T03: WARN (syscall offloading)'
|
||||||
echo C840T03: OK
|
ng=1
|
||||||
fi
|
elif sudo cat /sys/kernel/debug/kmemleak | tee C840T03.kmemleak | grep 'mcctrl'; then
|
||||||
|
echo '*** C840T03: NG (kmemleak)'
|
||||||
|
ng=1
|
||||||
|
b=1
|
||||||
|
fi
|
||||||
|
if [ $ng = 0 ]; then
|
||||||
|
echo '*** C840T03: OK'
|
||||||
|
b=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
echo 'C840T04... '
|
echo 'C840T04... '
|
||||||
ng=0
|
b=
|
||||||
sync
|
while [ x$b = x ]; do
|
||||||
sudo /sbin/sysctl vm.drop_caches=3 > /dev/null 2>&1
|
ng=0
|
||||||
./ihkosctl 0 clear_kmsg
|
sync
|
||||||
sudo dmesg -c > /dev/null
|
sudo /sbin/sysctl vm.drop_caches=3 > /dev/null 2>&1
|
||||||
sudo sh -c 'echo clear > /sys/kernel/debug/kmemleak'
|
sudo sh -c 'echo clear > /sys/kernel/debug/kmemleak'
|
||||||
timeout -s 9 2 ./mcexec ./C840T04
|
sudo $SBINDIR/mcreboot.sh $BOOTPARAM
|
||||||
sleep 2
|
$SBINDIR/ihkosctl 0 clear_kmsg
|
||||||
if [ `sudo cat /sys/kernel/debug/kmemleak | wc -l` != 0 ]; then
|
sudo dmesg -c > /dev/null
|
||||||
echo 'C840T04: NG (kmemleak)'
|
timeout -s 9 2 $BINDIR/mcexec ./C840T04
|
||||||
ng=1
|
sleep 3
|
||||||
fi
|
rpf=`dmesg | grep 'remote_page_fault:interrupted. -512'`
|
||||||
if ! dmesg | grep 'remote_page_fault:interrupted. -512' > /dev/null 2>&1; then
|
offload=` $SBINDIR/ihkosctl 0 kmsg | grep 'is dead, terminate()'`
|
||||||
echo 'C840T04: WARN (remote_page_fault)'
|
sudo $SBINDIR/mcstop+release.sh
|
||||||
ng=1
|
sudo sh -c 'echo scan > /sys/kernel/debug/kmemleak'
|
||||||
fi
|
if [ x"$rpf" = x ]; then
|
||||||
if ! ./ihkosctl 0 kmsg | grep 'is dead, terminate()' > /dev/null 2>&1; then
|
echo '*** C840T04: WARN (remote_page_fault)'
|
||||||
echo 'C840T04: WARN (syscall offloading)'
|
ng=1
|
||||||
ng=1
|
elif [ x"$offload" = x ]; then
|
||||||
fi
|
echo '*** C840T04: WARN (syscall offloading)'
|
||||||
if [ $ng = 0 ]; then
|
ng=1
|
||||||
echo C840T04: OK
|
elif sudo cat /sys/kernel/debug/kmemleak | tee C840T04.kmemleak | grep 'mcctrl'; then
|
||||||
fi
|
echo '*** C840T04: NG (kmemleak)'
|
||||||
|
ng=1
|
||||||
|
b=1
|
||||||
|
fi
|
||||||
|
if [ $ng = 0 ]; then
|
||||||
|
echo '*** C840T04: OK'
|
||||||
|
b=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
echo 'C840T05... '
|
echo 'C840T05... '
|
||||||
ng=0
|
b=
|
||||||
sync
|
while [ x$b = x ]; do
|
||||||
sudo /sbin/sysctl vm.drop_caches=3 > /dev/null 2>&1
|
ng=0
|
||||||
./ihkosctl 0 clear_kmsg
|
sync
|
||||||
sudo dmesg -c > /dev/null
|
sudo /sbin/sysctl vm.drop_caches=3 > /dev/null 2>&1
|
||||||
sudo sh -c 'echo clear > /sys/kernel/debug/kmemleak'
|
sudo sh -c 'echo clear > /sys/kernel/debug/kmemleak'
|
||||||
timeout -s 9 2 ./mcexec ./C840T05
|
sudo $SBINDIR/mcreboot.sh $BOOTPARAM
|
||||||
sleep 2
|
$SBINDIR/ihkosctl 0 clear_kmsg
|
||||||
if [ `sudo cat /sys/kernel/debug/kmemleak | wc -l` != 0 ]; then
|
sudo dmesg -c > /dev/null
|
||||||
echo 'C840T05: NG (kmemleak)'
|
timeout -s 9 2 $BINDIR/mcexec ./C840T05
|
||||||
ng=1
|
sleep 3
|
||||||
fi
|
rpf=`dmesg | grep 'remote_page_fault:interrupted. -512'`
|
||||||
if dmesg | grep 'remote_page_fault:interrupted. -512' > /dev/null 2>&1; then
|
offload=` $SBINDIR/ihkosctl 0 kmsg | grep 'is dead, terminate()'`
|
||||||
echo 'C840T05: WARN (remote_page_fault)'
|
sudo $SBINDIR/mcstop+release.sh
|
||||||
ng=1
|
sudo sh -c 'echo scan > /sys/kernel/debug/kmemleak'
|
||||||
fi
|
if [ x"$rpf" != x ]; then
|
||||||
if ! ./ihkosctl 0 kmsg | grep 'is dead, terminate()' > /dev/null 2>&1; then
|
echo '*** C840T05: WARN (remote_page_fault)'
|
||||||
echo 'C840T05: WARN (syscall offloading)'
|
ng=1
|
||||||
ng=1
|
elif [ x"$offload" = x ]; then
|
||||||
fi
|
echo '*** C840T05: WARN (syscall offloading)'
|
||||||
if [ $ng = 0 ]; then
|
ng=1
|
||||||
echo C840T05: OK
|
elif sudo cat /sys/kernel/debug/kmemleak | tee C840T05.kmemleak | grep 'mcctrl'; then
|
||||||
fi
|
echo '*** C840T05: NG (kmemleak)'
|
||||||
|
ng=1
|
||||||
|
b=1
|
||||||
|
fi
|
||||||
|
if [ $ng = 0 ]; then
|
||||||
|
echo '*** C840T05: OK'
|
||||||
|
b=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
echo 'C840T06... '
|
echo 'C840T06... '
|
||||||
ng=0
|
b=
|
||||||
sync
|
while [ x$b = x ]; do
|
||||||
sudo /sbin/sysctl vm.drop_caches=3 > /dev/null 2>&1
|
ng=0
|
||||||
./ihkosctl 0 clear_kmsg
|
sync
|
||||||
sudo dmesg -c > /dev/null
|
sudo /sbin/sysctl vm.drop_caches=3 > /dev/null 2>&1
|
||||||
sudo sh -c 'echo clear > /sys/kernel/debug/kmemleak'
|
sudo sh -c 'echo clear > /sys/kernel/debug/kmemleak'
|
||||||
timeout -s 9 2 ./mcexec ./C840T06
|
sudo $SBINDIR/mcreboot.sh $BOOTPARAM
|
||||||
sleep 2
|
$SBINDIR/ihkosctl 0 clear_kmsg
|
||||||
if [ `sudo cat /sys/kernel/debug/kmemleak | wc -l` != 0 ]; then
|
sudo dmesg -c > /dev/null
|
||||||
echo 'C840T06: NG (kmemleak)'
|
timeout -s 9 2 $BINDIR/mcexec ./C840T06
|
||||||
ng=1
|
sleep 3
|
||||||
fi
|
rpf=`dmesg | grep 'remote_page_fault:interrupted. -512'`
|
||||||
if dmesg | grep 'remote_page_fault:interrupted. -512' > /dev/null 2>&1; then
|
offload=` $SBINDIR/ihkosctl 0 kmsg | grep 'is dead, terminate()'`
|
||||||
echo 'C840T06: WARN (remote_page_fault)'
|
sudo $SBINDIR/mcstop+release.sh
|
||||||
ng=1
|
sudo sh -c 'echo scan > /sys/kernel/debug/kmemleak'
|
||||||
fi
|
if [ x"$rpf" != x ]; then
|
||||||
if ./ihkosctl 0 kmsg | grep 'is dead, terminate()' > /dev/null 2>&1; then
|
echo '*** C840T06: WARN (remote_page_fault)'
|
||||||
echo 'C840T06: WARN (syscall offloading)'
|
ng=1
|
||||||
ng=1
|
elif [ x"$offload" != x ]; then
|
||||||
fi
|
echo '*** C840T06: WARN (syscall offloading)'
|
||||||
if [ $ng = 0 ]; then
|
ng=1
|
||||||
echo C840T06: OK
|
elif sudo cat /sys/kernel/debug/kmemleak | tee C840T06.kmemleak | grep 'mcctrl'; then
|
||||||
fi
|
echo '*** C840T06: NG (kmemleak)'
|
||||||
|
ng=1
|
||||||
|
b=1
|
||||||
|
fi
|
||||||
|
if [ $ng = 0 ]; then
|
||||||
|
echo '*** C840T06: OK'
|
||||||
|
b=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
rm -f rpf.data rpf.out
|
||||||
|
|||||||
@@ -1,28 +1,40 @@
|
|||||||
スクリプトは Wed Jun 6 14:38:21 2018
|
Script started on Thu Jul 5 15:32:52 2018
|
||||||
に開始しました[?1034hbash-4.2$ sh C840.sh
|
[?1034hbash-4.2$ make test
|
||||||
|
gcc -o C840T01 C840T01.c -Wall -g
|
||||||
|
gcc -o C840T02 C840T02.c -Wall -g
|
||||||
|
gcc -o C840T03 C840T03.c -Wall -g
|
||||||
|
gcc -o C840T04 C840T04.c -Wall -g
|
||||||
|
gcc -o C840T05 C840T05.c -Wall -g
|
||||||
|
gcc -o C840T06 C840T06.c -Wall -g
|
||||||
|
sh ./C840.sh
|
||||||
|
1024+0 records in
|
||||||
|
1024+0 records out
|
||||||
|
1073741824 bytes (1.1 GB) copied, 23.8845 s, 45.0 MB/s
|
||||||
C840T01...
|
C840T01...
|
||||||
Terminate by signal 9
|
Terminate by signal 9
|
||||||
C840.sh: 14 行: 22464 強制終了 ./mcexec ./C840T01
|
./C840.sh: line 67: 8889 Killed $BINDIR/mcexec ./C840T01
|
||||||
C840T01: OK
|
*** C840T01: WARN (remote_page_fault)
|
||||||
|
Terminate by signal 9
|
||||||
|
./C840.sh: line 67: 9231 Killed $BINDIR/mcexec ./C840T01
|
||||||
|
*** C840T01: OK
|
||||||
C840T02...
|
C840T02...
|
||||||
Terminate by signal 9
|
Terminate by signal 9
|
||||||
C840.sh: 38 行: 22500 強制終了 ./mcexec ./C840T02
|
./C840.sh: line 100: 9580 Killed $BINDIR/mcexec ./C840T02
|
||||||
C840T02: OK
|
*** C840T02: OK
|
||||||
C840T03...
|
C840T03...
|
||||||
Terminate by signal 9
|
Terminate by signal 9
|
||||||
C840.sh: 62 行: 22535 強制終了 ./mcexec ./C840T03
|
./C840.sh: line 133: 9949 Killed $BINDIR/mcexec ./C840T03
|
||||||
C840T03: OK
|
*** C840T03: OK
|
||||||
C840T04...
|
C840T04...
|
||||||
C840.sh: 86 行: 22570 強制終了 timeout -s 9 2 ./mcexec ./C840T04
|
./C840.sh: line 166: 10301 Killed timeout -s 9 2 $BINDIR/mcexec ./C840T04
|
||||||
C840T04: OK
|
*** C840T04: OK
|
||||||
C840T05...
|
C840T05...
|
||||||
C840.sh: 111 行: 22598 強制終了 timeout -s 9 2 ./mcexec ./C840T05
|
./C840.sh: line 199: 10644 Killed timeout -s 9 2 $BINDIR/mcexec ./C840T05
|
||||||
C840T05: OK
|
*** C840T05: OK
|
||||||
C840T06...
|
C840T06...
|
||||||
C840.sh: 136 行: 22626 強制終了 timeout -s 9 2 ./mcexec ./C840T06
|
./C840.sh: line 232: 10975 Killed timeout -s 9 2 $BINDIR/mcexec ./C840T06
|
||||||
C840T06: OK
|
*** C840T06: OK
|
||||||
bash-4.2$ exit
|
bash-4.2$ exit
|
||||||
exit
|
exit
|
||||||
|
|
||||||
スクリプトは Wed Jun 6 14:38:51 2018
|
Script done on Thu Jul 5 15:46:17 2018
|
||||||
に終了しました
|
|
||||||
|
|||||||
33
test/issues/840/Makefile
Normal file
33
test/issues/840/Makefile
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
CC=gcc
|
||||||
|
TARGET= C840T01 \
|
||||||
|
C840T02 \
|
||||||
|
C840T03 \
|
||||||
|
C840T04 \
|
||||||
|
C840T05 \
|
||||||
|
C840T06
|
||||||
|
|
||||||
|
all:: $(TARGET)
|
||||||
|
|
||||||
|
C840T01: C840T01.c
|
||||||
|
$(CC) -o C840T01 C840T01.c -Wall -g
|
||||||
|
|
||||||
|
C840T02: C840T02.c
|
||||||
|
$(CC) -o C840T02 C840T02.c -Wall -g
|
||||||
|
|
||||||
|
C840T03: C840T03.c
|
||||||
|
$(CC) -o C840T03 C840T03.c -Wall -g
|
||||||
|
|
||||||
|
C840T04: C840T04.c
|
||||||
|
$(CC) -o C840T04 C840T04.c -Wall -g
|
||||||
|
|
||||||
|
C840T05: C840T05.c
|
||||||
|
$(CC) -o C840T05 C840T05.c -Wall -g
|
||||||
|
|
||||||
|
C840T06: C840T06.c
|
||||||
|
$(CC) -o C840T06 C840T06.c -Wall -g
|
||||||
|
|
||||||
|
test:: $(TARGET)
|
||||||
|
sh ./C840.sh
|
||||||
|
|
||||||
|
clean::
|
||||||
|
rm -f *.o $(TARGET) *.kmemleak rpf.data rpf.out
|
||||||
28
test/issues/840/README
Normal file
28
test/issues/840/README
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
【Issue#840 動作確認】
|
||||||
|
□ テスト内容
|
||||||
|
以下の条件のとき、mcctrlのシステムコール処理でメモリリークしないことを確認。
|
||||||
|
C840T01 オフロード中のシステムコールでRPF処理中にMcKプロセスがSIGKILLを受ける
|
||||||
|
C840T02 オフロード中のシステムコールでRPF処理外にMcKプロセスがSIGKILLを受ける
|
||||||
|
C840T03 システムコールオフロードしていないときにMcKプロセスがSIGKILLを受ける
|
||||||
|
C840T04 オフロード中のシステムコールでRPF処理中にmcexecがSIGKILLを受ける
|
||||||
|
C840T05 オフロード中のシステムコールでRPF処理外にmcexecがSIGKILLを受ける
|
||||||
|
C840T06 システムコールオフロードしていないときにmcexecがSIGKILLを受ける
|
||||||
|
|
||||||
|
□ 実行手順
|
||||||
|
$ make test
|
||||||
|
|
||||||
|
実行できない場合は、C840.shの以下の行を適切に書き換えた後に実行。
|
||||||
|
BIN= mcexec が存在するパス
|
||||||
|
SBIN= mcreboot.sh が存在するパス
|
||||||
|
|
||||||
|
※注意
|
||||||
|
・メモリリークのテストのため、kmemleakが使用可能なLinuxカーネルを用いること。
|
||||||
|
kmemleakが使用不可の場合、make testは実行できない。
|
||||||
|
・シグナルを受けるタイミングによっては、テスト条件を満たさないことがある
|
||||||
|
(WARNINGを表示)。
|
||||||
|
WARNINGの場合、make testはテスト条件を満たすまで当該テストを繰り返す。
|
||||||
|
|
||||||
|
□ 実行結果
|
||||||
|
C840.txt 参照。
|
||||||
|
全ての項目が OK となっていることを確認。
|
||||||
|
|
||||||
Reference in New Issue
Block a user