summary refs log tree commit diff
path: root/gnu/packages/patches/fossil-test-fixes.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/patches/fossil-test-fixes.patch')
-rw-r--r--gnu/packages/patches/fossil-test-fixes.patch189
1 files changed, 189 insertions, 0 deletions
diff --git a/gnu/packages/patches/fossil-test-fixes.patch b/gnu/packages/patches/fossil-test-fixes.patch
new file mode 100644
index 0000000000..e6c9f3dd74
--- /dev/null
+++ b/gnu/packages/patches/fossil-test-fixes.patch
@@ -0,0 +1,189 @@
+From upstream commit https://www.fossil-scm.org/fossil/info/19c216391a0ad79e
+
+--- fossil-src-1.34/test/file1.test
++++ fossil-src-1.34/test/file1.test
+@@ -15,10 +15,12 @@
+ #
+ ############################################################################
+ #
+ # File utilities
+ #
++
++repo_init
+ 
+ proc simplify-name {testname args} {
+   set i 1
+   foreach {path result} $args {
+     fossil test-simplify-name $path
+@@ -65,10 +67,13 @@
+ 
+ if {$::tcl_platform(os)=="Windows NT"} {
+   simplify-name 108 //?/a:/a/b a:/a/b //?/UNC/a/b //a/b //?/ {}
+   simplify-name 109 \\\\?\\a:\\a\\b a:/a/b \\\\?\\UNC\\a\\b //a/b \\\\?\\ {}
+ }
++
++# This is needed because we are now running outside of the Fossil checkout.
++file mkdir file1; cd file1
+ 
+ # Those directories are only needed for the testcase being able to "--chdir" to it.
+ file mkdir test1
+ file mkdir test1/test2
+
+From upstream commit https://www.fossil-scm.org/fossil/info/ad6de6383391bd4d
+ 
+--- fossil-src-1.34/test/utf.test
++++ fossil-src-1.34/test/utf.test
+@@ -39,26 +39,29 @@
+     test utf-check-$testname.$i {$::RESULT eq $result}
+     incr i
+   }
+ }
+ 
++unset -nocomplain enc
+ array set enc [list     \
+       0 binary          \
+       1 binary          \
+       2 unicode         \
+       3 unicode-reverse \
+ ]
+ 
++unset -nocomplain bom
+ array set bom [list                                         \
+       0 ""                                                  \
+       1 \xEF\xBB\xBF                                        \
+       2 [expr {$tcl_platform(byteOrder) eq "littleEndian" ? \
+             "\xFF\xFE" : "\xFE\xFF"}]                       \
+       3 [expr {$tcl_platform(byteOrder) eq "littleEndian" ? \
+             "\xFE\xFF" : "\xFF\xFE"}]                       \
+ ]
+ 
++unset -nocomplain data
+ array set data [list                          \
+       0 ""                                    \
+       1 \r                                    \
+       2 \n                                    \
+       3 \r\n                                  \
+@@ -239,10 +242,11 @@
+     178 \xF4\x90\x80\x80\r                    \
+     179 \xF4\x90\x80\x80\n                    \
+     180 \xF4\x90\x80\x80\r\n                  \
+ ]
+ 
++unset -nocomplain extraData
+ array set extraData [list                     \
+       0 ""                                    \
+       1 Z                                     \
+ ]
+
+Backport from upstream https://www.fossil-scm.org/fossil/info/60285f5876512817
+with additional non-zero exit in case of failures.
+
+--- fossil-src-1.34/test/merge6.test
++++ fossil-src-1.34/test/merge6.test
+@@ -62,6 +62,6 @@
+ fossil ls
+ 
+ test merge_multi-4 {[normalize_result] eq {f1
+ f2
+ f3
+-f4}}
++f4}} knownBug
+
+--- fossil-src-1.34/test/merge_renames.test
++++ fossil-src-1.34/test/merge_renames.test
+@@ -156,13 +156,13 @@
+ }
+ 
+ if {$deletes!=0} {
+     # failed
+     protOut "Error, the merge should not delete any file"
+-    test merge_renames-2 0
++    test merge_renames-3 0
+ } else {
+-    test merge_renames-2 1
++    test merge_renames-3 1
+ }
+ 
+ ######################################
+ #  Test 4                            #
+ #  Reported: Ticket [67176c3aa4]     #
+@@ -198,14 +198,14 @@
+ 
+ fossil ls
+ 
+ test merge_renames-5 {[normalize_result] eq {f1
+ f2
+-f3}}
++f3}} knownBug
+ 
+ ######################################
+ #
+ # Tests for troubles not specifically linked with renames but that I'd like to
+ # write:
+ #  [c26c63eb1b] - 'merge --backout' does not handle conflicts properly
+ #  [953031915f] - Lack of warning when overwriting extra files
+ #  [4df5f38f1e] - Troubles merging a file delete with a file change
+
+--- fossil-src-1.34/test/tester.tcl
++++ fossil-src-1.34/test/tester.tcl
+@@ -58,10 +58,18 @@
+   set VERBOSE 1
+   set argv [lreplace $argv $i $i]
+ } else {
+   set VERBOSE 0
+ }
++
++set i [lsearch $argv -strict]
++if {$i>=0} {
++  set STRICT 1
++  set argv [lreplace $argv $i $i]
++} else {
++  set STRICT 0
++}
+ 
+ if {[llength $argv]==0} {
+   foreach f [lsort [glob $testdir/*.test]] {
+     set base [file root [file tail $f]]
+     lappend argv $base
+@@ -327,20 +335,30 @@
+ }
+ 
+ # Perform a test
+ #
+ set test_count 0
+-proc test {name expr} {
++proc test {name expr {constraints ""}} {
+   global bad_test test_count
+   incr test_count
++  set knownBug [expr {"knownBug" in $constraints}]
+   set r [uplevel 1 [list expr $expr]]
+   if {$r} {
+-    protOut "test $name OK"
++    if {$knownBug && !$::STRICT} {
++      protOut "test $name OK (knownBug)?"
++    } else {
++      protOut "test $name OK"
++    }
+   } else {
+-    protOut "test $name FAILED!"
+-    lappend bad_test $name
+-    if {$::HALT} exit
++    if {$knownBug && !$::STRICT} {
++      protOut "test $name FAILED (knownBug)!"
++    } else {
++      protOut "test $name FAILED!"
++      if {$::VERBOSE} {protOut "RESULT: $RESULT"}
++      lappend bad_test $name
++      if {$::HALT} exit
++    }
+   }
+ }
+ set bad_test {}
+ 
+ # Return a random string N characters long.
+@@ -445,4 +455,5 @@
+ protOut "***** Final result: $nErr errors out of $test_count tests"
+ if {$nErr>0} {
+   protOut "***** Failures: $bad_test"
++  exit 1
+ }