* Re: [PATCH] Fix expected values of setup tests on Windows [not found] <201012302205.13728.j6t@kdbg.org> @ 2010-12-31 13:00 ` Nguyen Thai Ngoc Duy 2010-12-31 16:11 ` Johannes Sixt 0 siblings, 1 reply; 12+ messages in thread From: Nguyen Thai Ngoc Duy @ 2010-12-31 13:00 UTC (permalink / raw) To: Johannes Sixt; +Cc: Junio C Hamano, git 2010/12/31 Johannes Sixt <j6t@kdbg.org>: > On Windows, bash stores absolute path names in shell variables in POSIX > format that begins with a slash, rather than in drive-letter format; such > a value is converted to the latter format when it is passed to a non-MSYS > program such as git. Hmm.. from test-lib.sh: TEST_DIRECTORY=$(pwd) test="trash directory.$(basename "$0" .sh)" TRASH_DIRECTORY="$TEST_DIRECTORY/$test" I'm just curious how these lines make $TRASH_DIRECTORY in POSIX format, while here=$(pwd) in your patch does not. Does bash auto convert value in TRASH_DIRECTORY="$TE..." line? -- Duy ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] Fix expected values of setup tests on Windows 2010-12-31 13:00 ` [PATCH] Fix expected values of setup tests on Windows Nguyen Thai Ngoc Duy @ 2010-12-31 16:11 ` Johannes Sixt 2010-12-31 20:30 ` Jonathan Nieder 2011-01-01 3:46 ` [PATCH] Fix expected values of setup tests on Windows Nguyen Thai Ngoc Duy 0 siblings, 2 replies; 12+ messages in thread From: Johannes Sixt @ 2010-12-31 16:11 UTC (permalink / raw) To: Nguyen Thai Ngoc Duy; +Cc: Junio C Hamano, git On Freitag, 31. Dezember 2010, Nguyen Thai Ngoc Duy wrote: > 2010/12/31 Johannes Sixt <j6t@kdbg.org>: > > On Windows, bash stores absolute path names in shell variables in POSIX > > format that begins with a slash, rather than in drive-letter format; such > > a value is converted to the latter format when it is passed to a non-MSYS > > program such as git. > > Hmm.. from test-lib.sh: > > TEST_DIRECTORY=$(pwd) > test="trash directory.$(basename "$0" .sh)" > TRASH_DIRECTORY="$TEST_DIRECTORY/$test" > > I'm just curious how these lines make $TRASH_DIRECTORY in POSIX format, > while > > here=$(pwd) > > in your patch does not. Does bash auto convert value in > TRASH_DIRECTORY="$TE..." line? No. When this line is executed: TEST_DIRECTORY=$(pwd) $(pwd) still has its default behavior to return the POSIX style path. pwd is redefined to pwd -W only later. I'm hesitant to redefine pwd earlier in test-lib.sh, though, because we would have to audit all uses of TEST_DIRECTORY for whether POSIX style paths or drive-letter paths are needed. -- Hannes ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] Fix expected values of setup tests on Windows 2010-12-31 16:11 ` Johannes Sixt @ 2010-12-31 20:30 ` Jonathan Nieder 2010-12-31 22:21 ` Johannes Sixt 2011-01-01 3:46 ` [PATCH] Fix expected values of setup tests on Windows Nguyen Thai Ngoc Duy 1 sibling, 1 reply; 12+ messages in thread From: Jonathan Nieder @ 2010-12-31 20:30 UTC (permalink / raw) To: Johannes Sixt; +Cc: Nguyen Thai Ngoc Duy, Junio C Hamano, git Johannes Sixt wrote: > On Freitag, 31. Dezember 2010, Nguyen Thai Ngoc Duy wrote: >> in your patch does not. Does bash auto convert value in >> TRASH_DIRECTORY="$TE..." line? > > No. When this line is executed: > > TEST_DIRECTORY=$(pwd) > > $(pwd) still has its default behavior to return the POSIX style path. pwd is > redefined to pwd -W only later. Would it make sense to change it to TEST_DIRECTORY=$PWD for clarity and robustness against code movement, then? ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] Fix expected values of setup tests on Windows 2010-12-31 20:30 ` Jonathan Nieder @ 2010-12-31 22:21 ` Johannes Sixt 2011-01-02 1:31 ` Junio C Hamano 0 siblings, 1 reply; 12+ messages in thread From: Johannes Sixt @ 2010-12-31 22:21 UTC (permalink / raw) To: Jonathan Nieder; +Cc: Nguyen Thai Ngoc Duy, Junio C Hamano, git On Freitag, 31. Dezember 2010, Jonathan Nieder wrote: > Johannes Sixt wrote: > > On Freitag, 31. Dezember 2010, Nguyen Thai Ngoc Duy wrote: > >> in your patch does not. Does bash auto convert value in > >> TRASH_DIRECTORY="$TE..." line? > > > > No. When this line is executed: > > > > TEST_DIRECTORY=$(pwd) > > > > $(pwd) still has its default behavior to return the POSIX style path. pwd > > is redefined to pwd -W only later. > > Would it make sense to change it to > > TEST_DIRECTORY=$PWD > > for clarity and robustness against code movement, then? Yes, that would make sense. -- Hannes ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] Fix expected values of setup tests on Windows 2010-12-31 22:21 ` Johannes Sixt @ 2011-01-02 1:31 ` Junio C Hamano [not found] ` <4D2C09D7.3070700@viscovery.net> 0 siblings, 1 reply; 12+ messages in thread From: Junio C Hamano @ 2011-01-02 1:31 UTC (permalink / raw) To: Johannes Sixt; +Cc: Jonathan Nieder, Nguyen Thai Ngoc Duy, git Johannes Sixt <j6t@kdbg.org> writes: > On Freitag, 31. Dezember 2010, Jonathan Nieder wrote: >> Johannes Sixt wrote: >> > On Freitag, 31. Dezember 2010, Nguyen Thai Ngoc Duy wrote: >> >> in your patch does not. Does bash auto convert value in >> >> TRASH_DIRECTORY="$TE..." line? >> > >> > No. When this line is executed: >> > >> > TEST_DIRECTORY=$(pwd) >> > >> > $(pwd) still has its default behavior to return the POSIX style path. pwd >> > is redefined to pwd -W only later. >> >> Would it make sense to change it to >> >> TEST_DIRECTORY=$PWD >> >> for clarity and robustness against code movement, then? > > Yes, that would make sense. It will be very much appreciated to add a few sentences to clarify this to "Do's and don'ts" section of t/README if you are re-rolling this. Thanks. ^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <4D2C09D7.3070700@viscovery.net>]
* [PATCH 2/2] t/README: hint about using $(pwd) rather than $PWD in tests [not found] ` <4D2C09D7.3070700@viscovery.net> @ 2011-01-11 7:44 ` Johannes Sixt 2011-01-11 7:54 ` Jonathan Nieder 0 siblings, 1 reply; 12+ messages in thread From: Johannes Sixt @ 2011-01-11 7:44 UTC (permalink / raw) To: Junio C Hamano; +Cc: Jonathan Nieder, Nguyen Thai Ngoc Duy, git From: Johannes Sixt <j6t@kdbg.org> This adds just a "do it this way" instruction without a lot of explanation, because the details are too complex to be explained at this point. Signed-off-by: Johannes Sixt <j6t@kdbg.org> --- t/README | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/t/README b/t/README index 90718b4..f98ebb3 100644 --- a/t/README +++ b/t/README @@ -283,6 +283,12 @@ Do: Tests that are likely to smoke out future regressions are better than tests that just inflate the coverage metrics. + - When a test checks for an absolute path that a git command generated, + construct the expected value using $(pwd) rather than $PWD, + $TEST_DIRECTORY, or $TRASH_DIRECTORY. It makes a difference on + Windows, where the shell (MSYS bash) mangles absolute path names. + For details, see the commit message of 4114156ae9. + Don't: - exit() within a <script> part. -- 1.7.4.rc1.1258.g84aa ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] t/README: hint about using $(pwd) rather than $PWD in tests 2011-01-11 7:44 ` [PATCH 2/2] t/README: hint about using $(pwd) rather than $PWD in tests Johannes Sixt @ 2011-01-11 7:54 ` Jonathan Nieder 2011-01-11 8:15 ` Johannes Sixt 0 siblings, 1 reply; 12+ messages in thread From: Jonathan Nieder @ 2011-01-11 7:54 UTC (permalink / raw) To: Johannes Sixt; +Cc: Junio C Hamano, Nguyen Thai Ngoc Duy, git Johannes Sixt wrote: > This adds just a "do it this way" instruction without a lot of explanation, > because the details are too complex to be explained at this point. Thanks, looks very useful. > --- a/t/README > +++ b/t/README > @@ -283,6 +283,12 @@ Do: > Tests that are likely to smoke out future regressions are better > than tests that just inflate the coverage metrics. > > + - When a test checks for an absolute path that a git command generated, > + construct the expected value using $(pwd) rather than $PWD, > + $TEST_DIRECTORY, or $TRASH_DIRECTORY. It makes a difference on > + Windows, where the shell (MSYS bash) mangles absolute path names. > + For details, see the commit message of 4114156ae9. > + Perhaps it is also worth explaining the cases where $PWD is needed? By contrast, when a passing a path to git or constructing a URL, use $PWD. It makes a difference on Windows, where - $(pwd) is a Windows-style path such as git might output, and - $PWD is a Unix-style path that the shell (MSYS bash) will mangle before passing to native apps like git. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] t/README: hint about using $(pwd) rather than $PWD in tests 2011-01-11 7:54 ` Jonathan Nieder @ 2011-01-11 8:15 ` Johannes Sixt 2011-01-11 8:37 ` Jonathan Nieder 0 siblings, 1 reply; 12+ messages in thread From: Johannes Sixt @ 2011-01-11 8:15 UTC (permalink / raw) To: Jonathan Nieder; +Cc: Junio C Hamano, Nguyen Thai Ngoc Duy, git Am 1/11/2011 8:54, schrieb Jonathan Nieder: > Perhaps it is also worth explaining the cases where $PWD is needed? > > By contrast, when a passing a path to git or constructing a URL, > use $PWD. The first part of the "or" is not true: you can pass the result of $(pwd) to a command, and it means the same as $PWD; I would even recommend against $PWD so that a reader does not have to wonder "why pass $PWD, but check for $(pwd)?" The second part I don't know whether it is true: I haven't noticed a pattern where people did it the wrong way, therefore, I'don't even know whether $PWD is really *always* required. Do *you* know? > It makes a difference on Windows, where > > - $(pwd) is a Windows-style path such as git might output, and > - $PWD is a Unix-style path that the shell (MSYS bash) will > mangle before passing to native apps like git. This information is already included by reference to 4114156ae9. -- Hannes ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] t/README: hint about using $(pwd) rather than $PWD in tests 2011-01-11 8:15 ` Johannes Sixt @ 2011-01-11 8:37 ` Jonathan Nieder 2011-01-11 8:54 ` Johannes Sixt 0 siblings, 1 reply; 12+ messages in thread From: Jonathan Nieder @ 2011-01-11 8:37 UTC (permalink / raw) To: Johannes Sixt; +Cc: Junio C Hamano, Nguyen Thai Ngoc Duy, git Johannes Sixt wrote: > Am 1/11/2011 8:54, schrieb Jonathan Nieder: >> Perhaps it is also worth explaining the cases where $PWD is needed? >> >> By contrast, when a passing a path to git or constructing a URL, >> use $PWD. > > The first part of the "or" is not true: you can pass the result of $(pwd) > to a command, and it means the same as $PWD; I would even recommend > against $PWD so that a reader does not have to wonder "why pass $PWD, but > check for $(pwd)?" I _think_ that passing $PWD always gives the right result. By contrast, constructions like PATH=$(pwd)/bin:$PATH break iirc. I suspect that the reader will end up wondering "why does this have to be so complicated" no matter what. > The second part I don't know whether it is true: I haven't noticed a > pattern where people did it the wrong way, therefore, I'don't even know > whether $PWD is really *always* required. Do *you* know? 24f1136 is one example. I don't know of any utility that treats file://c:/foo/bar/baz as a URL representing a resource on localhost (and msys bash has no rewriting rule for it), so in that particular case (file://$directory), $PWD really does seem to be always required. >> It makes a difference on Windows, where >> >> - $(pwd) is a Windows-style path such as git might output, and >> - $PWD is a Unix-style path that the shell (MSYS bash) will >> mangle before passing to native apps like git. > > This information is already included by reference to 4114156ae9. ... but if we can summarize it nicely, we can save the reader a step, no? Anyway, what you have already written is useful; clearing up these details would just be icing on the top. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] t/README: hint about using $(pwd) rather than $PWD in tests 2011-01-11 8:37 ` Jonathan Nieder @ 2011-01-11 8:54 ` Johannes Sixt 2011-01-11 17:47 ` Junio C Hamano 0 siblings, 1 reply; 12+ messages in thread From: Johannes Sixt @ 2011-01-11 8:54 UTC (permalink / raw) To: Jonathan Nieder; +Cc: Junio C Hamano, Nguyen Thai Ngoc Duy, git Am 1/11/2011 9:37, schrieb Jonathan Nieder: > I suspect that the reader will end up wondering "why does this have to > be so complicated" no matter what. Unfortunately, yes. Therefore, I'd like to keep the paragraph minimal, focused on how expected values should be constructed, which is where errors will happen primarily. >>> It makes a difference on Windows, where >>> >>> - $(pwd) is a Windows-style path such as git might output, and >>> - $PWD is a Unix-style path that the shell (MSYS bash) will >>> mangle before passing to native apps like git. >> >> This information is already included by reference to 4114156ae9. > > ... but if we can summarize it nicely, we can save the reader a > step, no? I don't think so: it's not complete enough. Readers will ask: "So what?" Digging archives or a three paragraph follow-up explanation on the ML will be required anyway. > Anyway, what you have already written is useful; clearing up these > details would just be icing on the top. OK, thanks for a review. -- Hannes ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 2/2] t/README: hint about using $(pwd) rather than $PWD in tests 2011-01-11 8:54 ` Johannes Sixt @ 2011-01-11 17:47 ` Junio C Hamano 0 siblings, 0 replies; 12+ messages in thread From: Junio C Hamano @ 2011-01-11 17:47 UTC (permalink / raw) To: Johannes Sixt; +Cc: Jonathan Nieder, Nguyen Thai Ngoc Duy, git Johannes Sixt <j.sixt@viscovery.net> writes: > Am 1/11/2011 9:37, schrieb Jonathan Nieder: >> I suspect that the reader will end up wondering "why does this have to >> be so complicated" no matter what. > > Unfortunately, yes. Therefore, I'd like to keep the paragraph minimal, > focused on how expected values should be constructed, which is where > errors will happen primarily. I really was hoping for something simple like "never use $PWD" myself, though X-<. Anyway, will queue for 1.7.4. Thanks. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH] Fix expected values of setup tests on Windows 2010-12-31 16:11 ` Johannes Sixt 2010-12-31 20:30 ` Jonathan Nieder @ 2011-01-01 3:46 ` Nguyen Thai Ngoc Duy 1 sibling, 0 replies; 12+ messages in thread From: Nguyen Thai Ngoc Duy @ 2011-01-01 3:46 UTC (permalink / raw) To: Johannes Sixt; +Cc: Junio C Hamano, git On Fri, Dec 31, 2010 at 11:11 PM, Johannes Sixt <j6t@kdbg.org> wrote: >> in your patch does not. Does bash auto convert value in >> TRASH_DIRECTORY="$TE..." line? > > No. When this line is executed: > > TEST_DIRECTORY=$(pwd) > > $(pwd) still has its default behavior to return the POSIX style path. pwd is > redefined to pwd -W only later. > > I'm hesitant to redefine pwd earlier in test-lib.sh, though, because we would > have to audit all uses of TEST_DIRECTORY for whether POSIX style paths or > drive-letter paths are needed. Ah I missed that. Thanks. Ack from me. -- Duy ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2011-01-11 17:47 UTC | newest] Thread overview: 12+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <201012302205.13728.j6t@kdbg.org> 2010-12-31 13:00 ` [PATCH] Fix expected values of setup tests on Windows Nguyen Thai Ngoc Duy 2010-12-31 16:11 ` Johannes Sixt 2010-12-31 20:30 ` Jonathan Nieder 2010-12-31 22:21 ` Johannes Sixt 2011-01-02 1:31 ` Junio C Hamano [not found] ` <4D2C09D7.3070700@viscovery.net> 2011-01-11 7:44 ` [PATCH 2/2] t/README: hint about using $(pwd) rather than $PWD in tests Johannes Sixt 2011-01-11 7:54 ` Jonathan Nieder 2011-01-11 8:15 ` Johannes Sixt 2011-01-11 8:37 ` Jonathan Nieder 2011-01-11 8:54 ` Johannes Sixt 2011-01-11 17:47 ` Junio C Hamano 2011-01-01 3:46 ` [PATCH] Fix expected values of setup tests on Windows Nguyen Thai Ngoc Duy
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).