On Wed, May 25, 2016 at 11:33:33AM +0200, Armin Kunaschik wrote:
> On Tue, May 24, 2016 at 7:36 PM, Junio C Hamano <[email protected]> wrote:
> > Armin Kunaschik <[email protected]> writes:
> >>
> >> Ok, how can this be implemented within the test environment?
> >
> > I actually think an unconditional check like this is sufficient.
>
> Ah, good. My thoughts were a bit more complicated.
> Anyway, this works for me.
> Thanks!
Would you mind submitting a patch so that we can support these
tests when running on AIX/HP-UX?
> > t/t7800-difftool.sh | 17 +++++++++--------
> > 1 file changed, 9 insertions(+), 8 deletions(-)
> >
> > diff --git a/t/t7800-difftool.sh b/t/t7800-difftool.sh
> > index 7ce4cd7..f304228 100755
> > --- a/t/t7800-difftool.sh
> > +++ b/t/t7800-difftool.sh
> > @@ -442,15 +442,16 @@ run_dir_diff_test 'difftool --dir-diff with unmerged
> > files' '
> > test_cmp expect actual
> > '
> >
> > -write_script .git/CHECK_SYMLINKS <<\EOF
> > -for f in file file2 sub/sub
> > -do
> > - echo "$f"
> > - readlink "$2/$f"
> > -done >actual
> > -EOF
> > -
> > test_expect_success PERL,SYMLINKS 'difftool --dir-diff --symlink without
> > unstaged changes' '
> > +
> > + write_script .git/CHECK_SYMLINKS <<-\EOF &&
> > + for f in file file2 sub/sub
> > + do
> > + echo "$f"
> > + ls -ld "$2/$f" | sed -e "s/.* -> //"
> > + done >actual
> > + EOF
> > +
> > cat >expect <<-EOF &&
> > file
> > $PWD/file
I was curious so I whipped together a small tweak to
t/check-non-portable-shell.pl below.
The difftool tests are not the only ones that use readlink.
My guess is you haven't run the p4 tests because AIX/HP-UX doesn't have p4?
$ make test-lint-shell-syntax
t7800-difftool.sh:449: error: readlink is not portable (please use ls
-ld | sed): readlink "$2/$f"
t9802-git-p4-filetype.sh:266: error: readlink is not portable (please
use ls -ld | sed): test $(readlink symlink) = symlink-target
t9802-git-p4-filetype.sh:332: error: readlink is not portable (please
use ls -ld | sed): test $(readlink empty-symlink) = target2
test-lib.sh:757: error: readlink is not portable (please use ls -ld |
sed): test "$1" = "$(readlink "$2")" || {
If we want to ban use of readlink from the test suite we could
add it to the check script. test-lib.sh also includes it for
valgrind support so I'm not really sure whether we'd want to
apply this, but I figured I'd bring it up for discussion.
If we end up fixing all of these then I can send this to the
list as a proper patch.
Curious, is there an easy way to get readlink and mktemp installed on AIX?
Another alternative is that we can compile our own
"git-readlink" and "git-mktemp" programs and use those instead,
but that seems like a big maintenance burden compared to the
relative simplicity of the test-suite workarounds.
Thanks for fixing my non-portable tests ;-)
--- 8< --- 8< ---
>From 40c41402dfa24ca16b41062172c34f238d77b42c Mon Sep 17 00:00:00 2001
From: David Aguilar <[email protected]>
Date: Thu, 26 May 2016 02:42:52 -0700
Subject: [PATCH] tests: add shell portability check for "readlink"
Signed-off-by: David Aguilar <[email protected]>
---
t/check-non-portable-shell.pl | 1 +
1 file changed, 1 insertion(+)
diff --git a/t/check-non-portable-shell.pl b/t/check-non-portable-shell.pl
index b170cbc..2707e42 100755
--- a/t/check-non-portable-shell.pl
+++ b/t/check-non-portable-shell.pl
@@ -18,6 +18,7 @@ while (<>) {
chomp;
/\bsed\s+-i/ and err 'sed -i is not portable';
/\becho\s+-n/ and err 'echo -n is not portable (please use printf)';
+ /\breadlink\s+/ and err 'readlink is not portable (please use ls -ld |
sed)';
/^\s*declare\s+/ and err 'arrays/declare not portable';
/^\s*[^#]\s*which\s/ and err 'which is not portable (please use type)';
/\btest\s+[^=]*==/ and err '"test a == b" is not portable (please use
=)';
--
2.7.0.rc3
--
David
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html