From: Sami Kerola Date: Sat, 19 Jan 2013 00:09:10 +0000 (+0000) Subject: tests: add ipcmk(1) and ipcrm(1) checks X-Git-Tag: v2.23-rc1~310 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3b0fa2fa22d5f04b3d50de7d549b81da73a4063b;p=thirdparty%2Futil-linux.git tests: add ipcmk(1) and ipcrm(1) checks Signed-off-by: Sami Kerola Signed-off-by: Karel Zak --- diff --git a/tests/commands.sh b/tests/commands.sh index 62c62f4c09..8623e65fc4 100644 --- a/tests/commands.sh +++ b/tests/commands.sh @@ -81,3 +81,5 @@ TS_CMD_SETARCH=${TS_CMD_SETARCH-"$top_builddir/setarch"} TS_CMD_FALLOCATE=${TS_CMD_FALLOCATE-"$top_builddir/fallocate"} TS_CMD_ISOSIZE=${TS_CMD_ISOSIZE-"$top_builddir/isosize"} TS_CMD_WHEREIS=${TS_CMD_WHEREIS-"$top_builddir/whereis"} +TS_CMD_IPCMK=${TS_CMD_IPCMK-"$top_builddir/ipcmk"} +TS_CMD_IPCRM=${TS_CMD_IPCRM-"$top_builddir/ipcrm"} diff --git a/tests/expected/ipcs/mk-rm-msg b/tests/expected/ipcs/mk-rm-msg new file mode 100644 index 0000000000..8a82b9470e --- /dev/null +++ b/tests/expected/ipcs/mk-rm-msg @@ -0,0 +1,2 @@ +Message queue id: +Message queue id: diff --git a/tests/expected/ipcs/mk-rm-sem b/tests/expected/ipcs/mk-rm-sem new file mode 100644 index 0000000000..a9c3f469c6 --- /dev/null +++ b/tests/expected/ipcs/mk-rm-sem @@ -0,0 +1,2 @@ +Semaphore id: +Semaphore id: diff --git a/tests/expected/ipcs/mk-rm-shm b/tests/expected/ipcs/mk-rm-shm new file mode 100644 index 0000000000..49d5867281 --- /dev/null +++ b/tests/expected/ipcs/mk-rm-shm @@ -0,0 +1,2 @@ +Shared memory id: +Shared memory id: diff --git a/tests/ts/ipcs/functions.sh b/tests/ts/ipcs/functions.sh index 24ea445e43..297d34f765 100644 --- a/tests/ts/ipcs/functions.sh +++ b/tests/ts/ipcs/functions.sh @@ -81,3 +81,20 @@ function ipcs_limits_check { done } +# Read 'ipcmk' output, such as 'Shared memory id: 22839299' and +# write the message to two files: (1) something what one can +# compare as test output, and (2) id which ipcrm later will use +# for deletion. +ipcmk_output_handler() { + awk -v text=$1 -v num=$2 ' + function isnum(x) { + return(x == x + 0) + } + { + if (isnum($NF)) { + print $NF >> num + $NF="" + } + print $0 >> text + }' +} diff --git a/tests/ts/ipcs/mk-rm-msg b/tests/ts/ipcs/mk-rm-msg new file mode 100755 index 0000000000..529d86142d --- /dev/null +++ b/tests/ts/ipcs/mk-rm-msg @@ -0,0 +1,36 @@ +#!/bin/bash + +# This file is part of util-linux. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +TS_TOPDIR="$(dirname $0)/../.." +TS_DESC="mk-rm-msg" + +. $TS_TOPDIR/functions.sh +ts_init "$*" + +. $TS_SELF/functions.sh + +rm -f $TS_OUTDIR/id-msg +$TS_CMD_IPCMK -Q 2>>$TS_OUTPUT | ipcmk_output_handler $TS_OUTPUT $TS_OUTDIR/id-msg +$TS_CMD_IPCRM -q $(cat $TS_OUTDIR/id-msg) >>$TS_OUTPUT 2>&1 + +rm -f $TS_OUTDIR/id-msg +$TS_CMD_IPCMK -Q 2>>$TS_OUTPUT | ipcmk_output_handler $TS_OUTPUT $TS_OUTDIR/id-msg +$TS_CMD_IPCRM -Q $( + $TS_CMD_IPCS -q | + awk -v id=$(cat $TS_OUTDIR/id-msg) '{if ($2 == id){print $1}}' +) >>$TS_OUTPUT 2>&1 + +rm -f $TS_OUTDIR/id-msg + +ts_finalize diff --git a/tests/ts/ipcs/mk-rm-sem b/tests/ts/ipcs/mk-rm-sem new file mode 100755 index 0000000000..2eb149d5fa --- /dev/null +++ b/tests/ts/ipcs/mk-rm-sem @@ -0,0 +1,36 @@ +#!/bin/bash + +# This file is part of util-linux. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +TS_TOPDIR="$(dirname $0)/../.." +TS_DESC="mk-rm-sem" + +. $TS_TOPDIR/functions.sh +ts_init "$*" + +. $TS_SELF/functions.sh + +rm -f $TS_OUTDIR/id-sem +$TS_CMD_IPCMK -S 1 2>>$TS_OUTPUT | ipcmk_output_handler $TS_OUTPUT $TS_OUTDIR/id-sem +$TS_CMD_IPCRM -s $(cat $TS_OUTDIR/id-sem) >>$TS_OUTPUT 2>&1 + +rm -f $TS_OUTDIR/id-sem +$TS_CMD_IPCMK -S 1 2>>$TS_OUTPUT | ipcmk_output_handler $TS_OUTPUT $TS_OUTDIR/id-sem +$TS_CMD_IPCRM -S $( + $TS_CMD_IPCS -s | + awk -v id=$(cat $TS_OUTDIR/id-sem) '{if ($2 == id){print $1}}' +) >>$TS_OUTPUT 2>&1 + +rm -f $TS_OUTDIR/id-sem + +ts_finalize diff --git a/tests/ts/ipcs/mk-rm-shm b/tests/ts/ipcs/mk-rm-shm new file mode 100755 index 0000000000..f2bc33ec57 --- /dev/null +++ b/tests/ts/ipcs/mk-rm-shm @@ -0,0 +1,36 @@ +#!/bin/bash + +# This file is part of util-linux. +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This file is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +TS_TOPDIR="$(dirname $0)/../.." +TS_DESC="mk-rm-shm" + +. $TS_TOPDIR/functions.sh +ts_init "$*" + +. $TS_SELF/functions.sh + +rm -f $TS_OUTDIR/id-shm +$TS_CMD_IPCMK -M 1 2>>$TS_OUTPUT | ipcmk_output_handler $TS_OUTPUT $TS_OUTDIR/id-shm +$TS_CMD_IPCRM -m $(cat $TS_OUTDIR/id-shm) >>$TS_OUTPUT 2>&1 +rm -f $TS_OUTDIR/id-shm + +$TS_CMD_IPCMK -M 1 2>>$TS_OUTPUT | ipcmk_output_handler $TS_OUTPUT $TS_OUTDIR/id-shm +$TS_CMD_IPCRM -M $( + $TS_CMD_IPCS -m | + awk -v id=$(cat $TS_OUTDIR/id-shm) '{if ($2 == id){print $1}}' +) >>$TS_OUTPUT 2>&1 + +rm -f $TS_OUTDIR/id-shm + +ts_finalize