[LTP] [PATCH v1] rwtest: Confirm df is a symlink to busybox

Mengchi Cheng mengcc@amazon.com
Thu Nov 30 23:15:22 CET 2023


On Thu, 2023-11-30 10:41:27 +0000, Petr Vorel wrote:
>
> Hi Mengchi,
> 
> > /bin/df can be a symlink to coreutils. It returns correct info with dir
> > arguments.
> > Just checking if df is a symlink will include such cases. Need to make
> > sure it is linking to busybox before ignoring options.
> 
> > Signed-off-by: Mengchi Cheng <mengcc@amazon.com>
> > ---
> >  testcases/kernel/fs/doio/rwtest | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> > diff --git a/testcases/kernel/fs/doio/rwtest b/testcases/kernel/fs/doio/rwtest
> > index 6725e1426..26659e9d3 100644
> > --- a/testcases/kernel/fs/doio/rwtest
> > +++ b/testcases/kernel/fs/doio/rwtest
> > @@ -329,10 +329,10 @@ do
> >  		else
> >  			# If df is a symlink (to busybox) then do not pass the $dir and $dfOpts
> >  			# parameters because they don't work as expected
> > -                        if test -h $(which df)
> > -                           then
> > -                               dir=""; dfOpts="";
> > -                        fi
> > +			if [[ "$(readlink -f "$(which df)")" == *"busybox"* ]]
> Could you please test if this works?
> 
> 			if [ "$(readlink -f "$(which df)")" = "busybox" ]

I just replaced df with a symlink cmd and the string such as zstdmt/zstd in ubuntu.
It does not work..
But below should work
			if echo "$(readlink -f "$(which df)")" | grep -q "busybox"

However, I linked df to /bin/busybox on my device, df -P ${dir} seems fine.
The original code may be for a very old version of busybox.
:/# ls -l /bin/df
lrwxrwxrwx 1 root root 12 2023-11-16 17:49 /bin/df -> /bin/busybox
:/# df -P tmp
Filesystem           1024-blocks    Used Available Capacity Mounted on
tmpfs                   280848         4    280844   0% /tmp
:/# /usr/bin/df.coreutils -P tmp
Filesystem     1024-blocks  Used Available Capacity Mounted on
tmpfs               280848     4    280844       1% /tmp

My busybox version is v1.35.0. It might be ok to remove the check completely.


Best,
Mengchi
 
> 
> Although this script uses bash, we generally don't want to use it. Thus it'd be
> better to not introduce any bash specific code.
> 
> BTW this is very old and very ugly script, we should cleanup it or delete:
> https://github.com/linux-test-project/ltp/issues/1110
> 
> Kind regards,
> Petr
> 
> > +			then
> > +				dir=""; dfOpts="";
> > +			fi
> 
> >  			blks=$(df $dfOpts $dir |
> >  			(while read fs blks used avail cap mountpoint
> 
> -- 
> Mailing list info: https://lists.linux.it/listinfo/ltp
> 


More information about the ltp mailing list