All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Torsten Bögershausen" <tboegi@web.de>
To: Felipe Contreras <felipe.contreras@gmail.com>
Cc: "Torsten Bögershausen" <tboegi@web.de>,
	"Git Mailing List" <git@vger.kernel.org>
Subject: Re: t5801-remote-helpers.sh fails
Date: Sun, 18 Nov 2012 06:50:16 +0100	[thread overview]
Message-ID: <50A87718.4030806@web.de> (raw)
In-Reply-To: <CAMP44s2yenQKSgdUXfZP+yDJJ+bdveyms=SQ+3ptPvpT6D0hsg@mail.gmail.com>

On 10.11.12 23:05, Felipe Contreras wrote:
> On Sat, Nov 10, 2012 at 8:20 PM, Torsten Bögershausen <tboegi@web.de> wrote:
>> On 11/10/2012 08:15 PM, Felipe Contreras wrote:
>>>
>>> Hi,
>>>
>>> On Sat, Nov 10, 2012 at 2:48 PM, Torsten Bögershausen <tboegi@web.de>
>>> wrote:
>>>
>>>> on peff/pu t5801 fails, the error is in git-remote-testgit, please see
>>>> below.
>>>>
>>>> That's on my Mac OS X box.
>>>>
>>>> I haven't digged further into the test case, but it looks as if
>>>> "[-+]A  make NAMEs associative arrays"
>>>> is not supported on this version of bash.
>>>> /Torsten
>>>>
>>>>
>>>> /Users/tb/projects/git/git.peff/git-remote-testgit: line 64: declare: -A:
>>>> invalid option
>>>> declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
>>>> /Users/tb/projects/git/git.peff/git-remote-testgit: line 66:
>>>> refs/heads/master: division by 0 (error token is "/master")
>>>> error: fast-export died of signal 13
>>>> fatal: Error while running fast-export
>>>
>>>
>>> What is your bash --version?
>>>
>>  bash --version
>> GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin10.0)
>> Copyright (C) 2007 Free Software Foundation, Inc.
> 
> I see, that version indeed doesn't have associative arrays.
> 
>> On the other hand, Documentation/CodingGuidelines says:
>>   - No shell arrays.
> 
> Yeah, for shell code I guess, but this is bash code.
> 
>> Could we use perl to have arrays?
> 
> I think the code in perl would be harder to follow, and this is meant
> not only as a test, but also as a reference.
> 
> I'm not exactly sure what we should do here:
> 
> a) remove the code (would not be so good as a reference)
> b) enable the code conditionally based on the version of bash (harder to read)
> c) replace the code without associative arrays (will be much more
> complicated and ugly)
> d) add a check for the bash version to the top of the test in t/
> 
> I'm leaning towards d), followed by b).
> 
> If only there was a clean way to do this, so c) would not be so ugly.
> 
> After investigating different optins this seems to be the best:
> 
> 	join -e empty -o '0 1.2 2.2' -a 2 <(echo "$before") <(echo "$after")
> | while read e a b; do
> 		test "$a" == "$b" && continue
> 		echo "changed $e"
> 	done
> 
> But to me seems a bit harder to grasp. Not sure.
> 
> Cheers.
> 

Hi again,
I managed to have a working solution for
"d) add a check for the bash version to the top of the test in t/"
Please see diff below.

This unbreaks the test suite here.
Is this a good way forward?

Filipe, does the code line you mention above work for you?

If yes: I can test it here, if you send it as a patch.

/Torsten



diff --git a/t/t5801-remote-helpers.sh b/t/t5801-remote-helpers.sh
old mode 100644
new mode 100755
index 6e4e078..ea3d0f3
--- a/t/t5801-remote-helpers.sh
+++ b/t/t5801-remote-helpers.sh
@@ -13,6 +13,15 @@ compare_refs() {
        test_cmp expect actual
 }
 
+cat >"testbashArray" <<-EOF
+  declare -A assa
+EOF
+
+/bin/bash testbashArray || {
+       skip_all='t5801. /bin/bash does not handle associative arrays'
+       test_done
+}
+
 test_expect_success 'setup repository' '
        git init server &&
        (cd server &&

  reply	other threads:[~2012-11-18  5:50 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-10 13:48 t5801-remote-helpers.sh fails Torsten Bögershausen
2012-11-10 19:15 ` Felipe Contreras
2012-11-10 19:20   ` Torsten Bögershausen
2012-11-10 22:05     ` Felipe Contreras
2012-11-18  5:50       ` Torsten Bögershausen [this message]
2012-11-18  8:23         ` Felipe Contreras
2012-11-18 15:52           ` Torsten Bögershausen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50A87718.4030806@web.de \
    --to=tboegi@web.de \
    --cc=felipe.contreras@gmail.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.