madvise: Support MADV_WIPEONFORK, MADV_KEEPONFORK and MADV_NORMAL

Change-Id: I1d4cf5affa580d7304dfdc34fa4f1707c0df617c
refs: #1374
This commit is contained in:
TOIDA,Suguru
2020-03-06 15:00:37 +09:00
parent d82ac31bc6
commit 3300e65efc
7 changed files with 131 additions and 2 deletions

20
test/issues/1374/README Normal file
View File

@ -0,0 +1,20 @@
/* REDME COPYRIGHT FUJITSU LIMITED 2020 */
ltp: madvise10: MADV_WIPEONFORKが期待通りに動作しない
https://postpeta.pccluster.org/redmine/issues/1374
テストセットREADME
(0) 事前準備
1. $HOME/.mck_test_configを用意する
(1) テスト実行方法
1. ./run.sh
(2) テスト項目詳細
LTPの下記項目を実行し期待通りに動作することを確認する
"test OK." が書き出されれば合格判定となる。具体例はresult.logを参照。
- madvise10
以上。

View File

@ -0,0 +1,29 @@
[root@hostname 1374]# ./run.sh
mcstop+release.sh ... done
mcreboot.sh -c 12-59 -m 512M@4 ... done
test run.
tst_test.c:1096: INFO: Timeout per run is 0h 05m 00s
madvise10.c:143: INFO: MADV_WIPEONFORK zeroes memory in child
madvise10.c:117: PASS: madvise(0x1000001c0000, 16384, 0x0)
madvise10.c:117: PASS: madvise(0x1000001c0000, 16384, 0x12)
madvise10.c:98: PASS: In PID 13482, Matched expected pattern
madvise10.c:143: INFO: MADV_WIPEONFORK with zero length does nothing
madvise10.c:117: PASS: madvise(0x1000001d0000, 0, 0x0)
madvise10.c:117: PASS: madvise(0x1000001d0000, 0, 0x12)
madvise10.c:98: PASS: In PID 13532, Matched expected pattern
madvise10.c:143: INFO: MADV_WIPEONFORK zeroes memory in grand-child
madvise10.c:117: PASS: madvise(0x1000001e0000, 16384, 0x0)
madvise10.c:117: PASS: madvise(0x1000001e0000, 16384, 0x12)
madvise10.c:98: PASS: In PID 13635, Matched expected pattern
madvise10.c:143: INFO: MADV_KEEPONFORK will undo MADV_WIPEONFORK
madvise10.c:117: PASS: madvise(0x1000001f0000, 16384, 0x12)
madvise10.c:117: PASS: madvise(0x1000001f0000, 16384, 0x13)
madvise10.c:98: PASS: In PID 13685, Matched expected pattern
Summary:
passed 12
failed 0
skipped 0
warnings 0
test OK.
mcstop+release.sh ... done

31
test/issues/1374/run.sh Executable file
View File

@ -0,0 +1,31 @@
#!/usr/bin/env bash
# run.sh COPYRIGHT FUJITSU LIMITED 2020
# load setting and booting mck.
USELTP=1
. ../../common.sh
chmod 777 /dev/mcos*
echo "test run."
ltp=`cat <<__EOL__
madvise10
__EOL__`
FAIL=0
for tp in $ltp
do
pushd ${LTPBIN} > /dev/null
${MCEXEC} ${LTPBIN}/${tp}
if [ $? -ne 0 ]; then
FAIL=1
fi
popd > /dev/null
done
if [ ${FAIL} -eq 1 ]; then
echo "test NG."
else
echo "test OK."
fi
mcstop