On 28.01.15 18:38, Junio C Hamano wrote: > On Wed, Jan 28, 2015 at 12:28 AM, Torsten Bögershausen <tboegi@xxxxxx> wrote: >> On 27.01.15 23:20, Junio C Hamano wrote: >> >>> How about extending it like this (not tested)? >> Thanks, this looks good: the test is more extensive, >> I can test this next week. >> >>> -- >8 -- >>> From: Torsten Bögershausen <tboegi@xxxxxx> >>> Date: Tue, 27 Jan 2015 16:39:01 +0100 >>> Subject: [PATCH] test-lib.sh: set prerequisite SANITY by testing what we really need >>> >>> What we wanted out of the SANITY precondition is that the filesystem >>> behaves sensibly with permission bits settings. >>> >>> - You should not be able to remove a file in a read-only directory, >>> >>> - You should not be able to tell if a file in a directory exists if >>> the directory lacks read or execute permission bits. > Forgot one thing. I do not offhand know if tests that needs SANITY > depends on this, but we may also want to check for this: > > - You should not be able to write to a file that is marked as read-only. > > by adding something like > > >sanitytest && chmod -w sanitytest && ! echo boo >sanitytest && ! > test -s sanitytest" > > in the mix. > >>> We used to cheat by approximating that condition with "is the / >>> writable?" test and/or "are we running as root?" test. Neither test >>> is sufficient or appropriate in more exotic environments like >>> Cygwin. >> How about going this direction: >> >> We used to cheat by approximating that condition with "is the / >> writable?" test and/or "are we running as root?" test. Neither test >> is sufficient or appropriate, especially in environments like >> Cygwin, Mingw or Mac OS X. > OK, but MacOS X does not have SANITY problem; "is the / writable?" test > was misdetecting and declaring a system with SANITY does not have one. > > Perhaps roll Cygwin and Mingw into a single Windows category? I dunno. The whole discussion actually started with Mac OS X, and the conclusion was that Mac OS X should have SANITY set, but hadn't, because / is writable (if you install from scratch): $gmane/262389 and especially: $gmane/262456 The whole discussion ended up a fix for t5539, and, as a different improvement, the lazy SANITY probing - which works for me on all systems I had the chance to test it. The code is OK (we can add more tests, as you suggested). The only problem I can see is to put everything into a good commit-msg. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html