summaryrefslogtreecommitdiff
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
+ }