diff --git a/src/testdir/test_clientserver.vim b/src/testdir/test_clientserver.vim
index 385ff91..2e4a66e 100644
--- a/src/testdir/test_clientserver.vim
+++ b/src/testdir/test_clientserver.vim
@@ -34,7 +34,7 @@
   " When using valgrind it takes much longer.
   call WaitForAssert({-> assert_match(name, serverlist())})
 
-  call remote_foreground(name)
+  eval name->remote_foreground()
 
   call remote_send(name, ":let testvar = 'yes'\<CR>")
   call WaitFor('remote_expr("' . name . '", "exists(\"testvar\") ? testvar : \"\"", "", 1) == "yes"')
@@ -53,7 +53,7 @@
     endif
     " Wait for the server to be up and answering requests.
     sleep 100m
-    call WaitForAssert({-> assert_true(remote_expr(name, "v:version", "", 1) != "")})
+    call WaitForAssert({-> assert_true(name->remote_expr("v:version", "", 1) != "")})
 
     call remote_send(name, ":let testvar = 'maybe'\<CR>")
     call WaitForAssert({-> assert_equal('maybe', remote_expr(name, "testvar", "", 2))})
@@ -63,7 +63,7 @@
 
   " Expression evaluated locally.
   if v:servername == ''
-    call remote_startserver('MYSELF')
+    eval 'MYSELF'->remote_startserver()
     " May get MYSELF1 when running the test again.
     call assert_match('MYSELF', v:servername)
   endif
@@ -71,11 +71,11 @@
   call assert_equal('myself', remote_expr(v:servername, 'testvar'))
 
   call remote_send(name, ":call server2client(expand('<client>'), 'got it')\<CR>", 'g:myserverid')
-  call assert_equal('got it', remote_read(g:myserverid, 2))
+  call assert_equal('got it', g:myserverid->remote_read(2))
 
   call remote_send(name, ":call server2client(expand('<client>'), 'another')\<CR>", 'g:myserverid')
   let peek_result = 'nothing'
-  let r = remote_peek(g:myserverid, 'peek_result')
+  let r = g:myserverid->remote_peek('peek_result')
   " unpredictable whether the result is already available.
   if r > 0
     call assert_equal('another', peek_result)
@@ -89,7 +89,7 @@
   call assert_equal('another', g:peek_result)
   call assert_equal('another', remote_read(g:myserverid, 2))
 
-  call remote_send(name, ":qa!\<CR>")
+  eval name->remote_send(":qa!\<CR>")
   try
     call WaitForAssert({-> assert_equal("dead", job_status(job))})
   finally
diff --git a/src/testdir/test_eval_stuff.vim b/src/testdir/test_eval_stuff.vim
index 82f9cac..b518f5a 100644
--- a/src/testdir/test_eval_stuff.vim
+++ b/src/testdir/test_eval_stuff.vim
@@ -75,7 +75,7 @@
   call setline(1, ['one', 'two', 'three'])
   setlocal ff=dos
   write XReadfile
-  let lines = readfile('XReadfile')
+  let lines = 'XReadfile'->readfile()
   call assert_equal(['one', 'two', 'three'], lines)
   let lines = readfile('XReadfile', '', 2)
   call assert_equal(['one', 'two'], lines)
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index fc22bcd..dfd6a93 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -253,7 +253,7 @@
   call delete('Xlink')
 
   silent !ln -s -f Xlink2/ Xlink1
-  call assert_equal('Xlink2', resolve('Xlink1'))
+  call assert_equal('Xlink2', 'Xlink1'->resolve())
   call assert_equal('Xlink2/', resolve('Xlink1/'))
   call delete('Xlink1')
 
@@ -1413,7 +1413,7 @@
   " is invalid in that buffer.
   call writefile(['just one line'], 'Xfuncrange2')
   new
-  call setline(1, range(10))
+  call setline(1, 10->range())
   write Xfuncrange1
   call assert_fails('5,8call EditAnotherFile()', 'E16:')
 
@@ -1544,7 +1544,7 @@
   call assert_equal(['bar.txt', 'dir', 'foo.txt'], sort(files))
 
   " Only results containing "f"
-  let files = readdir('Xdir', { x -> stridx(x, 'f') !=- 1 })
+  let files = 'Xdir'->readdir({ x -> stridx(x, 'f') !=- 1 })
   call assert_equal(['foo.txt'], sort(files))
 
   " Only .txt files
diff --git a/src/testdir/test_reltime.vim b/src/testdir/test_reltime.vim
index 404ea3f..e25c3ce 100644
--- a/src/testdir/test_reltime.vim
+++ b/src/testdir/test_reltime.vim
@@ -8,11 +8,11 @@
   let now = reltime()
   sleep 10m
   let later = reltime()
-  let elapsed = reltime(now)
+  let elapsed = now->reltime()
   call assert_true(reltimestr(elapsed) =~ '0\.0')
-  call assert_true(reltimestr(elapsed) != '0.0')
+  call assert_true(elapsed->reltimestr() != '0.0')
   call assert_true(reltimefloat(elapsed) < 0.1)
-  call assert_true(reltimefloat(elapsed) > 0.0)
+  call assert_true(elapsed->reltimefloat() > 0.0)
 
   let same = reltime(now, now)
   call assert_equal('0.000', split(reltimestr(same))[0][:4])
diff --git a/src/testdir/test_rename.vim b/src/testdir/test_rename.vim
index 2311caf..3887fcf 100644
--- a/src/testdir/test_rename.vim
+++ b/src/testdir/test_rename.vim
@@ -25,7 +25,7 @@
   set fileignorecase
   call writefile(['foo'], 'Xrename')
 
-  call assert_equal(0, rename('Xrename', 'XRENAME'))
+  call assert_equal(0, 'Xrename'->rename('XRENAME'))
 
   call assert_equal(['foo'], readfile('XRENAME'))
 
