Check-in [92638367d8]
Not logged in
Overview

SHA1 Hash:92638367d8421bba4b8ed904eb33daa396b8093f
Date: 2009-03-22 13:18:10
User: drh
Comment:Add many new test cases for 3-way merge. No new problems found.
Timelines: ancestors | descendants | both | trunk
Other Links: files | ZIP archive | manifest

Tags And Properties
Changes
[hide diffs]

Modified test/merge3.test from [f3315ba437] to [e745bf699d].

@@ -151,6 +151,491 @@
   1 2 3b4b 5 6 7 8b 9b
 } {
   1 2 3b4b 5 6c 7c 8 9
 } {
   1 2 3b4b 5 6c 7c 8b 9b
+}
+
+merge-test 20 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 3 4 5 6 7 8 9
+} {
+  1 2 3 4 5 6 7 9
+} {
+  1 3 4 5 6 7 9
+}
+merge-test 21 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 4 5 6 7 8 9
+} {
+  1 2 3 4 5 6 9
+} {
+  1 4 5 6 9
+}
+merge-test 22 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 5 6 7 8 9
+} {
+  1 2 3 4 5 9
+} {
+  1 5 9
+}
+merge-test 23 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 6 7 8 9
+} {
+  1 2 3 4 5 9
+} {
+  1 9
+}
+merge-test 24 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 6 7 8 9
+} {
+  1 2 3 4 9
+} {
+  1 > 6 7 8 = 2 3 4 < 9
+}
+merge-test 25 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 7 8 9
+} {
+  1 2 3 9
+} {
+  1 > 7 8 = 2 3 < 9
+}
+
+merge-test 30 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2 3 4 5 6 7 9
+} {
+  1 3 4 5 6 7 8 9
+} {
+  1 3 4 5 6 7 9
+}
+merge-test 31 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2 3 4 5 6 9
+} {
+  1 4 5 6 7 8 9
+} {
+  1 4 5 6 9
+}
+merge-test 32 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2 3 4 5 9
+} {
+  1 5 6 7 8 9
+} {
+  1 5 9
+}
+merge-test 33 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2 3 4 5 9
+} {
+  1 6 7 8 9
+} {
+  1 9
+}
+merge-test 34 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2 3 4 9
+} {
+  1 6 7 8 9
+} {
+  1 > 2 3 4 = 6 7 8 < 9
+}
+merge-test 35 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2 3 9
+} {
+  1 7 8 9
+} {
+  1 > 2 3 = 7 8 < 9
+}
+
+merge-test 40 {
+  2 3 4 5 6 7 8
+} {
+  3 4 5 6 7 8
+} {
+  2 3 4 5 6 7
+} {
+  3 4 5 6 7
+}
+merge-test 41 {
+  2 3 4 5 6 7 8
+} {
+  4 5 6 7 8
+} {
+  2 3 4 5 6
+} {
+  4 5 6
+}
+merge-test 42 {
+  2 3 4 5 6 7 8
+} {
+  5 6 7 8
+} {
+  2 3 4 5
+} {
+  5
+}
+merge-test 43 {
+  2 3 4 5 6 7 8
+} {
+  6 7 8
+} {
+  2 3 4 5
+} {
+
+}
+merge-test 44 {
+  2 3 4 5 6 7 8
+} {
+  6 7 8
+} {
+  2 3 4
+} {
+  > 6 7 8 = 2 3 4 <
+}
+merge-test 45 {
+  2 3 4 5 6 7 8
+} {
+  7 8
+} {
+  2 3
+} {
+  > 7 8 = 2 3 <
+}
+
+merge-test 50 {
+  2 3 4 5 6 7 8
+} {
+  2 3 4 5 6 7
+} {
+  3 4 5 6 7 8
+} {
+  3 4 5 6 7
+}
+merge-test 51 {
+  2 3 4 5 6 7 8
+} {
+  2 3 4 5 6
+} {
+  4 5 6 7 8
+} {
+  4 5 6
+}
+merge-test 52 {
+  2 3 4 5 6 7 8
+} {
+  2 3 4 5
+} {
+  5 6 7 8
+} {
+  5
+}
+merge-test 53 {
+  2 3 4 5 6 7 8
+} {
+  2 3 4 5
+} {
+  6 7 8
+} {
+}
+merge-test 54 {
+  2 3 4 5 6 7 8
+} {
+  2 3 4
+} {
+  6 7 8
+} {
+  > 2 3 4 = 6 7 8 <
+}
+merge-test 55 {
+  2 3 4 5 6 7 8
+} {
+  2 3
+} {
+  7 8
+} {
+  > 2 3 = 7 8 <
+}
+
+merge-test 60 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2b 3 4 5 6 7 8 9
+} {
+  1 2 3 4 5 6 7 9
+} {
+  1 2b 3 4 5 6 7 9
+}
+merge-test 61 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2b 3b 4 5 6 7 8 9
+} {
+  1 2 3 4 5 6 9
+} {
+  1 2b 3b 4 5 6 9
+}
+merge-test 62 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2b 3b 4b 5 6 7 8 9
+} {
+  1 2 3 4 5 9
+} {
+  1 2b 3b 4b 5 9
+}
+merge-test 63 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2b 3b 4b 5b 6 7 8 9
+} {
+  1 2 3 4 5 9
+} {
+  1 2b 3b 4b 5b 9
+}
+merge-test 64 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2b 3b 4b 5b 6 7 8 9
+} {
+  1 2 3 4 9
+} {
+  1 > 2b 3b 4b 5b 6 7 8 = 2 3 4 < 9
+}
+merge-test 65 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2b 3b 4b 5b 6b 7 8 9
+} {
+  1 2 3 9
+} {
+  1 > 2b 3b 4b 5b 6b 7 8 = 2 3 < 9
+}
+
+merge-test 70 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2 3 4 5 6 7 9
+} {
+  1 2b 3 4 5 6 7 8 9
+} {
+  1 2b 3 4 5 6 7 9
+}
+merge-test 71 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2 3 4 5 6 9
+} {
+  1 2b 3b 4 5 6 7 8 9
+} {
+  1 2b 3b 4 5 6 9
+}
+merge-test 72 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2 3 4 5 9
+} {
+  1 2b 3b 4b 5 6 7 8 9
+} {
+  1 2b 3b 4b 5 9
+}
+merge-test 73 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2 3 4 5 9
+} {
+  1 2b 3b 4b 5b 6 7 8 9
+} {
+  1 2b 3b 4b 5b 9
+}
+merge-test 74 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2 3 4 9
+} {
+  1 2b 3b 4b 5b 6 7 8 9
+} {
+  1 > 2 3 4 = 2b 3b 4b 5b 6 7 8 < 9
+}
+merge-test 75 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2 3 9
+} {
+  1 2b 3b 4b 5b 6b 7 8 9
+} {
+  1 > 2 3 = 2b 3b 4b 5b 6b 7 8 < 9
+}
+
+merge-test 80 {
+  2 3 4 5 6 7 8
+} {
+  2b 3 4 5 6 7 8
+} {
+  2 3 4 5 6 7
+} {
+  2b 3 4 5 6 7
+}
+merge-test 81 {
+  2 3 4 5 6 7 8
+} {
+  2b 3b 4 5 6 7 8
+} {
+  2 3 4 5 6
+} {
+  2b 3b 4 5 6
+}
+merge-test 82 {
+  2 3 4 5 6 7 8
+} {
+  2b 3b 4b 5 6 7 8
+} {
+  2 3 4 5
+} {
+  2b 3b 4b 5
+}
+merge-test 83 {
+  2 3 4 5 6 7 8
+} {
+  2b 3b 4b 5b 6 7 8
+} {
+  2 3 4 5
+} {
+  2b 3b 4b 5b
+}
+merge-test 84 {
+  2 3 4 5 6 7 8
+} {
+  2b 3b 4b 5b 6 7 8
+} {
+  2 3 4
+} {
+  > 2b 3b 4b 5b 6 7 8 = 2 3 4 <
+}
+merge-test 85 {
+  2 3 4 5 6 7 8
+} {
+  2b 3b 4b 5b 6b 7 8
+} {
+  2 3
+} {
+  > 2b 3b 4b 5b 6b 7 8 = 2 3 <
+}
+
+merge-test 90 {
+  2 3 4 5 6 7 8
+} {
+  2 3 4 5 6 7
+} {
+  2b 3 4 5 6 7 8
+} {
+  2b 3 4 5 6 7
+}
+merge-test 91 {
+  2 3 4 5 6 7 8
+} {
+  2 3 4 5 6
+} {
+  2b 3b 4 5 6 7 8
+} {
+  2b 3b 4 5 6
+}
+merge-test 92 {
+  2 3 4 5 6 7 8
+} {
+  2 3 4 5
+} {
+  2b 3b 4b 5 6 7 8
+} {
+  2b 3b 4b 5
+}
+merge-test 93 {
+  2 3 4 5 6 7 8
+} {
+  2 3 4 5
+} {
+  2b 3b 4b 5b 6 7 8
+} {
+  2b 3b 4b 5b
+}
+merge-test 94 {
+  2 3 4 5 6 7 8
+} {
+  2 3 4
+} {
+  2b 3b 4b 5b 6 7 8
+} {
+  > 2 3 4 = 2b 3b 4b 5b 6 7 8 <
+}
+merge-test 95 {
+  2 3 4 5 6 7 8
+} {
+  2 3
+} {
+  2b 3b 4b 5b 6b 7 8
+} {
+  > 2 3 = 2b 3b 4b 5b 6b 7 8 <
+}
+
+merge-test 100 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2b 3 4 5 7 8 9 a b c d e
+} {
+  1 2b 3 4 5 7 8 9 a b c d e
+} {
+  1 2b 3 4 5 7 8 9 a b c d e
+}
+merge-test 101 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2b 3 4 5 7 8 9 a b c d e
+} {
+  1 2b 3 4 5 7 8 9
+} {
+  1 2b 3 4 5 7 8 9 a b c d e
+}
+merge-test 102 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2b 3 4 5 7 8 9
+} {
+  1 2b 3 4 5 7 8 9 a b c d e
+} {
+  1 2b 3 4 5 7 8 9 a b c d e
+}
+merge-test 103 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2 3 4 5 7 8 9b
+} {
+  1 2 3 4 5 7 8 9b a b c d e
+} {
+  1 2 3 4 5 7 8 > 9b = 9b a b c d e <
+}
+merge-test 104 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2 3 4 5 7 8 9b a b c d e
+} {
+  1 2 3 4 5 7 8 9b
+} {
+  1 2 3 4 5 7 8 > 9b a b c d e = 9b <
 }

