* 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 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
* 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
* [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
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).