sorry it took so long, but here's the patch i intended to send 9 days ago :-/
the stats look more plausible this time too: --- tests/ls.test | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) On Tue, Apr 11, 2017 at 12:56 PM, enh <[email protected]> wrote: > > > On Tue, Apr 11, 2017 at 12:14 PM, Rob Landley <[email protected]> wrote: > >> On 04/05/2017 12:28 PM, enh wrote: >> > tests/ls.test | 4 ++++ >> > 1 file changed, 4 insertions(+) >> >> This patch removes no lines, it just adds a new test. How does this make >> it work without awk in a way that wasn't previously the case? (The >> description doesn't match what the patch does?) >> > > yeah, i fucked up trying to manage too many patches at once. those four > lines should replace the four lines immediately below. > > >> Also, minor quibble, they're called symlinks (symbolic links) not >> softlinks. Kinda fixed in stone on linux because that's what the syscall >> to make 'em is called (man 2 symlink). >> > > (yeah, that was me only changing the part that _needed_ to change. except > i screwed that up so it was no longer obvious.) > > >> Also, I want a grep option that ignores whitespace differences like >> patch -l does. Squash all runs of whitespace to one ascii 32 space >> character, then compare. Alas I'd probably have to use a --longopt for >> the name and I dislike those slightly more than I want this feature. >> > > speaking of which: all the blkid tests fail if you run it on the desktop > because you don't output trailing spaces. i'm not sure whether to "break" > toybox blkid to just always output trailing spaces or make the test less > readable to allow either output. (regular expression matches rather than > just literal matches might help here.) > > >> And if you want to be really cruel to this test: >> >> ln -s "three -> four" "one -> two" >> lrwxrwxrwx 1 landley landley 13 Apr 11 12:39 one -> two -> three -> four >> >> Which is why ls -1b and readlink exist, but my -b needs upgrading? It's >> wildcarding stuff out ala -q but that can cause collisions, and given >> the other one escapes spaces what it really means by "nongraphic" is >> escape anything that prevents the shell from seeing this as a single >> argument, and I'm not entirely sure what that list is... >> >> $ mkdir sub >> $ cd sub >> $ touch "$(echo -e "$(X=0;while [ $X -lt 255 ];do X=$(($X+1));[ $X -eq >> 47 ]&& continue;printf '\\x%02x' $X; done)")" >> $ ls -b >> >> Answer: it's anything <= 32 and >= 128, which gets an octal escape, >> except for \a\b\t\n\v\f\r and "\ ". And backslash is escaped with >> another backslash. >> >> And the FUN part is that I should add the above to the test suite. Wow >> that's ugly. Should use the octal not hex escapes though... >> >> (You want to know why I can't work through my todo list until it's >> smaller? That's why. Working through my todo list makes it BIGGER. >> Always has.) >> > > everyone else's too. this is why we give in and have bug databases. anr/or > XFAIL tests. > > >> Except... looking in ls there's code to do this. Why isn't it >> triggering... Huh, Izabera pointed out that ubuntu's ls defaults to -q >> and so I made it do that, and -q trumps -b. Blah. >> >> Ok, fixed and my code is escaping \e which ubuntu's ls isn't. But both >> printf and echo support \e so I think I'm right. :) >> >> Rob >> > > > > -- > Elliott Hughes - http://who/enh - http://jessies.org/~enh/ > Android native code/tools questions? Mail me/drop by/add me as a reviewer. > -- Elliott Hughes - http://who/enh - http://jessies.org/~enh/ Android native code/tools questions? Mail me/drop by/add me as a reviewer.
From 1d27cc12283b4b3039beac0f763bae1da1e952fd Mon Sep 17 00:00:00 2001 From: Elliott Hughes <[email protected]> Date: Fri, 14 Apr 2017 13:43:16 -0700 Subject: [PATCH] Make ls.test work without awk. --- tests/ls.test | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/ls.test b/tests/ls.test index b29c478..56f7403 100755 --- a/tests/ls.test +++ b/tests/ls.test @@ -33,8 +33,9 @@ testing "with -F" "$IN && ls -F; $OUT" "dir1/\ndir2/\nfile1.txt\nfile2.txt\n" "" testing "with -dk *" "$IN && ls -dk *; $OUT" "dir1\ndir2\nfile1.txt\nfile2.txt\n" "" "" ln -s file1.txt lstest/slink -testing "softlink - long listing" "$IN && ls -l slink | awk '{ print \$NF }' ; $OUT" \ - "file1.txt\n" "" "" +testing "-l symlink" \ + "$IN && ls -l slink | grep -q -- ' slink -> file1.txt' && echo ok ; $OUT" \ + "ok\n" "" "" rm -f lstest/slink ln -s /dev/null/nosuchfile lstest/nosuchfile -- 2.12.2.762.g0e3151a226-goog
_______________________________________________ Toybox mailing list [email protected] http://lists.landley.net/listinfo.cgi/toybox-landley.net
