Merge branch 'ak/t7800-wo-readlink' into maint
authorJunio C Hamano <gitster@pobox.com>
Mon, 11 Jul 2016 17:44:15 +0000 (10:44 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 11 Jul 2016 17:44:15 +0000 (10:44 -0700)
One among four invocations of readlink(1) in our test suite has
been rewritten so that the test can run on systems without the
command (others are in valgrind test framework and t9802).

* ak/t7800-wo-readlink:
  t7800: readlink may not be available

1  2 
t/t7800-difftool.sh

diff --combined t/t7800-difftool.sh
@@@ -20,7 -20,7 +20,7 @@@ difftool_test_setup (
  prompt_given ()
  {
        prompt="$1"
 -      test "$prompt" = "Launch 'test-tool' [Y/n]: branch"
 +      test "$prompt" = "Launch 'test-tool' [Y/n]? branch"
  }
  
  # Create a file on master and change it on branch
@@@ -419,45 -419,22 +419,45 @@@ run_dir_diff_test 'difftool --dir-diff 
        grep file2 output
  '
  
 +run_dir_diff_test 'difftool --dir-diff with unmerged files' '
 +      test_when_finished git reset --hard &&
 +      test_config difftool.echo.cmd "echo ok" &&
 +      git checkout -B conflict-a &&
 +      git checkout -B conflict-b &&
 +      git checkout conflict-a &&
 +      echo a >>file &&
 +      git add file &&
 +      git commit -m conflict-a &&
 +      git checkout conflict-b &&
 +      echo b >>file &&
 +      git add file &&
 +      git commit -m conflict-b &&
 +      git checkout master &&
 +      git merge conflict-a &&
 +      test_must_fail git merge conflict-b &&
 +      cat >expect <<-EOF &&
 +              ok
 +      EOF
 +      git difftool --dir-diff $symlinks -t echo >actual &&
 +      test_cmp expect actual
 +'
 +
  write_script .git/CHECK_SYMLINKS <<\EOF
  for f in file file2 sub/sub
  do
        echo "$f"
-       readlink "$2/$f"
+       ls -ld "$2/$f" | sed -e 's/.* -> //'
  done >actual
  EOF
  
  test_expect_success PERL,SYMLINKS 'difftool --dir-diff --symlink without unstaged changes' '
        cat >expect <<-EOF &&
        file
 -      $(pwd)/file
 +      $PWD/file
        file2
 -      $(pwd)/file2
 +      $PWD/file2
        sub/sub
 -      $(pwd)/sub/sub
 +      $PWD/sub/sub
        EOF
        git difftool --dir-diff --symlink \
                --extcmd "./.git/CHECK_SYMLINKS" branch HEAD &&
@@@ -471,14 -448,14 +471,14 @@@ EO
  run_dir_diff_test 'difftool --dir-diff syncs worktree with unstaged change' '
        test_when_finished git reset --hard &&
        echo "orig content" >file &&
 -      git difftool -d $symlinks --extcmd "$(pwd)/modify-right-file" branch &&
 +      git difftool -d $symlinks --extcmd "$PWD/modify-right-file" branch &&
        echo "new content" >expect &&
        test_cmp expect file
  '
  
  run_dir_diff_test 'difftool --dir-diff syncs worktree without unstaged change' '
        test_when_finished git reset --hard &&
 -      git difftool -d $symlinks --extcmd "$(pwd)/modify-right-file" branch &&
 +      git difftool -d $symlinks --extcmd "$PWD/modify-right-file" branch &&
        echo "new content" >expect &&
        test_cmp expect file
  '
@@@ -489,7 -466,7 +489,7 @@@ EO
  
  test_expect_success PERL 'difftool --no-symlinks does not overwrite working tree file ' '
        echo "orig content" >file &&
 -      git difftool --dir-diff --no-symlinks --extcmd "$(pwd)/modify-file" branch &&
 +      git difftool --dir-diff --no-symlinks --extcmd "$PWD/modify-file" branch &&
        echo "new content" >expect &&
        test_cmp expect file
  '
@@@ -505,7 -482,7 +505,7 @@@ test_expect_success PERL 'difftool --no
                TMPDIR=$TRASH_DIRECTORY &&
                export TMPDIR &&
                echo "orig content" >file &&
 -              test_must_fail git difftool --dir-diff --no-symlinks --extcmd "$(pwd)/modify-both-files" branch &&
 +              test_must_fail git difftool --dir-diff --no-symlinks --extcmd "$PWD/modify-both-files" branch &&
                echo "wt content" >expect &&
                test_cmp expect file &&
                echo "tmp content" >expect &&
  
  test_expect_success PERL 'difftool properly honors gitlink and core.worktree' '
        git submodule add ./. submod/ule &&
 +      test_config -C submod/ule diff.tool checktrees &&
 +      test_config -C submod/ule difftool.checktrees.cmd '\''
 +              test -d "$LOCAL" && test -d "$REMOTE" && echo good
 +              '\'' &&
        (
                cd submod/ule &&
 -              test_config diff.tool checktrees &&
 -              test_config difftool.checktrees.cmd '\''
 -                      test -d "$LOCAL" && test -d "$REMOTE" && echo good
 -              '\'' &&
 +              echo good >expect &&
 +              git difftool --tool=checktrees --dir-diff HEAD~ >actual &&
 +              test_cmp expect actual
 +      )
 +'
 +
 +test_expect_success PERL,SYMLINKS 'difftool --dir-diff symlinked directories' '
 +      git init dirlinks &&
 +      (
 +              cd dirlinks &&
 +              git config diff.tool checktrees &&
 +              git config difftool.checktrees.cmd "echo good" &&
 +              mkdir foo &&
 +              : >foo/bar &&
 +              git add foo/bar &&
 +              test_commit symlink-one &&
 +              ln -s foo link &&
 +              git add link &&
 +              test_commit symlink-two &&
                echo good >expect &&
                git difftool --tool=checktrees --dir-diff HEAD~ >actual &&
                test_cmp expect actual