From 39d4550c8f68ce237c7ad522980941d10b84df06 Mon Sep 17 00:00:00 2001 From: Christian Brabandt Date: Tue, 11 Jul 2023 09:57:01 +0200 Subject: [PATCH] Skip failing tests on qemu archs --- src/testdir/check.vim | 13 +++++++++++++ src/testdir/test_buffer.vim | 2 +- src/testdir/test_crypt.vim | 3 +++ src/testdir/test_excmd.vim | 3 +++ src/testdir/test_functions.vim | 10 ++++++++-- src/testdir/test_man.vim | 4 ++++ src/testdir/test_startup.vim | 3 +++ src/testdir/test_stat.vim | 1 + 8 files changed, 36 insertions(+), 3 deletions(-) diff --git a/src/testdir/check.vim b/src/testdir/check.vim index 82abb646732d4..6b196138e82ab 100644 --- a/src/testdir/check.vim +++ b/src/testdir/check.vim @@ -127,6 +127,19 @@ func CheckNotMacM1() endif endfunc +" Command to check for Architecture +command -nargs=1 CheckArch call CheckArch(, v:true) + +func CheckArch(arch, fail) + if has('unix') && system('arch') =~ a:arch + if a:fail + throw 'Skipped: does not work on Arch ' .. a:arch + else + return v:true + endif + endif +endfunc + " Command to check that making screendumps is supported. " Caller must source screendump.vim command CheckScreendump call CheckScreendump() diff --git a/src/testdir/test_buffer.vim b/src/testdir/test_buffer.vim index bc29c21621977..56eaac96a024b 100644 --- a/src/testdir/test_buffer.vim +++ b/src/testdir/test_buffer.vim @@ -493,7 +493,7 @@ func Test_buflist_alloc_failure() " test for :checktime loading the buffer call writefile(['one'], 'XallocFail5', 'D') - if has('unix') + if has('unix') && !CheckArch('s390x', v:false) edit XallocFail5 " sleep for some time to make sure the timestamp is different sleep 200m diff --git a/src/testdir/test_crypt.vim b/src/testdir/test_crypt.vim index e2eaed889da2f..2d7afc0053227 100644 --- a/src/testdir/test_crypt.vim +++ b/src/testdir/test_crypt.vim @@ -178,6 +178,7 @@ endfunc func Test_uncrypt_xchacha20v2_custom() CheckFeature sodium + CheckArch s390x " Test, reading xchacha20v2 with custom encryption parameters let hex =<< trim END 00000000: 5669 6d43 7279 7074 7e30 3521 934b f288 VimCrypt~05!.K.. @@ -199,6 +200,7 @@ endfunc func Test_uncrypt_xchacha20v2() CheckFeature sodium + CheckArch s390x " Test, reading xchacha20v2 let hex =<< trim END 00000000: 5669 6d43 7279 7074 7e30 3521 9f20 4e14 VimCrypt~05!. N. @@ -272,6 +274,7 @@ endfunc func Test_uncrypt_xchacha20v2_2() CheckFeature sodium + CheckArch s390x sp Xcrypt_sodium_v2.txt " Create a larger file, so that Vim will write in several blocks diff --git a/src/testdir/test_excmd.vim b/src/testdir/test_excmd.vim index 3637351f636c0..dc70fb110b557 100644 --- a/src/testdir/test_excmd.vim +++ b/src/testdir/test_excmd.vim @@ -364,6 +364,9 @@ endfunc func Test_confirm_write_ro() CheckNotGui CheckRunVimInTerminal + for arch in ['s390x', 'aarch64', 'riscv64'] + exe "CheckArch " .. arch + endfor call writefile(['foo'], 'Xconfirm_write_ro', 'D') let lines =<< trim END diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim index b14c5413f05a1..8cd38558c4dc7 100644 --- a/src/testdir/test_functions.vim +++ b/src/testdir/test_functions.vim @@ -285,8 +285,11 @@ func Test_strftime() " are, a tzset(3) call may have failed somewhere call assert_equal(strlen(est), 2) call assert_equal(strlen(utc), 2) - " TODO: this fails on MS-Windows - if has('unix') + " TODO: this fails on MS-Windows and Qemu Archs + if has('unix') && + \ !CheckArch('riscv64', v:false) && + \ !CheckArch('s390x', v:false) && + \ !CheckArch('aarch64', v:false) call assert_notequal(est, utc) endif @@ -2743,6 +2746,9 @@ func Test_readdir_sort() endfunc func Test_delete_rf() + for arch in ['s390x', 'aarch64', 'riscv64'] + exe "CheckArch " .. arch + endfor call mkdir('Xrfdir') call writefile([], 'Xrfdir/foo.txt') call writefile([], 'Xrfdir/bar.txt') diff --git a/src/testdir/test_man.vim b/src/testdir/test_man.vim index f3af477441cbb..c4c613661ab8b 100644 --- a/src/testdir/test_man.vim +++ b/src/testdir/test_man.vim @@ -1,4 +1,5 @@ " Test specifically for the Man filetype plugin. +source check.vim runtime ftplugin/man.vim @@ -134,6 +135,9 @@ endfunc " Check that underlying shell command arguments are escaped. func Test_Man_uses_shellescape() + for arch in ['s390x', 'aarch64', 'riscv64'] + exe "CheckArch " .. arch + endfor Man `touch\ Xbar` `touch\ Xfoo` redir => msg diff --git a/src/testdir/test_startup.vim b/src/testdir/test_startup.vim index 949553350f099..55a72798eff36 100644 --- a/src/testdir/test_startup.vim +++ b/src/testdir/test_startup.vim @@ -1096,6 +1096,9 @@ func Test_redirect_Ctrl_C() CheckUnix CheckNotGui CheckRunVimInTerminal + for arch in ['s390x', 'aarch64'] + exe "CheckArch " .. arch + endfor let buf = Run_shell_in_terminal({}) " Wait for the shell to display a prompt diff --git a/src/testdir/test_stat.vim b/src/testdir/test_stat.vim index ed123e4347183..53d04369ca48e 100644 --- a/src/testdir/test_stat.vim +++ b/src/testdir/test_stat.vim @@ -92,6 +92,7 @@ endfunc func Test_autoread_fast() CheckFeature nanotime + CheckArch s390x " this is timing sensitive let g:test_is_flaky = 1