All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tests: replace perl usage with shell built-in
@ 2020-07-19 11:00 Andreas Dilger
  2020-10-01 14:58 ` Theodore Y. Ts'o
  0 siblings, 1 reply; 4+ messages in thread
From: Andreas Dilger @ 2020-07-19 11:00 UTC (permalink / raw)
  To: tytso; +Cc: linux-ext4, Andreas Dilger

A couple of tests use perl only for generating a string of
N characters long.  Instead of requiring perl to run a few
tests, use shell built-in commands and don't repeatedly run
a separate subshell just to get a string of characters.

Signed-off-by: Andreas Dilger <adilger@dilger.ca>
---
 tests/d_xattr_sorting/script    |  2 +-
 tests/f_badsymlinks2/mkimage.sh |  4 +++-
 tests/f_create_symlinks/script  | 12 ++++++------
 util/gen-sample-fs              |  4 +++-
 4 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/tests/d_xattr_sorting/script b/tests/d_xattr_sorting/script
index 866611502012..65c74840f517 100644
--- a/tests/d_xattr_sorting/script
+++ b/tests/d_xattr_sorting/script
@@ -22,7 +22,7 @@ echo Exit status is $status >> $OUT.new
 
 B=$(mktemp ${TMPDIR:-/tmp}/b.XXXXXX)
 
-perl -e 'print "x" x 256;' > $B
+printf 'x%.0s' {1..256} > $B
 
 echo "ea_set -f /tmp/b / security.SMEG64" >> $OUT.new
 $DEBUGFS -w -R "ea_set -f $B / security.SMEG64" $TMPFILE >> $OUT.new 2>&1
diff --git a/tests/f_badsymlinks2/mkimage.sh b/tests/f_badsymlinks2/mkimage.sh
index 6bbf020de0d7..297633790bee 100755
--- a/tests/f_badsymlinks2/mkimage.sh
+++ b/tests/f_badsymlinks2/mkimage.sh
@@ -18,10 +18,12 @@ do_tune2fs() {
 	mount image mnt
 }
 
+A=$(printf 'A%.0s' {1..4096})
 symlink() {
 	local len=$1
 	local src=$2
-	local target=$(perl -e 'print "A" x '$len)
+	local target=${A:0:$len}
+
 	ln -s $target $src
 	stat -c %i $src
 }
diff --git a/tests/f_create_symlinks/script b/tests/f_create_symlinks/script
index 169f58dbed2f..8906f3d65653 100644
--- a/tests/f_create_symlinks/script
+++ b/tests/f_create_symlinks/script
@@ -15,22 +15,22 @@ fi
 dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1
 
 echo mke2fs -q -F -o Linux -b 1024 -g 256 -O inline_data,extents -I 256 test.img 1024 > $OUT.new
-$MKE2FS -q -F -o Linux -b 1024 -g 256 -O inline_data,extents -I 256 $TMPFILE 1024 >> $OUT 2>&1
+$MKE2FS -q -F -o Linux -b 1024 -g 256 -O inline_data,extents -I 256 $TMPFILE 1024 >> $OUT.new 2>&1
 
 $FSCK $FSCK_OPT  -N test_filesys $TMPFILE >> $OUT.new 2>&1
 status=$?
 echo Exit status is $status >> $OUT.new
 
+B=$(printf 'x%.0s' {1..1500})
 for i in 30 60 70 500 1023 1024 1500; do
-	echo "debugfs -R \"symlink /l_$i $(perl -e "print 'x' x $i;")\" test.img" >> $OUT.new
-	$DEBUGFS -w -R "symlink /l_$i $(perl -e "print 'x' x $i;")" $TMPFILE \
-		 2>&1 | sed -f $cmd_dir/filter.sed >> $OUT.new
+	echo "debugfs -R \"symlink /l_$i ${B:0:i}\" test.img" >> $OUT.new
+	$DEBUGFS -w -R "symlink /l_$i ${B:0:i}" $TMPFILE >> $OUT.new 2>&1
 done
+unset B
 
 for i in 30 60 70 500 1023 1024 1500; do
 	echo "debugfs -R \"stat /l_$i\" test.img" >> $OUT.new
-	$DEBUGFS -R "stat /l_$i" $TMPFILE 2>&1 | \
-		 grep -v "time: " >> $OUT.new
+	$DEBUGFS -R "stat /l_$i" $TMPFILE 2>&1 | grep -v "time: " >> $OUT.new
 done
 
 $FSCK $FSCK_OPT  -N test_filesys $TMPFILE >> $OUT.new 2>&1
diff --git a/util/gen-sample-fs b/util/gen-sample-fs
index 8e139160fd01..290da33f51c3 100755
--- a/util/gen-sample-fs
+++ b/util/gen-sample-fs
@@ -7,8 +7,10 @@ cp /dev/null $FS
 mke2fs -q -t ext4 -O inline_data,^has_journal -I 256 -b 4096 -N 64 $FS 256
 mount -t ext4 $FS $MNT
 ln -s symlink_data $MNT/symlink
+
+L=$(printf 'x%.0s' {1..1024})
 for i in 30 70 500 1023 1024; do
-	ln -s /$(perl -e "print 'x' x $i;") $MNT/l_$i
+	ln -s /${L:0:$i} $MNT/l_$i
 done
 touch $MNT/acl
 setfacl -m u:daemon:r $MNT/acl
-- 
2.14.3 (Apple Git-98)


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] tests: replace perl usage with shell built-in
  2020-07-19 11:00 [PATCH] tests: replace perl usage with shell built-in Andreas Dilger
@ 2020-10-01 14:58 ` Theodore Y. Ts'o
  2020-10-01 17:08   ` Theodore Y. Ts'o
  0 siblings, 1 reply; 4+ messages in thread
From: Theodore Y. Ts'o @ 2020-10-01 14:58 UTC (permalink / raw)
  To: Andreas Dilger; +Cc: linux-ext4

On Sun, Jul 19, 2020 at 05:00:33AM -0600, Andreas Dilger wrote:
> A couple of tests use perl only for generating a string of
> N characters long.  Instead of requiring perl to run a few
> tests, use shell built-in commands and don't repeatedly run
> a separate subshell just to get a string of characters.
> 
> Signed-off-by: Andreas Dilger <adilger@dilger.ca>

Thanks, applied.

					- Ted

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] tests: replace perl usage with shell built-in
  2020-10-01 14:58 ` Theodore Y. Ts'o
