patch 8.2.3518: Test_xrestore sometimes fails

Problem:    Test_xrestore sometimes fails.
Solution:   Mark the test as flayky.  Move marking test as flaky to the test
            instead of listing them in runtest.
diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim
index 2ef0f55..cc45393 100644
--- a/src/testdir/runtest.vim
+++ b/src/testdir/runtest.vim
@@ -404,42 +404,6 @@
   endtry
 endif
 
-" Names of flaky tests.
-let s:flaky_tests = [
-      \ 'Test_BufWrite_lockmarks()',
-      \ 'Test_autocmd_SafeState()',
-      \ 'Test_bufunload_all()',
-      \ 'Test_client_server()',
-      \ 'Test_close_and_exit_cb()',
-      \ 'Test_close_output_buffer()',
-      \ 'Test_collapse_buffers()',
-      \ 'Test_cwd()',
-      \ 'Test_diff_screen()',
-      \ 'Test_exit_callback_interval()',
-      \ 'Test_map_timeout_with_timer_interrupt()',
-      \ 'Test_out_cb()',
-      \ 'Test_pipe_through_sort_all()',
-      \ 'Test_pipe_through_sort_some()',
-      \ 'Test_popup_and_window_resize()',
-      \ 'Test_quoteplus()',
-      \ 'Test_quotestar()',
-      \ 'Test_reltime()',
-      \ 'Test_state()',
-      \ 'Test_terminal_composing_unicode()',
-      \ 'Test_terminal_does_not_truncate_last_newlines()',
-      \ 'Test_terminal_no_cmd()',
-      \ 'Test_terminal_noblock()',
-      \ 'Test_terminal_redir_file()',
-      \ 'Test_termwinscroll()',
-      \ 'Test_timer_oneshot()',
-      \ 'Test_timer_paused()',
-      \ 'Test_timer_repeat_many()',
-      \ 'Test_timer_repeat_three()',
-      \ 'Test_timer_stop_all_in_callback()',
-      \ 'Test_timer_stop_in_callback()',
-      \ 'Test_timer_with_partial_callback()',
-      \ ]
-
 " Locate Test_ functions and execute them.
 redir @q
 silent function /^Test_
@@ -491,8 +455,7 @@
   " - it fails five times (with a different message)
   if len(v:errors) > 0
         \ && $TEST_NO_RETRY == ''
-        \ && (index(s:flaky_tests, g:testfunc) >= 0
-        \      || g:test_is_flaky)
+        \ && g:test_is_flaky
     while 1
       call add(s:messages, 'Found errors in ' . g:testfunc . ':')
       call extend(s:messages, v:errors)
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index 7faa455..3893b79 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
Binary files differ
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index fbe6a84..f8cdef4 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -795,6 +795,7 @@
 endfunc
 
 func Test_close_output_buffer()
+  let g:test_is_flaky = 1
   enew!
   let test_lines = ['one', 'two']
   call setline(1, test_lines)
@@ -935,6 +936,7 @@
 
 func Run_pipe_through_sort(all, use_buffer)
   CheckExecutable sort
+  let g:test_is_flaky = 1
 
   let options = {'out_io': 'buffer', 'out_name': 'sortout'}
   if a:use_buffer
@@ -1206,6 +1208,7 @@
 endfunc
 
 func Test_out_cb()
+  let g:test_is_flaky = 1
   let dict = {'thisis': 'dict: '}
   func dict.outHandler(chan, msg) dict
     if type(a:msg) == v:t_string
@@ -1333,6 +1336,7 @@
 endfunc
 
 func Test_close_and_exit_cb()
+  let g:test_is_flaky = 1
   let g:retdict = {'ret': {}}
   func g:retdict.close_cb(ch) dict
     let self.ret['close_cb'] = a:ch->ch_getjob()->job_status()
@@ -1560,6 +1564,7 @@
 
 func Test_exit_callback_interval()
   CheckFunction reltimefloat
+  let g:test_is_flaky = 1
 
   let g:exit_cb_val = {'start': reltime(), 'end': 0, 'process': 0}
   let job = [s:python, '-c', 'import time;time.sleep(0.5)']->job_start({'exit_cb': 'MyExitTimeCb'})
@@ -1742,6 +1747,7 @@
 endfunc
 
 func Test_collapse_buffers()
