t / t2300-cd-to-toplevel.shon commit test-lib: use subshell instead of cd $new && .. && cd $old (0d314ce)
   1#!/bin/sh
   2
   3test_description='cd_to_toplevel'
   4
   5. ./test-lib.sh
   6
   7test_cd_to_toplevel () {
   8        test_expect_success $3 "$2" '
   9                (
  10                        cd '"'$1'"' &&
  11                        . "$(git --exec-path)"/git-sh-setup &&
  12                        cd_to_toplevel &&
  13                        [ "$(pwd -P)" = "$TOPLEVEL" ]
  14                )
  15        '
  16}
  17
  18TOPLEVEL="$(pwd -P)/repo"
  19mkdir -p repo/sub/dir
  20mv .git repo/
  21SUBDIRECTORY_OK=1
  22
  23test_cd_to_toplevel repo 'at physical root'
  24
  25test_cd_to_toplevel repo/sub/dir 'at physical subdir'
  26
  27ln -s repo symrepo 2>/dev/null
  28test_cd_to_toplevel symrepo 'at symbolic root' SYMLINKS
  29
  30ln -s repo/sub/dir subdir-link 2>/dev/null
  31test_cd_to_toplevel subdir-link 'at symbolic subdir' SYMLINKS
  32
  33cd repo
  34ln -s sub/dir internal-link 2>/dev/null
  35test_cd_to_toplevel internal-link 'at internal symbolic subdir' SYMLINKS
  36
  37test_done