patch 9.1.1061: tests: test_glvs fails when unarchiver not available

Problem:  tests: test_glvs fails when unarchiver not available
          (Brian L. Matthews)
Solution: Check if an unarchiver is available, skip the test otherwise

Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/testdir/test_glvs.vim b/src/testdir/test_glvs.vim
index 765f8b5..1970826 100644
--- a/src/testdir/test_glvs.vim
+++ b/src/testdir/test_glvs.vim
@@ -50,46 +50,76 @@
     " (instead of relying on autoload) because set up depends on shell selection
     runtime plugin/vimballPlugin.vim
     runtime plugin/getscriptPlugin.vim
+endfunc
 
+func CheckTool(tool)
     " define tools location
     if has('win32')
-
         if executable('git')
            let git_path = trim(system('powershell -Command "Split-Path (Split-Path (gcm git).Source)"'))
         endif
 
-        if executable('bunzip2')
-            let g:GetLatestVimScripts_bunzip2= "bunzip2"
-        elseif executable('7z')
-            let g:GetLatestVimScripts_bunzip2= "7z x"
-        elseif exists('git_path')
-            let g:GetLatestVimScripts_bunzip2= $'{git_path}\usr\bin\bunzip2'
-        else
-            call assert_report("Missing tool to decompress .bz2 files")
+        if a:tool == 'bunzip2'
+          if executable('bunzip2')
+              let g:GetLatestVimScripts_bunzip2= "bunzip2"
+          elseif executable('7z')
+              let g:GetLatestVimScripts_bunzip2= "7z x"
+          elseif exists('git_path')
+              let g:GetLatestVimScripts_bunzip2= $'{git_path}\usr\bin\bunzip2'
+          else
+              throw "Skipped: Missing tool to decompress .bz2 files"
+          endif
         endif
 
-        if executable('gunzip')
-            let g:GetLatestVimScripts_gunzip= "gunzip"
-        elseif executable('7z')
-            let g:GetLatestVimScripts_gunzip="7z e"
-        elseif exists('git_path')
-            let g:GetLatestVimScripts_gunzip= $'{git_path}\usr\bin\gunzip'
-        else
-            call assert_report("Missing tool to decompress .gz files")
+        if a:tool == 'gunzip'
+          if executable('gunzip')
+              let g:GetLatestVimScripts_gunzip= "gunzip"
+          elseif executable('7z')
+              let g:GetLatestVimScripts_gunzip="7z e"
+          elseif exists('git_path')
+              let g:GetLatestVimScripts_gunzip= $'{git_path}\usr\bin\gunzip'
+          else
+              throw "Skipped: Missing tool to decompress .gz files"
+          endif
         endif
 
-        if executable('unxz')
-            let g:GetLatestVimScripts_unxz= "unxz"
-        elseif executable('7z')
-            let g:GetLatestVimScripts_unxz="7z x"
-        elseif exists('git_path')
-            let g:GetLatestVimScripts_unxz= $'{git_path}\mingw64\bin\unxz'
-        else
-            call assert_report("Missing tool to decompress .xz files")
+        if a:tool == 'unxz'
+          if executable('unxz')
+              let g:GetLatestVimScripts_unxz= "unxz"
+          elseif executable('7z')
+              let g:GetLatestVimScripts_unxz="7z x"
+          elseif exists('git_path')
+              let g:GetLatestVimScripts_unxz= $'{git_path}\mingw64\bin\unxz'
+          else
+              throw "Skipped: Missing tool to decompress .xz files"
+          endif
+        endif
+    else
+        " Mac or Unix
+        if a:tool == 'bunzip2'
+            if executable('bunzip2')
+                let g:GetLatestVimScripts_bunzip2= "bunzip2"
+            else
+              throw "Skipped: Missing tool to decompress .bz2 files"
+            endif
         endif
 
+        if a:tool == 'gunzip'
+            if executable('gunzip')
+                let g:GetLatestVimScripts_gunzip= "gunzip"
+            else
+                throw "Skipped: Missing tool to decompress .bz2 files"
+            endif
+        endif
+
+        if a:tool == 'unxz'
+            if executable('unxz')
+                let g:GetLatestVimScripts_unxz= "unxz"
+            else
+                throw "Skipped: Missing tool to decompress .xz files"
+            endif
+        endif
    endif