+  let g:test_is_flaky = 1
   CheckExecutable cat
 
   sp test_channel.vim
@@ -1884,6 +1890,7 @@
 endfunc
 
 func Test_cwd()
+  let g:test_is_flaky = 1
   let g:envstr = ''
   if has('win32')
     let expect = $TEMP
diff --git a/src/testdir/test_clientserver.vim b/src/testdir/test_clientserver.vim
index a088e17..03d201d 100644
--- a/src/testdir/test_clientserver.vim
+++ b/src/testdir/test_clientserver.vim
@@ -26,6 +26,7 @@
 endfunc
 
 func Test_client_server()
+  let g:test_is_flaky = 1
   let cmd = GetVimCommand()
   if cmd == ''
     throw 'GetVimCommand() failed'
diff --git a/src/testdir/test_diffmode.vim b/src/testdir/test_diffmode.vim
index 268c3e9..08ec71b 100644
--- a/src/testdir/test_diffmode.vim
+++ b/src/testdir/test_diffmode.vim
@@ -845,6 +845,7 @@
 endfunc
 
 func Test_diff_screen()
+  let g:test_is_flaky = 1
   CheckScreendump
   CheckFeature menu
 
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index d060ac4..7dd1894 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -2286,6 +2286,7 @@
 
 func Test_state()
   CheckRunVimInTerminal
+  let g:test_is_flaky = 1
 
   let getstate = ":echo 'state: ' .. g:state .. '; mode: ' .. g:mode\<CR>"
 
diff --git a/src/testdir/test_gui.vim b/src/testdir/test_gui.vim
index c01151c..6b849c7 100644
--- a/src/testdir/test_gui.vim
+++ b/src/testdir/test_gui.vim
@@ -120,6 +120,7 @@
 endfunc
 
 func Test_quoteplus()
+  let g:test_is_flaky = 1
   let skipped = ''
 
   if !g:x11_based_gui
diff --git a/src/testdir/test_mapping.vim b/src/testdir/test_mapping.vim
index a447ba3..d2b9f37 100644
--- a/src/testdir/test_mapping.vim
+++ b/src/testdir/test_mapping.vim
@@ -289,6 +289,7 @@
 func Test_map_timeout_with_timer_interrupt()
   CheckFeature job
   CheckFeature timers
+  let g:test_is_flaky = 1
 
   " Confirm the timer invoked in exit_cb of the job doesn't disturb mapped key
   " sequence.
@@ -1155,7 +1156,7 @@
   call feedkeys("v\<F4>", 'xt!')
   call assert_equal(['v', 1, 12], [mode(1), col('v'), col('.')])
 
-  " can invoke an opeartor, ending the visual mode
+  " can invoke an operator, ending the visual mode
   let @a = ''
   call feedkeys("\<F5>", 'xt!')
   call assert_equal('n', mode(1))
diff --git a/src/testdir/test_paste.vim b/src/testdir/test_paste.vim
index ef35cec..c94fe7c 100644
--- a/src/testdir/test_paste.vim
+++ b/src/testdir/test_paste.vim
@@ -136,6 +136,8 @@
 
 func Test_xrestore()
   CheckFeature xterm_clipboard
+  let g:test_is_flaky = 1
+
   let display = $DISPLAY
   new
   call CheckCopyPaste()
diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim
index 0799df5..2f29163 100644
--- a/src/testdir/test_popup.vim
+++ b/src/testdir/test_popup.vim
@@ -665,6 +665,7 @@
   CheckFeature terminal
   CheckFeature quickfix
   CheckNotGui
+  let g:test_is_flaky = 1
 
   let h = winheight(0)
   if h < 15
diff --git a/src/testdir/test_quotestar.vim b/src/testdir/test_quotestar.vim
index 6b8aebf..b669019 100644
--- a/src/testdir/test_quotestar.vim
+++ b/src/testdir/test_quotestar.vim
@@ -131,6 +131,7 @@
 endfunc
 
 func Test_quotestar()
+  let g:test_is_flaky = 1
   let skipped = ''
 
   let quotestar_saved = @*
diff --git a/src/testdir/test_reltime.vim b/src/testdir/test_reltime.vim
index c76d7a1..2f2e7ae 100644
--- a/src/testdir/test_reltime.vim
+++ b/src/testdir/test_reltime.vim
@@ -5,6 +5,7 @@
 CheckFeature float
 
 func Test_reltime()
