From: Jan Kara <jack@suse.cz>
To: fstests@vger.kernel.org
Cc: Jan Kara <jack@suse.cz>
Subject: [PATCH] Make ./new work for non-root user
Date: Thu, 24 May 2018 20:30:55 +0200 [thread overview]
Message-ID: <20180524183055.16031-1-jack@suse.cz> (raw)
Currently 'new' script sources common/config which tries to find mkfs
and fails if not found (which is likely for non-root user). This is
inconvenient as development usually does not happen as root. In fact the
vast majority of setup in common/config and common/rc is not necessary
for 'new'. Split out the necessary bits into new common/config-base and
use it in 'new'. Cleanup common/rc and common/config now that it's only
used from 'check'.
Signed-off-by: Jan Kara <jack@suse.cz>
---
check | 16 +++++-----------
common/config | 16 ++--------------
common/config-base | 21 +++++++++++++++++++++
common/rc | 27 ++-------------------------
new | 2 +-
5 files changed, 31 insertions(+), 51 deletions(-)
create mode 100644 common/config-base
diff --git a/check b/check
index 96198ac4714e..4c6e8285bc16 100755
--- a/check
+++ b/check
@@ -331,10 +331,11 @@ while [ $# -gt 0 ]; do
shift
done
-# we need common/config, source it after processing args, overlay needs FSTYP
-# set before sourcing common/config
-if ! . ./common/config; then
- echo "$iam: failed to source common/config"
+# we need common/rc, that also sources common/config. We need to source it
+# after processing args, overlay needs FSTYP set before sourcing common/config
+if ! . ./common/rc
+then
+ echo "check: failed to source common/rc"
exit 1
fi
@@ -374,13 +375,6 @@ elif [ -z "$GROUP_LIST" ]; then
GROUP_LIST="auto"
fi
-# we need common/rc
-if ! . ./common/rc
-then
- echo "check: failed to source common/rc"
- exit 1
-fi
-
if [ `id -u` -ne 0 ]
then
echo "check: QA must be run as root"
diff --git a/common/config b/common/config
index af360cefc804..fa07a6799824 100644
--- a/common/config
+++ b/common/config
@@ -47,6 +47,8 @@
# validity or mountedness.
#
+. common/config-base
+
# all tests should use a common language setting to prevent golden
# output mismatches.
export LANG=C
@@ -88,12 +90,6 @@ export LOCAL_CONFIGURE_OPTIONS=${LOCAL_CONFIGURE_OPTIONS:=--enable-readline=yes}
export RECREATE_TEST_DEV=false
-# $1 = prog to look for
-set_prog_path()
-{
- type -P $1
-}
-
# Handle mkfs.$fstyp which does (or does not) require -f to overwrite
set_mkfs_prog_path_with_opts()
{
@@ -132,9 +128,6 @@ export FSSTRESS_PROG="./ltp/fsstress"
export PERL_PROG="`set_prog_path perl`"
[ "$PERL_PROG" = "" ] && _fatal "perl not found"
-export AWK_PROG="`set_prog_path awk`"
-[ "$AWK_PROG" = "" ] && _fatal "awk not found"
-
export SED_PROG="`set_prog_path sed`"
[ "$SED_PROG" = "" ] && _fatal "sed not found"
@@ -271,11 +264,6 @@ fi
rm -f /tmp/crc_check.img
export XFS_MKFS_HAS_NO_META_SUPPORT
-# new doesn't need config file parsed, we can stop here
-if [ "$iam" == "new" ]; then
- return 0
-fi
-
_mount_opts()
{
case $FSTYP in
diff --git a/common/config-base b/common/config-base
new file mode 100644
index 000000000000..5d8a858160af
--- /dev/null
+++ b/common/config-base
@@ -0,0 +1,21 @@
+##/bin/bash
+
+# Valid test names start with 3 digits "NNN":
+# "[0-9]\{3\}"
+# followed by an optional "-":
+# "-\?"
+# followed by an optional combination of alphanumeric and "-" chars:
+# "[[:alnum:]-]*"
+# e.g. 999-the-mark-of-fstests
+#
+VALID_TEST_ID="[0-9]\{3\}"
+VALID_TEST_NAME="$VALID_TEST_ID-\?[[:alnum:]-]*"
+
+# $1 = prog to look for
+set_prog_path()
+{
+ type -P $1
+}
+
+export AWK_PROG="`set_prog_path awk`"
+[ "$AWK_PROG" = "" ] && _fatal "awk not found"
diff --git a/common/rc b/common/rc
index ffe5323603eb..7368e2e12988 100644
--- a/common/rc
+++ b/common/rc
@@ -20,18 +20,9 @@
# Mountain View, CA 94043, USA, or: http://www.sgi.com
#-----------------------------------------------------------------------
-BC=$(which bc 2> /dev/null) || BC=
+. common/config
-# Valid test names start with 3 digits "NNN":
-# "[0-9]\{3\}"
-# followed by an optional "-":
-# "-\?"
-# followed by an optional combination of alphanumeric and "-" chars:
-# "[[:alnum:]-]*"
-# e.g. 999-the-mark-of-fstests
-#
-VALID_TEST_ID="[0-9]\{3\}"
-VALID_TEST_NAME="$VALID_TEST_ID-\?[[:alnum:]-]*"
+BC=$(which bc 2> /dev/null) || BC=
# Some tests are not relevant or functional when testing XFS realtime
# subvolumes along with the rtinherit=1 mkfs option. In these cases,
@@ -110,16 +101,6 @@ _ls_l()
ls -l $* | sed "s/\(^[-rwxdlbcpsStT]*\)\. /\1 /" | grep -v 'lost+found'
}
-# we need common/config
-if [ "$iam" != "check" ]
-then
- if ! . ./common/config
- then
- echo "$iam: failed to source common/config"
- exit 1
- fi
-fi
-
_dump_err()
{
_err_msg="$*"
@@ -3560,10 +3541,6 @@ _disable_dmesg_check()
init_rc()
{
- if [ "$iam" == new ]
- then
- return
- fi
# make some further configuration checks here
if [ "$TEST_DEV" = "" ]
then
diff --git a/new b/new
index 4eacccd3bf8b..2b322b2fdfb3 100755
--- a/new
+++ b/new
@@ -23,7 +23,7 @@
# generic initialization
iam=new
-. ./common/rc
+. ./common/config-base
trap "rm -f /tmp/$$.; exit" 0 1 2 3 15
--
2.13.6
next reply other threads:[~2018-05-24 18:31 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-24 18:30 Jan Kara [this message]
2018-05-25 1:30 ` [PATCH] Make ./new work for non-root user Dave Chinner
2018-05-28 9:37 ` Jan Kara
2018-05-29 1:16 ` Dave Chinner
2018-05-29 1:39 ` Dave Chinner
2018-05-29 2:01 ` Dave Chinner
2018-05-29 16:36 ` Jan Kara
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180524183055.16031-1-jack@suse.cz \
--to=jack@suse.cz \
--cc=fstests@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox