fun! Test_Detect_Gopath() abort let l:gopath = $GOPATH try let g:go_autodetect_gopath = 1 let l:tmp = go#util#tempdir("pathdetect") let l:tmp2 = go#util#tempdir("pathdetect-nogodep") call mkdir(l:tmp . '/subdir', 'p') call mkdir(l:tmp . '/Godeps/_workspace', 'p') exe ':e ' . l:tmp . '/a.go' call assert_equal(l:tmp . '/Godeps/_workspace:' . l:gopath, $GOPATH) exe ':e ' . l:tmp . '/not-a-go-file' call assert_equal(l:gopath, $GOPATH) exe ':e ' . l:tmp . '/subdir/a.go' call assert_equal(l:tmp . '/Godeps/_workspace:' . l:gopath, $GOPATH) exec ':e ' . l:tmp2 . '/a.go' call assert_equal(l:gopath, $GOPATH) finally let g:go_autodetect_gopath = 0 call delete(l:tmp, 'rf') call delete(l:tmp2, 'rf') endtry endfun fun! Test_Detect_Gopath_disabled() abort let l:gopath = $GOPATH try let g:go_autodetect_gopath = 0 let l:tmp = go#util#tempdir("pathdetect") let l:tmp2 = go#util#tempdir("pathdetect-nogodep") call mkdir(l:tmp . '/subdir', 'p') call mkdir(l:tmp . '/Godeps/_workspace', 'p') exe ':e ' . l:tmp . '/a.go' call assert_equal(l:gopath, $GOPATH) exe ':e ' . l:tmp . '/not-a-go-file' call assert_equal(l:gopath, $GOPATH) exe ':e ' . l:tmp . '/subdir/a.go' call assert_equal(l:gopath, $GOPATH) exec ':e ' . l:tmp2 . '/a.go' call assert_equal(l:gopath, $GOPATH) finally let g:go_autodetect_gopath = 0 call delete(l:tmp, 'rf') call delete(l:tmp2, 'rf') endtry endfun