patch 8.2.2880: unified diff fails if actually used

Problem:    Unified diff fails if actually used.
Solution:   Invoke :diffupdate in the test.  Fix the check for working external
            diff. (Ghjuvan Lacambre, Christian Brabandt, closes #8197)
diff --git a/src/testdir/test_diffmode.vim b/src/testdir/test_diffmode.vim
index 4696456..96a8d2c 100644
--- a/src/testdir/test_diffmode.vim
+++ b/src/testdir/test_diffmode.vim
@@ -796,6 +796,7 @@
 
   " also test unified diff
   call term_sendkeys(a:buf, ":call SetupUnified()\<CR>:")
+  call term_sendkeys(a:buf, ":redraw!\<CR>:")
   call VerifyScreenDump(a:buf, a:dumpfile, {}, 'unified')
   call term_sendkeys(a:buf, ":call StopUnified()\<CR>:")
 endfunc
@@ -817,10 +818,11 @@
       func UnifiedDiffExpr()
         " Prepend some text to check diff type detection
         call writefile(['warning', '  message'], v:fname_out)
-        silent exe '!diff -u ' .. v:fname_in .. ' ' .. v:fname_new .. '>>' .. v:fname_out
+        silent exe '!diff -U0 ' .. v:fname_in .. ' ' .. v:fname_new .. '>>' .. v:fname_out
       endfunc
       func SetupUnified()
         set diffexpr=UnifiedDiffExpr()
+        diffupdate
       endfunc
       func StopUnified()
         set diffexpr=
@@ -1218,4 +1220,5 @@
   call delete('Xtest_diff_cuc')
 endfunc
 
+
 " vim: shiftwidth=2 sts=2 expandtab