-
 endfunc
 
 " After each test remove the contents of the .vim dir and reset the script
@@ -110,7 +140,6 @@
 " Ancillary functions
 
 func SetShell(shell)
-
     " select different shells
     if a:shell == "default"
         set shell& shellcmdflag& shellxquote& shellpipe& shellredir&
@@ -138,11 +167,9 @@
 
     " reload script to force new shell options
     runtime autoload/getscript.vim
-
 endfunc
 
 func SelectScript(package)
-
     " add the corresponding file
     exe $"split {s:scriptdir}/GetLatestVimScripts.dat"
     let scripts =<< trim END
@@ -153,7 +180,6 @@
     call append(line('$'), s:packages[a:package]['spec'])
     w!
     bwipe!
-
 endfunc
 
 func ValidateInstall(package)
@@ -176,7 +202,6 @@
 " Tests
 "
 func Test_glvs_default_vmb()
-
     " select different shells
     call SetShell('default')
 
@@ -187,11 +212,9 @@
     GLVS
 
     call ValidateInstall('vmb')
-
 endfunc
 
 func Test_glvs_pwsh_vmb()
-
     " select different shells
     call SetShell('pwsh')
 
@@ -202,11 +225,9 @@
     GLVS
 
     call ValidateInstall('vmb')
-
 endfunc
 
 func Test_glvs_powershell_vmb()
-
     " select different shells
     call SetShell('powershell')
 
@@ -217,10 +238,10 @@
     GLVS
 
     call ValidateInstall('vmb')
-
 endfunc
 
 func Test_glvs_default_vim_bz2()
+    call CheckTool('bunzip2')
 
     " select different shells
     call SetShell('default')
@@ -232,10 +253,10 @@
     GLVS
 
     call ValidateInstall('vim.bz2')
-
 endfunc
 
 func Test_glvs_powershell_vim_bz2()
+    call CheckTool('bunzip2')
 
     " select different shells
     call SetShell('powershell')
@@ -247,10 +268,10 @@
     GLVS
 
     call ValidateInstall('vim.bz2')
-
 endfunc
 
 func Test_glvs_pwsh_vim_bz2()
+    call CheckTool('bunzip2')
 
     " select different shells
     call SetShell('pwsh')
@@ -262,10 +283,10 @@
     GLVS
 
     call ValidateInstall('vim.bz2')
-
 endfunc
 
 func Test_glvs_default_vba_gz()
+    call CheckTool('gunzip')
 
     " select different shells
     call SetShell('default')
@@ -277,10 +298,10 @@
     GLVS
 
     call ValidateInstall('vba.gz')
-
 endfunc
 
 func Test_glvs_powershell_vba_gz()
+    call CheckTool('gunzip')
 
     " select different shells
     call SetShell('powershell')
@@ -292,10 +313,10 @@
     GLVS
 
     call ValidateInstall('vba.gz')
-
 endfunc
 
 func Test_glvs_pwsh_vba_gz()
+    call CheckTool('gunzip')
 
     " select different shells
     call SetShell('pwsh')
@@ -307,10 +328,10 @@
     GLVS
 
     call ValidateInstall('vba.gz')
-
 endfunc
 
 func Test_glvs_default_tar_xz()
+    call CheckTool('unxz')
 
     " select different shells
     call SetShell('default')
@@ -322,10 +343,10 @@
     GLVS
 
     call ValidateInstall('tar.xz')
-
 endfunc
 
 func Test_glvs_powershell_tar_xz()
+    call CheckTool('unxz')
 
     " select different shells
     call SetShell('powershell')
@@ -337,10 +358,10 @@
     GLVS
 
     call ValidateInstall('tar.xz')
-
 endfunc
 
 func Test_glvs_pwsh_tar_xz()
+    call CheckTool('unxz')
 
     " select different shells
     call SetShell('pwsh')
@@ -352,5 +373,6 @@
     GLVS
 
     call ValidateInstall('tar.xz')
-
 endfunc
+
+" vim: set sw=4 ts=4 et:
diff --git a/src/version.c b/src/version.c
index 1e0d3cd..b384a73 100644
--- a/src/version.c
+++ b/src/version.c
@@ -705,6 +705,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1061,
+/**/
     1060,
 /**/
     1059,