diff mbox series

[08/13] fstests: convert nextid to use automatic group generation

Message ID 162317280590.653489.10114638028601363399.stgit@locust (mailing list archive)
State Superseded, archived
Headers show
Series fstests: move test group lists into test files | expand

Commit Message

Darrick J. Wong June 8, 2021, 5:20 p.m. UTC
From: Darrick J. Wong <djwong@kernel.org>

Convert the nextid script to use the automatic group file generation to
figure out the next available test id.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
 tools/nextid |    1 -
 tools/nextid |   39 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 1 deletion(-)
 delete mode 120000 tools/nextid
 create mode 100755 tools/nextid

Comments

Chandan Babu R June 11, 2021, 6:31 a.m. UTC | #1
On 08 Jun 2021 at 22:50, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@kernel.org>
>
> Convert the nextid script to use the automatic group file generation to
> figure out the next available test id.

Looks good to me.

Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>

>
> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> ---
>  tools/nextid |    1 -
>  tools/nextid |   39 +++++++++++++++++++++++++++++++++++++++
>  2 files changed, 39 insertions(+), 1 deletion(-)
>  delete mode 120000 tools/nextid
>  create mode 100755 tools/nextid
>
>
> diff --git a/tools/nextid b/tools/nextid
> deleted file mode 120000
> index 5c31d602..00000000
> --- a/tools/nextid
> +++ /dev/null
> @@ -1 +0,0 @@
> -sort-group
> \ No newline at end of file
> diff --git a/tools/nextid b/tools/nextid
> new file mode 100755
> index 00000000..a65348e8
> --- /dev/null
> +++ b/tools/nextid
> @@ -0,0 +1,39 @@
> +#!/bin/bash
> +
> +# Compute the next available test id in a given test directory.
> +
> +if [ -z "$1" ] || [ "$1" = "--help" ] || [ -n "$2" ] || [ ! -d "tests/$1/" ]; then
> +	echo "Usage: $0 test_dir"
> +	exit 1
> +fi
> +
> +. ./common/test_names
> +
> +line=0
> +i=0
> +eof=1
> +
> +while read found other_junk;
> +do
> +	line=$((line+1))
> +	if [ -z "$found" ] || [ "$found" == "#" ]; then
> +		continue
> +	elif ! echo "$found" | grep -q "^$VALID_TEST_NAME$"; then
> +		# this one is for tests not named by a number
> +		continue
> +	fi
> +	i=$((i+1))
> +	id=`printf "%03d" $i`
> +	if [ "$id" != "$found" ]; then
> +		eof=0
> +		break
> +	fi
> +done < <(cd "tests/$1/" ; ../../tools/mkgroupfile | tr - ' ')
> +
> +if [ $eof -eq 1 ]; then
> +   line=$((line+1))
> +   i=$((i+1))
> +   id=`printf "%03d" $i`
> +fi
> +
> +echo "$1/$id"
Eric Biggers June 11, 2021, 11:46 p.m. UTC | #2
On Tue, Jun 08, 2021 at 10:20:05AM -0700, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@kernel.org>
> 
> Convert the nextid script to use the automatic group file generation to
> figure out the next available test id.
> 
> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> ---
>  tools/nextid |    1 -
>  tools/nextid |   39 +++++++++++++++++++++++++++++++++++++++
>  2 files changed, 39 insertions(+), 1 deletion(-)
>  delete mode 120000 tools/nextid
>  create mode 100755 tools/nextid
> 
> 
> diff --git a/tools/nextid b/tools/nextid
> deleted file mode 120000
> index 5c31d602..00000000
> --- a/tools/nextid
> +++ /dev/null
> @@ -1 +0,0 @@
> -sort-group
> \ No newline at end of file
> diff --git a/tools/nextid b/tools/nextid
> new file mode 100755
> index 00000000..a65348e8
> --- /dev/null
> +++ b/tools/nextid
> @@ -0,0 +1,39 @@
> +#!/bin/bash
> +
> +# Compute the next available test id in a given test directory.
> +
> +if [ -z "$1" ] || [ "$1" = "--help" ] || [ -n "$2" ] || [ ! -d "tests/$1/" ]; then
> +	echo "Usage: $0 test_dir"
> +	exit 1
> +fi

