From 3b0fa2fa22d5f04b3d50de7d549b81da73a4063b Mon Sep 17 00:00:00 2001 From: Sami Kerola Date: Sat, 19 Jan 2013 00:09:10 +0000 Subject: tests: add ipcmk(1) and ipcrm(1) checks Signed-off-by: Sami Kerola Signed-off-by: Karel Zak --- tests/commands.sh | 2 ++ tests/expected/ipcs/mk-rm-msg | 2 ++ tests/expected/ipcs/mk-rm-sem | 2 ++ tests/expected/ipcs/mk-rm-shm | 2 ++ tests/ts/ipcs/functions.sh | 17 +++++++++++++++++ tests/ts/ipcs/mk-rm-msg | 36 ++++++++++++++++++++++++++++++++++++ tests/ts/ipcs/mk-rm-sem | 36 ++++++++++++++++++++++++++++++++++++ tests/ts/ipcs/mk-rm-shm | 36 ++++++++++++++++++++++++++++++++++++ 8 files changed, 133 insertions(+) create mode 100644 tests/expected/ipcs/mk-rm-msg create mode 100644 tests/expected/ipcs/mk-rm-sem create mode 100644 tests/expected/ipcs/mk-rm-shm create mode 100755 tests/ts/ipcs/mk-rm-msg create mode 100755 tests/ts/ipcs/mk-rm-sem create mode 100755 tests/ts/ipcs/mk-rm-shm (limited to 'tests') diff --git a/tests/commands.sh b/tests/commands.sh index 62c62f4c0..8623e65fc 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 000000000..8a82b9470 --- /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 000000000..a9c3f469c --- /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 000000000..49d586728 --- /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 24ea445e4..297d34f76 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 000000000..529d86142 --- /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 000000000..2eb149d5f --- /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 000000000..f2bc33ec5 --- /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 -- cgit v1.2.3-55-g7522