[LTP] [PATCH v1] rwtest: Confirm df is a symlink to busybox
Petr Vorel
pvorel@suse.cz
Fri Dec 1 09:22:43 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"
Yes, this would work, but this would be better:
if df --version 2>&1 | grep -q 'BusyBox'
this is way simpler and this detection is already used elsewhere.
BTW how can happen that df is symlink on coreutils?
They provide a binary, right?
> 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.
-P was implemented in 2008
https://github.com/mirror/busybox/commit/d66aa3c701ffb83343239e71a8b294407ff5df86
BusyBox has often some features configurable (feature can be disabled), but if I
look correctly -P is not guarded to any config option
https://github.com/mirror/busybox/blob/master/coreutils/df.c
Therefore I'm for removing this option entirely. Please send v2.
Kind regards,
Petr
> Best,
> Mengchi
More information about the ltp
mailing list