Another question/issue with the testsuite.
'
The testsuite uses ${var/search/replace} construct
heavily.  It is implemented in bash and in busybox
ash, but not, for example, in dash, and it is not
in POSIX either.

So when the system /bin/sh does not implement this
construct, los of tests fails like this:

 $ ./pidof.tests
 PASS: pidof (exit with error)
 PASS: pidof (exit with success)
 PASS: pidof this
 pidof.tests: 59: pidof.tests: Bad substitution

(this is actually in testing.sh:59, not pidof.tests:59).
The line in question is:

  optional()
  {
        SKIP=
        while test "$1"; do
                if test x"${OPTIONFLAGS/*:$1:*/y}" != x"y"; then

which uses this very construct.

I can modify runtest script to explicitly run the
tests using busybox's ash (by prepending `busybox sh' to
the command line).  But this will lead to failing this
very `pidof' test:

 $ busybox sh pidof.tests
 PASS: pidof (exit with error)
 PASS: pidof (exit with success)
 FAIL: pidof this

because it will be unable to "this" process by its
name (pidof.tests), since it will be named `busybox'
instead.

Also, when explicitly using busybox ash, we assume
that the configuration actually includes ash, which
is not always the case.

Is there any interest in fixing these usages of
this problematic variable substitution, or applying
a workaround?

Thanks,

/mjt
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to