Added test/merge4.test version [61232e82e6]

@@ -1,1 +1,103 @@
+#
+# Copyright (c) 2009 D. Richard Hipp
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public
+# License version 2 as published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA  02111-1307, USA.
+#
+# Author contact information:
+#   drh@hwaci.com
+#   http://www.hwaci.com/drh/
+#
+############################################################################
+#
+# Tests of the 3-way merge
+#
+
+proc merge-test {testid basis v1 v2 result1 result2} {
+  write_file t1 [join [string trim $basis] \n]\n
+  write_file t2 [join [string trim $v1] \n]\n
+  write_file t3 [join [string trim $v2] \n]\n
+  fossil test-3-way-merge t1 t2 t3 t4
+  fossil test-3-way-merge t1 t3 t2 t5
+  set x [read_file t4]
+  regsub -all {>>>>>>> BEGIN MERGE CONFLICT} $x {>} x
+  regsub -all {============================} $x {=} x
+  regsub -all {<<<<<<< END MERGE CONFLICT} $x {<} x
+  set x [split [string trim $x] \n]
+  set y [read_file t5]
+  regsub -all {>>>>>>> BEGIN MERGE CONFLICT} $y {>} y
+  regsub -all {============================} $y {=} y
+  regsub -all {<<<<<<< END MERGE CONFLICT} $y {<} y
+  set y [split [string trim $y] \n]
+  set result1 [string trim $result1]
+  if {$x!=$result1} {
+    puts "  Expected \[$result1\]"
+    puts "       Got \[$x\]"
+    test merge3-$testid 0
+  } else {
+    set result2 [string trim $result2]
+    if {$y!=$result2} {
+      puts "  Expected \[$result2\]"
+      puts "       Got \[$y\]"
+      test merge3-$testid 0
+    } else {
+      test merge3-$testid 1
+    }
+  }
+}
 
