# [PATCH] t7403-*.sh: Avoid use of the nonportable '==' operator

4 messages from 2012-05-26 to 2012-05-27. Participants: Ramsay Jones, Jon Seymour, Junio C Hamano.
Thread: https://gitlist.dev/t/30633

## Ramsay Jones, 2012-05-26 16:51

Subject: [PATCH] t7403-*.sh: Avoid use of the nonportable '==' operator
Message-ID: <4FC10A0B.5080407@ramsay1.demon.co.uk>
URL: https://gitlist.dev/e/4FC10A0B.5080407%40ramsay1.demon.co.uk

```

Some shells, including dash, do not support using the '==' string
equality operator. This results in the failure of tests 7-12 with
'test' complaining of an "unexpected operator".

In order to suppress the errors, we replace the '==' operator with
'=', which must be supported by any POSIX shell.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
---

Hi Jon,

If you need to re-roll your patches from the 'js/submodule-relative'
branch (commits 3f4542e and efa4c90), could you please squash this
fix into them.

Thanks!

ATB,
Ramsay Jones

 t/t7403-submodule-sync.sh |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/t/t7403-submodule-sync.sh b/t/t7403-submodule-sync.sh
index 583fe21..3d85739 100755
--- a/t/t7403-submodule-sync.sh
+++ b/t/t7403-submodule-sync.sh
@@ -93,7 +93,7 @@ test_expect_success '"git submodule sync" handles origin URL of the form foo' '
 	 git remote set-url origin foo
 	 git submodule sync &&
 	(cd submodule &&
-	 test "$(git config remote.origin.url)" == "../submodule"
+	 test "$(git config remote.origin.url)" = "../submodule"
 	)
 	)
 '
@@ -103,7 +103,7 @@ test_expect_success '"git submodule sync" handles origin URL of the form foo/bar
 	 git remote set-url origin foo/bar
 	 git submodule sync &&
 	(cd submodule &&
-	 test "$(git config remote.origin.url)" == "../foo/submodule"
+	 test "$(git config remote.origin.url)" = "../foo/submodule"
 	)
 	)
 '
@@ -113,7 +113,7 @@ test_expect_success '"git submodule sync" handles origin URL of the form ./foo'
 	 git remote set-url origin ./foo
 	 git submodule sync &&
 	(cd submodule &&
-	 test "$(git config remote.origin.url)" == "../submodule"
+	 test "$(git config remote.origin.url)" = "../submodule"
 	)
 	)
 '
@@ -123,7 +123,7 @@ test_expect_success '"git submodule sync" handles origin URL of the form ./foo/b
 	 git remote set-url origin ./foo/bar
 	 git submodule sync &&
 	(cd submodule &&
-	 test "$(git config remote.origin.url)" == "../foo/submodule"
+	 test "$(git config remote.origin.url)" = "../foo/submodule"
 	)
 	)
 '
@@ -133,7 +133,7 @@ test_expect_success '"git submodule sync" handles origin URL of the form ../foo'
 	 git remote set-url origin ../foo
 	 git submodule sync &&
 	(cd submodule &&
-	 test "$(git config remote.origin.url)" == "../../submodule"
+	 test "$(git config remote.origin.url)" = "../../submodule"
 	)
 	)
 '
@@ -143,7 +143,7 @@ test_expect_success '"git submodule sync" handles origin URL of the form ../foo/
 	 git remote set-url origin ../foo/bar
 	 git submodule sync &&
 	(cd submodule &&
-	 test "$(git config remote.origin.url)" == "../../foo/submodule"
+	 test "$(git config remote.origin.url)" = "../../foo/submodule"
 	)
 	)
 '
-- 
1.7.10

```

## Jon Seymour, 2012-05-26 22:21

Subject: Re: [PATCH] t7403-*.sh: Avoid use of the nonportable '==' operator
Message-ID: <CAH3AnrqgfjjpN3V10y0v1tMGZ3f5G-RjL5LV9he-0sdbvrMLNQ@mail.gmail.com>
URL: https://gitlist.dev/e/CAH3AnrqgfjjpN3V10y0v1tMGZ3f5G-RjL5LV9he-0sdbvrMLNQ%40mail.gmail.com
In-Reply-To: <4FC10A0B.5080407@ramsay1.demon.co.uk>

```
On Sun, May 27, 2012 at 2:51 AM, Ramsay Jones
<ramsay@ramsay1.demon.co.uk> wrote:
>
> Some shells, including dash, do not support using the '==' string
> equality operator. This results in the failure of tests 7-12 with
> 'test' complaining of an "unexpected operator".
>
> In order to suppress the errors, we replace the '==' operator with
> '=', which must be supported by any POSIX shell.
>

Thanks. I take it than an example of such a shell is dash?

BTW: the next iteration is more of a re-write than a re-roll because I
noticed some other issues (e.g. preventing git://hostname/repo being
silently transformed to git://subrepo in the case of a pathological
use of a submodule URL of the form ../../subrepo) and fixing this
required a change that required a more extensive suite of tests.


jon.

```

## Junio C Hamano, 2012-05-27 06:53

Subject: Re: [PATCH] t7403-*.sh: Avoid use of the nonportable '==' operator
Message-ID: <7vfwamp11u.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vfwamp11u.fsf%40alter.siamese.dyndns.org
In-Reply-To: <4FC10A0B.5080407@ramsay1.demon.co.uk>

```
Ramsay Jones <ramsay@ramsay1.demon.co.uk> writes:

> Some shells, including dash, do not support using the '==' string
> equality operator. This results in the failure of tests 7-12 with
> 'test' complaining of an "unexpected operator".

Thanks.  You do not have to single-out dash.
A shell script that uses "test $a == $b" is *buggy* and not conforming to
POSIX.

```

## Jon Seymour, 2012-05-27 07:01

Subject: Re: [PATCH] t7403-*.sh: Avoid use of the nonportable '==' operator
Message-ID: <CAH3AnrrbsQYvwUuEEwb-E7sV_odGPE7pEFXNZd+SbbGs+1-vLQ@mail.gmail.com>
URL: https://gitlist.dev/e/CAH3AnrrbsQYvwUuEEwb-E7sV_odGPE7pEFXNZd%2BSbbGs%2B1-vLQ%40mail.gmail.com
In-Reply-To: <7vfwamp11u.fsf@alter.siamese.dyndns.org>

```
On Sun, May 27, 2012 at 4:53 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Ramsay Jones <ramsay@ramsay1.demon.co.uk> writes:
>
>> Some shells, including dash, do not support using the '==' string
>> equality operator. This results in the failure of tests 7-12 with
>> 'test' complaining of an "unexpected operator".
>
> Thanks.  You do not have to single-out dash.
> A shell script that uses "test $a == $b" is *buggy* and not conforming to
> POSIX.

Yep. This slipped through because I happen to have reconfigured my
/bin/sh to point to bash (frrom Ubuntu's default of dash) because of
an issue with a product installation script. This shouldn't have been
a problem if bash's POSIX mode was strict about rejecting == but bash
doesn't seem to be strict about this.

Anyway, I have reverted /bin/sh to refer to dash so hopefully I won't
be caught by this in future.

jon.

```
