diff --git a/src/testdir/test_getcwd.vim b/src/testdir/test_getcwd.vim
new file mode 100644
index 0000000..15eab2a
--- /dev/null
+++ b/src/testdir/test_getcwd.vim
@@ -0,0 +1,91 @@
+function! GetCwdInfo(win, tab)
+ 	let tab_changed = 0
+ 	let mod = ":t"
+ 	if a:tab > 0 && a:tab != tabpagenr()
+   	let tab_changed = 1
+   	exec "tabnext " . a:tab
+ 	endif
+ 	let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)
+ 	if tab_changed
+   	tabprevious
+ 	endif
+ 	if a:win == 0 && a:tab == 0
+   	let dirname = fnamemodify(getcwd(), mod)
+   	let lflag = haslocaldir()
+ 	elseif a:tab == 0
+   	let dirname = fnamemodify(getcwd(a:win), mod)
+   	let lflag = haslocaldir(a:win)
+ 	else
+   	let dirname = fnamemodify(getcwd(a:win, a:tab), mod)
+   	let lflag = haslocaldir(a:win, a:tab)
+ 	endif
+ 	return bufname . ' ' . dirname . ' ' . lflag
+endfunction
+
+" Do all test in a separate window to avoid E211 when we recursively
+" delete the Xtopdir directory during cleanup
+function SetUp()
+	set visualbell
+	set nocp viminfo+=nviminfo
+
+	" On windows a swapfile in Xtopdir prevents it from being cleaned up.
+	set noswapfile
+
+	" On windows a stale "Xtopdir" directory may exist, remove it so that
+	" we start from a clean state.
+	call delete("Xtopdir", "rf")
+	new
+	call mkdir('Xtopdir')
+	cd Xtopdir
+	call mkdir('Xdir1')
+	call mkdir('Xdir2')
+	call mkdir('Xdir3')
+endfunction
+
+let g:cwd=getcwd()
+function TearDown()
+	q
+	exec "cd " . g:cwd
+	call delete("Xtopdir", "rf")
+endfunction
+
+function Test_GetCwd()
+	new a
+	new b
+	new c
+	3wincmd w
+	lcd Xdir1
+	call assert_equal("a Xdir1 1", GetCwdInfo(0, 0))
+	wincmd W
+	call assert_equal("b Xtopdir 0", GetCwdInfo(0, 0))
+	wincmd W
+	lcd Xdir3
+	call assert_equal("c Xdir3 1", GetCwdInfo(0, 0))
+	call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), 0))
+	call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), 0))
+	call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), 0))
+	wincmd W
+	call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), tabpagenr()))
+	call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), tabpagenr()))
+	call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), tabpagenr()))
+
+	tabnew x
+	new y
+	new z
+	3wincmd w
+	call assert_equal("x Xtopdir 0", GetCwdInfo(0, 0))
+	wincmd W
+	lcd Xdir2
+	call assert_equal("y Xdir2 1", GetCwdInfo(0, 0))
+	wincmd W
+	lcd Xdir3
+	call assert_equal("z Xdir3 1", GetCwdInfo(0, 0))
+	call assert_equal("x Xtopdir 0", GetCwdInfo(bufwinnr("x"), 0))
+	call assert_equal("y Xdir2 1", GetCwdInfo(bufwinnr("y"), 0))
+	call assert_equal("z Xdir3 1", GetCwdInfo(bufwinnr("z"), 0))
+	let tp_nr = tabpagenr()
+	tabrewind
+	call assert_equal("x Xtopdir 0", GetCwdInfo(3, tp_nr))
+	call assert_equal("y Xdir2 1", GetCwdInfo(2, tp_nr))
+	call assert_equal("z Xdir3 1", GetCwdInfo(1, tp_nr))
+endfunc
