[Toybox] test.c patches on GitHub

Rob Landley rob at landley.net
Sat Sep 8 13:13:45 PDT 2018


On 09/05/2018 11:43 PM, Kevin Spiteri wrote:
> I edited a version I was using to address some issues mentioned in this thread.
> https://github.com/spiterikevin/toybox/blob/compoundtest/toys/pending/test.c

Applied, although it introduced some warnings. I'll try to clean those up this
weekend...

> There are still some differences from coreutils. E.g., in coreutils,
> [ \( \( \) \) \) ] is true because the inner \) is treated as a plain string.
> [ \( \( \( \) \) ] is a syntax error.

I'm ok with that. I'm not going for full bug-for-bug compatibility unless
somebody has a real world use case that hits the bug.

> Removing one set of outer parentheses gets into the explicit 3-argument special
> cases and both become true.
> How important is it to match these details to coreutils? In my implementation
> the 3-argument cases match, but both 5-argument cases are syntax errors.

Linus had some excellent posts to lkml about compatibility last month. I
collected links here, and I agree with what he says:

  https://twitter.com/landley/status/1034898415300304896

(I did _not_ bring up the history of sysfs on the list, but oh I could have...)

Anyway, Linus' view boils down to "you can't break what people use". If nobody's
using it, then it doesn't matter. If it's a one-off site local thing where
you're talking to the only affected person and they can change it, then you can
negotiate a change. But if it's deployed and out there and people will be
surprised by it not working, you're stuck supporting it (because to do otherwise
would discourage upgrades and then your userbase fragments into historical forks).

My own approach has mostly been to do the 80/20 thing and then wait for
complaints so I'm guided by real world feedback rather than implementing
infrastructure in search of a user (which is a bad thing). I want toybox to be
usable by as many people as possible, but until I get Android self-hosting
people are going to continue cross compiling from Debian and not using it as a
workstation, meaning it won't get the testing to support real weight as a
general-purpose OS...

Working on it. Not nearly as fast as I'd like, but that's day jobs for you.

> Kevin

Rob



More information about the Toybox mailing list