+merge-test 1000 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2b 3b 4b 5 6b 7b 8b 9
+} {
+  1 2 3 4c 5c 6c 7 8 9
+} {
+  1 > 2b 3b 4b 5 6b 7b 8b = 2 3 4c 5c 6c 7 8 < 9
+} {
+  1 > 2 3 4c 5c 6c 7 8 = 2b 3b 4b 5 6b 7b 8b < 9
+}
+merge-test 1001 {
+  1 2 3 4 5 6 7 8 9
+} {
+  1 2b 3b 4 5 6 7b 8b 9
+} {
+  1 2 3 4c 5c 6c 7 8 9
+} {
+  1 2b 3b 4c 5c 6c 7b 8b 9
+} {
+  1 2b 3b 4c 5c 6c 7b 8b 9
+}
+merge-test 1002 {
+  2 3 4 5 6 7 8
+} {
+  2b 3b 4b 5 6b 7b 8b
+} {
+  2 3 4c 5c 6c 7 8
+} {
+  > 2b 3b 4b 5 6b 7b 8b = 2 3 4c 5c 6c 7 8 <
+} {
+  > 2 3 4c 5c 6c 7 8 = 2b 3b 4b 5 6b 7b 8b <
+}
+merge-test 1003 {
+  2 3 4 5 6 7 8
+} {
+  2b 3b 4 5 6 7b 8b
+} {
+  2 3 4c 5c 6c 7 8
+} {
+  2b 3b 4c 5c 6c 7b 8b
+} {
+  2b 3b 4c 5c 6c 7b 8b
+}