diff --git a/src/testdir/check.vim b/src/testdir/check.vim
index f176f83..6c3b1be 100644
--- a/src/testdir/check.vim
+++ b/src/testdir/check.vim
@@ -1,3 +1,5 @@
+source shared.vim
+
 " Command to check for the presence of a feature.
 command -nargs=1 CheckFeature call CheckFeature(<f-args>)
 func CheckFeature(name)
@@ -102,3 +104,11 @@
     throw 'Skipped: only works in the terminal'
   endif
 endfunc
+
+" Command to check that test is not running as root
+command CheckNotRoot call CheckNotRoot()
+func CheckNotRoot()
+  if IsRoot()
+    throw 'Skipped: cannot run test as root'
+  endif
+endfunc
diff --git a/src/testdir/shared.vim b/src/testdir/shared.vim
index cf15a4c..78f204c 100644
--- a/src/testdir/shared.vim
+++ b/src/testdir/shared.vim
@@ -325,3 +325,12 @@
   endif
   return 1
 endfunc
+
+func IsRoot()
+  if !has('unix')
+    return v:false
+  elseif $USER == 'root' || system('id -un') =~ '\<root\>'
+    return v:true
+  endif
+  return v:false
+endfunc
diff --git a/src/testdir/test_rename.vim b/src/testdir/test_rename.vim
index 3887fcf..5359b84 100644
--- a/src/testdir/test_rename.vim
+++ b/src/testdir/test_rename.vim
@@ -1,5 +1,7 @@
 " Test rename()
 
+source shared.vim
+
 func Test_rename_file_to_file()
   call writefile(['foo'], 'Xrename1')
 
@@ -81,7 +83,7 @@
 
   call assert_equal(0, rename('Xrenamedir/Xrenamefile', 'Xrenamefile'))
 
-  if !has('win32')
+  if !has('win32') && !IsRoot()
     " On Windows, the source file is removed despite
     " its directory being made not writable.
     call assert_equal(['foo'], readfile('Xrenamedir/Xrenamefile'))
diff --git a/src/testdir/test_swap.vim b/src/testdir/test_swap.vim
index 6e01ad0..aa67b43 100644
--- a/src/testdir/test_swap.vim
+++ b/src/testdir/test_swap.vim
@@ -1,5 +1,7 @@
 " Tests for the swap feature
 
+source shared.vim
+
 func s:swapname()
   return trim(execute('swapname'))
 endfunc
@@ -196,14 +198,17 @@
   quit
   call assert_equal(fnamemodify(swapfile_name, ':t'), fnamemodify(s:swapname, ':t'))
 
-  " Write the swapfile with a modified PID, now it will be automatically
-  " deleted. Process one should never be Vim.
-  let swapfile_bytes[24:27] = 0z01000000
-  call writefile(swapfile_bytes, swapfile_name)
-  let s:swapname = ''
-  split XswapfileText
-  quit
-  call assert_equal('', s:swapname)
+  " This test won't work as root because root can successfully run kill(1, 0)
+  if !IsRoot()
+    " Write the swapfile with a modified PID, now it will be automatically
+    " deleted. Process one should never be Vim.
+    let swapfile_bytes[24:27] = 0z01000000
+    call writefile(swapfile_bytes, swapfile_name)
+    let s:swapname = ''
+    split XswapfileText
+    quit
+    call assert_equal('', s:swapname)
+  endif
 
   " Now set the modified flag, the swap file will not be deleted
   let swapfile_bytes[28 + 80 + 899] = 0x55
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 0041965..7e8ef76 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -570,7 +570,7 @@
 
   " Case 3: Directory exists but is not accessible.
   " Skip this for root, it will be accessible anyway.
-  if $USER != 'root'
+  if !IsRoot()
     call mkdir('XdirNoAccess', '', '0600')
     " return early if the directory permissions could not be set properly
     if getfperm('XdirNoAccess')[2] == 'x'
@@ -1353,7 +1353,6 @@
 func Test_terminal_api_call()
   CheckRunVimInTerminal
 
-call ch_logfile('logfile', 'w')
   unlet! g:called_bufnum
   unlet! g:called_arg
 
diff --git a/src/testdir/test_viminfo.vim b/src/testdir/test_viminfo.vim
index 7ea9f78..a9dc8fd 100644
--- a/src/testdir/test_viminfo.vim
+++ b/src/testdir/test_viminfo.vim
@@ -736,6 +736,7 @@
 " Test for an unwritable and unreadble 'viminfo' file
 func Test_viminfo_perm()
   CheckUnix
+  CheckNotRoot
   call writefile([''], 'Xviminfo')
   call setfperm('Xviminfo', 'r-x------')
   call assert_fails('wviminfo Xviminfo', 'E137:')
diff --git a/src/version.c b/src/version.c
index 4e0af78..acbcc2d 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2133,
+/**/
     2132,
 /**/
     2131,