@ 2020-10-01 17:08   ` Theodore Y. Ts'o
  2020-10-02  2:05     ` Andreas Dilger
  0 siblings, 1 reply; 4+ messages in thread
From: Theodore Y. Ts'o @ 2020-10-01 17:08 UTC (permalink / raw)
  To: Andreas Dilger; +Cc: linux-ext4

On Thu, Oct 01, 2020 at 10:58:09AM -0400, Theodore Y. Ts'o wrote:
> On Sun, Jul 19, 2020 at 05:00:33AM -0600, Andreas Dilger wrote:
> > A couple of tests use perl only for generating a string of
> > N characters long.  Instead of requiring perl to run a few
> > tests, use shell built-in commands and don't repeatedly run
> > a separate subshell just to get a string of characters.
> > h
> > Signed-off-by: Andreas Dilger <adilger@dilger.ca>
> 
> Thanks, applied.

.... and I have to revert the patch.  It's using a non-standard shell
construction which fails on strict POSIX compliant shells, such as
dash.

						- Ted

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] tests: replace perl usage with shell built-in
  2020-10-01 17:08   ` Theodore Y. Ts'o
@ 2020-10-02  2:05     ` Andreas Dilger
  0 siblings, 0 replies; 4+ messages in thread
From: Andreas Dilger @ 2020-10-02  2:05 UTC (permalink / raw)
  To: Theodore Y. Ts'o; +Cc: Ext4 Developers List

[-- Attachment #1: Type: text/plain, Size: 895 bytes --]

On Oct 1, 2020, at 11:08 AM, Theodore Y. Ts'o <tytso@MIT.EDU> wrote:
> 
> On Thu, Oct 01, 2020 at 10:58:09AM -0400, Theodore Y. Ts'o wrote:
>> On Sun, Jul 19, 2020 at 05:00:33AM -0600, Andreas Dilger wrote:
>>> A couple of tests use perl only for generating a string of
>>> N characters long.  Instead of requiring perl to run a few
>>> tests, use shell built-in commands and don't repeatedly run
>>> a separate subshell just to get a string of characters.
>>> h
>>> Signed-off-by: Andreas Dilger <adilger@dilger.ca>
>> 
>> Thanks, applied.
> 
> .... and I have to revert the patch.  It's using a non-standard shell
> construction which fails on strict POSIX compliant shells, such as
> dash.

Could you please point out which constructs it is unhappy with?  I had
an earlier version of the patch using a different mechanism, but then
updated it after feedback from Lukas.

Cheers, Andreas






[-- Attachment #2: Message signed with OpenPGP --]
[-- Type: application/pgp-signature, Size: 873 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-10-02  2:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-19 11:00 [PATCH] tests: replace perl usage with shell built-in Andreas Dilger
2020-10-01 14:58 ` Theodore Y. Ts'o
2020-10-01 17:08   ` Theodore Y. Ts'o
2020-10-02  2:05     ` Andreas Dilger

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.