]> granicus.if.org Git - vim/commitdiff
patch 8.2.3080: recover test fails on 32bit systems v8.2.3080
authorYegappan Lakshmanan <yegappan@yahoo.com>
Wed, 30 Jun 2021 19:30:10 +0000 (21:30 +0200)
committerBram Moolenaar <Bram@vim.org>
Wed, 30 Jun 2021 19:30:10 +0000 (21:30 +0200)
Problem:    Recover test fails on 32bit systems. (Ondřej Súkup)
Solution:   Detect 32/64 bit systems. (Yegappan Lakshmanan, closes #8485,
            closes #8479)

src/testdir/test_recover.vim
src/version.c

index 2db662f017a556e2b566503ab67324efee71458c..6ef4376defea07bf20c7789c4f4c964e3868289c 100644 (file)
@@ -202,10 +202,16 @@ func Test_recover_corrupted_swap_file()
   " Not all fields are written in a system-independent manner.  Detect whether
   " the test is running on a little or big-endian system, so the correct
   " corruption values can be set.
-  let little_endian = b[1008:1015] == 0z33323130.00000000
+  let little_endian = b[1008:1011] == 0z33323130
+  " The swap file header fields can be either 32-bit or 64-bit.
+  let system_64bit = b[1012:1015] == 0z00000000
 
   " clear the B0_MAGIC_LONG field
-  let b[1008:1015] = 0z0000000000000000
+  if system_64bit
+    let b[1008:1015] = 0z00000000.00000000
+  else
+    let b[1008:1011] = 0z00000000
+  endif
   call writefile(b, sn)
   let msg = execute('recover Xfile1')
   call assert_match('the file has been damaged', msg)
@@ -243,7 +249,11 @@ func Test_recover_corrupted_swap_file()
 
   " set the block number in a pointer entry to a negative number
   let b = copy(save_b)
-  let b[4104:4111] = little_endian ? 0z00000000.00000080 : 0z80000000.00000000
+  if system_64bit
+    let b[4104:4111] = little_endian ? 0z00000000.00000080 : 0z80000000.00000000
+  else
+    let b[4104:4107] = little_endian ? 0z00000080 : 0z80000000
+  endif
   call writefile(b, sn)
   call assert_fails('recover Xfile1', 'E312:')
   call assert_equal('Xfile1', @%)
@@ -261,7 +271,11 @@ func Test_recover_corrupted_swap_file()
 
   " set the number of lines in the data block to zero
   let b = copy(save_b)
-  let b[8208:8215] = 0z00000000.00000000
+  if system_64bit
+    let b[8208:8215] = 0z00000000.00000000
+  else
+    let b[8208:8211] = 0z00000000
+  endif
   call writefile(b, sn)
   call assert_fails('recover Xfile1', 'E312:')
   call assert_equal('Xfile1', @%)
@@ -271,7 +285,11 @@ func Test_recover_corrupted_swap_file()
 
   " use an invalid text start for the lines in a data block
   let b = copy(save_b)
-  let b[8216:8219] = 0z00000000
+  if system_64bit
+    let b[8216:8219] = 0z00000000
+  else
+    let b[8212:8215] = 0z00000000
+  endif
   call writefile(b, sn)
   call assert_fails('recover Xfile1', 'E312:')
   call assert_equal('Xfile1', @%)
index e9ad71b81614686d20b67492993b2c5ed1c59426..ed97a521b8ef32cf7d7defee24afb886ed654dc0 100644 (file)
@@ -755,6 +755,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    3080,
 /**/
     3079,
 /**/