patch 8.1.0453: MS-Windows: executable() is not reliable

Problem:    MS-Windows: executable() is not reliable.
Solution:   Use $PATHEXT properly. (Yasuhiro Matsumoto, closes #3412)
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index cc82f81..17f7c19 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -800,6 +800,19 @@
   bw!
 endfunc
 
+func Test_Executable()
+  if has('win32')
+    call assert_equal(1, executable('notepad'))
+    call assert_equal(1, executable('notepad.exe'))
+    call assert_equal(0, executable('notepad.exe.exe'))
+    call assert_equal(0, executable('shell32.dll'))
+    call assert_equal(0, executable('win.ini'))
+  elseif has('unix')
+    call assert_equal(1, executable('cat'))
+    call assert_equal(0, executable('dog'))
+  endif
+endfunc
+
 func Test_hostname()
   let hostname_vim = hostname()
   if has('unix')