patch 8.2.5143: some tests fail when using valgrind

Problem:    Some tests fail when using valgrind. Spurious leak reports.
Solution:   Use WaitForAssert().  Avoid failing fork/exec.  Skip tests where a
            job is killed when running valgrind.
diff --git a/src/testdir/test_popup.vim b/src/testdir/test_popup.vim
index c389f63..5fb7e82 100644
--- a/src/testdir/test_popup.vim
+++ b/src/testdir/test_popup.vim
@@ -1177,13 +1177,12 @@
   END
   call writefile(lines, 'Xtest1')
   let buf = RunVimInTerminal('--cmd "set rightleft" Xtest1', {})
-  call term_wait(buf)
   call term_sendkeys(buf, "Go\<C-P>")
   call VerifyScreenDump(buf, 'Test_pum_rightleft_01', {'rows': 8})
   call term_sendkeys(buf, "\<C-P>\<C-Y>")
-  call term_wait(buf)
+  call TermWait(buf, 30)
   redraw!
-  call assert_match('\s*miv', Screenline(5))
+  call WaitForAssert({-> assert_match('\s*miv', Screenline(5))})
 
   " Test for expanding tabs to spaces in the popup menu
   let lines =<< trim END
@@ -1193,15 +1192,15 @@
   END
   call writefile(lines, 'Xtest2')
   call term_sendkeys(buf, "\<Esc>:e! Xtest2\<CR>")
-  call term_wait(buf)
+  call TermWait(buf, 30)
   call term_sendkeys(buf, "Goone\<C-X>\<C-L>")
-  call term_wait(buf)
+  call TermWait(buf, 30)
   redraw!
   call VerifyScreenDump(buf, 'Test_pum_rightleft_02', {'rows': 7})
   call term_sendkeys(buf, "\<C-Y>")
-  call term_wait(buf)
+  call TermWait(buf, 30)
   redraw!
-  call assert_match('\s*eerht     eno', Screenline(4))
+  call WaitForAssert({-> assert_match('\s*eerht     eno', Screenline(4))})
 
   call StopVimInTerminal(buf)
   call delete('Xtest1')
@@ -1218,15 +1217,15 @@
   END
   call writefile(lines, 'Xtest1')
   let buf = RunVimInTerminal('--cmd "set pumheight=2" Xtest1', {})
-  call term_wait(buf)
+  call TermWait(buf)
   call term_sendkeys(buf, "Go\<C-P>\<C-P>\<C-P>")
   call VerifyScreenDump(buf, 'Test_pum_scrollbar_01', {'rows': 7})
   call term_sendkeys(buf, "\<C-E>\<Esc>dd")
-  call term_wait(buf)
+  call TermWait(buf)
 
   if has('rightleft')
     call term_sendkeys(buf, ":set rightleft\<CR>")
-    call term_wait(buf)
+    call TermWait(buf)
     call term_sendkeys(buf, "Go\<C-P>\<C-P>\<C-P>")
     call VerifyScreenDump(buf, 'Test_pum_scrollbar_02', {'rows': 7})
   endif