patch 8.1.2092: MS-Windows: redirect in system() does not work

Problem:    MS-Windows: redirect in system() does not work.
Solution:   Handle 'shellxescape' and 'shellxquote' better. (Yasuhiro
            Matsumoto, closes #2054)
diff --git a/src/testdir/test_system.vim b/src/testdir/test_system.vim
index deee51f..22aceb7 100644
--- a/src/testdir/test_system.vim
+++ b/src/testdir/test_system.vim
@@ -3,9 +3,24 @@
 source shared.vim
 
 func Test_System()
-  if !executable('echo') || !executable('cat') || !executable('wc')
+  if !has('win32')
+    call assert_equal("123\n", system('echo 123'))
+    call assert_equal(['123'], systemlist('echo 123'))
+    call assert_equal('123',   system('cat', '123'))
+    call assert_equal(['123'], systemlist('cat', '123'))
+    call assert_equal(["as\<NL>df"], systemlist('cat', ["as\<NL>df"]))
+  else
+    call assert_equal("123\n", system('echo 123'))
+    call assert_equal(["123\r"], systemlist('echo 123'))
+    call assert_equal("123",   system('more', '123'))
+    call assert_equal(["123"], systemlist('more', '123'))
+    call assert_equal(["as\<NL>df"], systemlist('more', ["as\<NL>df"]))
+  endif
+
+  if !executable('cat') || !executable('wc')
     return
   endif
+
   let out = 'echo 123'->system()
   " On Windows we may get a trailing space.
   if out != "123 \n"
@@ -13,14 +28,17 @@
   endif
 
   let out = 'echo 123'->systemlist()
-  " On Windows we may get a trailing space and CR.
-  if out != ["123 \r"]
-    call assert_equal(['123'], out)
+  if !has('win32')
+    call assert_equal(["123"], out)
+  else
+    call assert_equal(["123\r"], out)
   endif
 
-  call assert_equal('123',   system('cat', '123'))
-  call assert_equal(['123'], systemlist('cat', '123'))
-  call assert_equal(["as\<NL>df"], systemlist('cat', ["as\<NL>df"]))
+  if executable('cat')
+    call assert_equal('123',   system('cat', '123'))	
+    call assert_equal(['123'], systemlist('cat', '123'))	
+    call assert_equal(["as\<NL>df"], systemlist('cat', ["as\<NL>df"])) 
+  endif
 
   new Xdummy
   call setline(1, ['asdf', "pw\<NL>er", 'xxxx'])
@@ -39,9 +57,11 @@
     call assert_equal(['3'],  out)
   endif
 
-  let out = systemlist('cat', bufnr('%'))
-  " On Windows we may get a trailing CR.
-  if out != ["asdf\r", "pw\<NL>er\r", "xxxx\r"]
+  if !has('win32')
+    let out = systemlist('cat', bufnr('%'))
+    call assert_equal(['asdf', "pw\<NL>er", 'xxxx'],  out)
+  else
+    let out = systemlist('more', bufnr('%'))
     call assert_equal(['asdf', "pw\<NL>er", 'xxxx'],  out)
   endif
   bwipe!