+  let g:test_is_flaky = 1
   let now = reltime()
   sleep 10m
   let later = reltime()
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 3944294..eb5924a 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -698,6 +698,7 @@
 endfunction
 
 func Test_terminal_noblock()
+  let g:test_is_flaky = 1
   let buf = term_start(&shell)
   let wait_time = 5000
   let letters = 'abcdefghijklmnopqrstuvwxyz'
@@ -805,6 +806,7 @@
 endfunc
 
 func Test_terminal_no_cmd()
+  let g:test_is_flaky = 1
   let buf = term_start('NONE', {})
   call assert_notequal(0, buf)
 
@@ -855,6 +857,7 @@
 endfunc
 
 func Test_terminal_redir_file()
+  let g:test_is_flaky = 1
   let cmd = Get_cat_123_cmd()
   let buf = term_start(cmd, {'out_io': 'file', 'out_name': 'Xfile'})
   call TermWait(buf)
@@ -946,6 +949,7 @@
 endfunc
 
 func Test_terminal_composing_unicode()
+  let g:test_is_flaky = 1
   let save_enc = &encoding
   set encoding=utf-8
 
diff --git a/src/testdir/test_terminal2.vim b/src/testdir/test_terminal2.vim
index 0f8dcb6..68f9ad8 100644
--- a/src/testdir/test_terminal2.vim
+++ b/src/testdir/test_terminal2.vim
@@ -217,6 +217,7 @@
   CheckUnix
   " TODO: Somehow this test sometimes hangs in the GUI
   CheckNotGui
+  let g:test_is_flaky = 1
 
   " Let the terminal output more than 'termwinscroll' lines, some at the start
   " will be dropped.
@@ -412,6 +413,7 @@
   if has('conpty')
     throw 'Skipped: fail on ConPTY'
   endif
+  let g:test_is_flaky = 1
   let contents = [
   \   [ 'One', '', 'X' ],
   \   [ 'Two', '', '' ],
diff --git a/src/testdir/test_timers.vim b/src/testdir/test_timers.vim
index caeeed6..865a03b 100644
--- a/src/testdir/test_timers.vim
+++ b/src/testdir/test_timers.vim
@@ -16,6 +16,7 @@
 endfunc
 
 func Test_timer_oneshot()
+  let g:test_is_flaky = 1
   let g:val = 0
   let timer = timer_start(50, 'MyHandler')
   let slept = WaitFor('g:val == 1')
@@ -34,6 +35,7 @@
 endfunc
 
 func Test_timer_repeat_three()
+  let g:test_is_flaky = 1
   let g:val = 0
   let timer = timer_start(50, 'MyHandler', {'repeat': 3})
   let slept = WaitFor('g:val == 3')
@@ -51,6 +53,7 @@
 endfunc
 
 func Test_timer_repeat_many()
+  let g:test_is_flaky = 1
   let g:val = 0
   let timer = timer_start(50, 'MyHandler', {'repeat': -1})
   sleep 200m
@@ -64,6 +67,7 @@
 endfunc
 
 func Test_timer_with_partial_callback()
+  let g:test_is_flaky = 1
   let g:val = 0
   let meow = {'one': 1}
   function meow.bite(...)
@@ -127,6 +131,7 @@
 endfunc
 
 func Test_timer_paused()
+  let g:test_is_flaky = 1
   let g:val = 0
 
   let id = timer_start(50, 'MyHandler')
@@ -186,6 +191,7 @@
 endfunc
 
 func Test_timer_stop_in_callback()
+  let g:test_is_flaky = 1
   call assert_equal(0, len(timer_info()))
   let g:timer1 = timer_start(10, 'StopTimer1')
   let slept = 0
@@ -205,6 +211,7 @@
 endfunc
 
 func Test_timer_stop_all_in_callback()
+  let g:test_is_flaky = 1
   call assert_equal(0, len(timer_info()))
   call timer_start(10, 'StopTimerAll')
   call assert_equal(1, len(timer_info()))
@@ -471,4 +478,5 @@
   call delete('XTest_timermessage')
 endfunc
 
+
 " vim: shiftwidth=2 sts=2 expandtab