updated for version 7.4a.014
Problem:    Test 86 and 89 have a problem with using a shadow dir.
Solution:   Adjust for the different directory structure. (James McCoy)
diff --git a/src/testdir/test86.in b/src/testdir/test86.in
index 8b4a4c1..ba3557b 100644
--- a/src/testdir/test86.in
+++ b/src/testdir/test86.in
@@ -857,8 +857,19 @@
 cb.append(fnamemodify('.', ':p:h:t'))
 cb.append(vim.eval('@%'))
 os.chdir('..')
-cb.append(fnamemodify('.', ':p:h:t'))
-cb.append(vim.eval('@%').replace(os.path.sep, '/'))
+path = fnamemodify('.', ':p:h:t')
+if path != 'src':
+  # Running tests from a shadow directory, so move up another level
+  # This will result in @% looking like shadow/testdir/test86.in, hence the
+  # extra fnamemodify
+  os.chdir('..')
+  cb.append(fnamemodify('.', ':p:h:t'))
+  cb.append(fnamemodify(vim.eval('@%'), ':s?^%s.??' % path).replace(os.path.sep, '/'))
+  os.chdir(path)
+  del path
+else:
+  cb.append(fnamemodify('.', ':p:h:t'))
+  cb.append(vim.eval('@%').replace(os.path.sep, '/'))
 os.chdir('testdir')
 cb.append(fnamemodify('.', ':p:h:t'))
 cb.append(vim.eval('@%'))
diff --git a/src/testdir/test89.in b/src/testdir/test89.in
index 2ad3f25..1c3079f 100644
--- a/src/testdir/test89.in
+++ b/src/testdir/test89.in
@@ -51,7 +51,10 @@
 :$put h
 :"
 :let cwd=getcwd()
-:cd ../..
+:cd ..
+:" Tests may be run from a shadow directory, so an extra cd needs to be done to
+:" get above src/
+:if fnamemodify(getcwd(), ':t') != 'src' | cd ../.. | else | cd .. | endif
 :$put =''
 :$put ='Testing findfile'
 :$put =''