[ $# != 1 ] would be simpler than [ -z "$1" ] || [ -n "$2" ].

> +line=0

The 'line' variable isn't needed.

> +i=0
> +eof=1
> +
> +while read found other_junk;
> +do
> +	line=$((line+1))
> +	if [ -z "$found" ] || [ "$found" == "#" ]; then
> +		continue
> +	elif ! echo "$found" | grep -q "^$VALID_TEST_NAME$"; then
> +		# this one is for tests not named by a number
> +		continue
> +	fi
> +	i=$((i+1))
> +	id=`printf "%03d" $i`
> +	if [ "$id" != "$found" ]; then
> +		eof=0
> +		break
> +	fi
> +done < <(cd "tests/$1/" ; ../../tools/mkgroupfile | tr - ' ')

The first token matching $VALID_TEST_NAME already implies that it is non-empty
and not "#".  Also, this could be handled by piping to grep:

while read found other_junk; do
	i=$((i+1))
	id=`printf "%03d" $i`
	if [ "$id" != "$found" ]; then
		eof=0
		break
	fi
done < <(cd "tests/$1/" ; ../../tools/mkgroupfile | \
         grep "^$VALID_TEST_NAME\>" | tr - ' ')

- Eric
Darrick J. Wong June 12, 2021, 12:40 a.m. UTC | #3
On Fri, Jun 11, 2021 at 04:46:27PM -0700, Eric Biggers wrote:
> On Tue, Jun 08, 2021 at 10:20:05AM -0700, Darrick J. Wong wrote:
> > From: Darrick J. Wong <djwong@kernel.org>
> > 
> > Convert the nextid script to use the automatic group file generation to
> > figure out the next available test id.
> > 
> > Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> > ---
> >  tools/nextid |    1 -
> >  tools/nextid |   39 +++++++++++++++++++++++++++++++++++++++
> >  2 files changed, 39 insertions(+), 1 deletion(-)
> >  delete mode 120000 tools/nextid
> >  create mode 100755 tools/nextid
> > 
> > 
> > diff --git a/tools/nextid b/tools/nextid
> > deleted file mode 120000
> > index 5c31d602..00000000
> > --- a/tools/nextid
> > +++ /dev/null
> > @@ -1 +0,0 @@
> > -sort-group
> > \ No newline at end of file
> > diff --git a/tools/nextid b/tools/nextid
> > new file mode 100755
> > index 00000000..a65348e8
> > --- /dev/null
> > +++ b/tools/nextid
> > @@ -0,0 +1,39 @@
> > +#!/bin/bash
> > +
> > +# Compute the next available test id in a given test directory.
> > +
> > +if [ -z "$1" ] || [ "$1" = "--help" ] || [ -n "$2" ] || [ ! -d "tests/$1/" ]; then
> > +	echo "Usage: $0 test_dir"
> > +	exit 1
> > +fi
> 
> [ $# != 1 ] would be simpler than [ -z "$1" ] || [ -n "$2" ].
> 
> > +line=0
> 
> The 'line' variable isn't needed.

Both fixed.

> 
> > +i=0
> > +eof=1
> > +
> > +while read found other_junk;
> > +do
> > +	line=$((line+1))
> > +	if [ -z "$found" ] || [ "$found" == "#" ]; then
> > +		continue
> > +	elif ! echo "$found" | grep -q "^$VALID_TEST_NAME$"; then
> > +		# this one is for tests not named by a number
> > +		continue
> > +	fi
> > +	i=$((i+1))
> > +	id=`printf "%03d" $i`
> > +	if [ "$id" != "$found" ]; then
> > +		eof=0
> > +		break
> > +	fi
> > +done < <(cd "tests/$1/" ; ../../tools/mkgroupfile | tr - ' ')
> 
> The first token matching $VALID_TEST_NAME already implies that it is non-empty
> and not "#".  Also, this could be handled by piping to grep:
> 
> while read found other_junk; do
> 	i=$((i+1))
> 	id=`printf "%03d" $i`
> 	if [ "$id" != "$found" ]; then
> 		eof=0
> 		break
> 	fi
> done < <(cd "tests/$1/" ; ../../tools/mkgroupfile | \
>          grep "^$VALID_TEST_NAME\>" | tr - ' ')

I'm glad your regexfu is higher than mine.  Thanks for the suggestions!

--D

> 
> - Eric
Allison Henderson June 14, 2021, 5:38 a.m. UTC | #4
On 6/8/21 10:20 AM, Darrick J. Wong wrote:
> From: Darrick J. Wong <djwong@kernel.org>
> 
> Convert the nextid script to use the automatic group file generation to
> figure out the next available test id.
> 
> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
With other review nits addressed
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>

> ---
>   tools/nextid |    1 -
>   tools/nextid |   39 +++++++++++++++++++++++++++++++++++++++
>   2 files changed, 39 insertions(+), 1 deletion(-)
>   delete mode 120000 tools/nextid
>   create mode 100755 tools/nextid
> 
> 
> diff --git a/tools/nextid b/tools/nextid
> deleted file mode 120000
> index 5c31d602..00000000
> --- a/tools/nextid
> +++ /dev/null
> @@ -1 +0,0 @@
> -sort-group
> \ No newline at end of file
> diff --git a/tools/nextid b/tools/nextid
> new file mode 100755
> index 00000000..a65348e8
> --- /dev/null
> +++ b/tools/nextid
> @@ -0,0 +1,39 @@
> +#!/bin/bash
> +
> +# Compute the next available test id in a given test directory.
> +
> +if [ -z "$1" ] || [ "$1" = "--help" ] || [ -n "$2" ] || [ ! -d "tests/$1/" ]; then
> +	echo "Usage: $0 test_dir"
> +	exit 1
> +fi
> +
> +. ./common/test_names
> +
> +line=0
> +i=0
> +eof=1
> +
> +while read found other_junk;
> +do
> +	line=$((line+1))
> +	if [ -z "$found" ] || [ "$found" == "#" ]; then
> +		continue
> +	elif ! echo "$found" | grep -q "^$VALID_TEST_NAME$"; then
> +		# this one is for tests not named by a number
> +		continue
> +	fi
> +	i=$((i+1))
> +	id=`printf "%03d" $i`
> +	if [ "$id" != "$found" ]; then
> +		eof=0
> +		break
> +	fi
> +done < <(cd "tests/$1/" ; ../../tools/mkgroupfile | tr - ' ')
> +
> +if [ $eof -eq 1 ]; then
> +   line=$((line+1))
> +   i=$((i+1))
> +   id=`printf "%03d" $i`
> +fi
> +
> +echo "$1/$id"
>
diff mbox series

Patch

diff --git a/tools/nextid b/tools/nextid
deleted file mode 120000
index 5c31d602..00000000
--- a/tools/nextid
+++ /dev/null
@@ -1 +0,0 @@ 
-sort-group
\ No newline at end of file
diff --git a/tools/nextid b/tools/nextid
new file mode 100755
index 00000000..a65348e8
--- /dev/null
+++ b/tools/nextid
@@ -0,0 +1,39 @@ 
+#!/bin/bash
+
+# Compute the next available test id in a given test directory.
+
+if [ -z "$1" ] || [ "$1" = "--help" ] || [ -n "$2" ] || [ ! -d "tests/$1/" ]; then
+	echo "Usage: $0 test_dir"
+	exit 1
+fi
+
+. ./common/test_names
+
+line=0
+i=0
+eof=1
+
+while read found other_junk;
+do
+	line=$((line+1))
+	if [ -z "$found" ] || [ "$found" == "#" ]; then
+		continue
+	elif ! echo "$found" | grep -q "^$VALID_TEST_NAME$"; then
+		# this one is for tests not named by a number
+		continue
+	fi
+	i=$((i+1))
+	id=`printf "%03d" $i`
+	if [ "$id" != "$found" ]; then
+		eof=0
+		break
+	fi
+done < <(cd "tests/$1/" ; ../../tools/mkgroupfile | tr - ' ')
+
+if [ $eof -eq 1 ]; then
+   line=$((line+1))
+   i=$((i+1))
+   id=`printf "%03d" $i`
+fi
+
+echo "$1/$id"