Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Added the ability to pass the knownBug constraint through test_status_list to test. Added capability for known bug marking of segments of stash-test, and use it to mark problems with stashing renamed files. Also added checking in stash-test for the exit status, and support for -expectError. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
1a34614273d998829b9ef2c9826d59d2 |
User & Date: | rberteig 2016-02-11 20:32:13.275 |
Context
2016-02-12
| ||
15:16 | Update the built-in SQLite to the first 3.11.0 release candidate. ... (check-in: b23be81f user: drh tags: trunk) | |
2016-02-11
| ||
20:32 | Added the ability to pass the knownBug constraint through test_status_list to test. Added capability for known bug marking of segments of stash-test, and use it to mark problems with stashing renamed files. Also added checking in stash-test for the exit status, and support for -expectError. ... (check-in: 1a346142 user: rberteig tags: trunk) | |
18:06 | Added test for fossil revert with a file marked for RENAME but not actually renamed on disk to test/revert.test. ... (check-in: 8b727021 user: rberteig tags: trunk) | |
Changes
Changes to test/stash.test.
︙ | ︙ | |||
15 16 17 18 19 20 21 22 23 24 | # ############################################################################ # # # Tests for 'fossil stash' # # # Test 'fossil stash' against expected results from 'fossil changes' and # 'fossil addremove -n', as well as by verifying the existence of files | > > > > | > > > > > > > > > > > > > > | | > > > > > > > > > > > > > > | | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 | # ############################################################################ # # # Tests for 'fossil stash' # # proc knownBug {t tests} { return [expr {$t in $tests ? "knownBug" : ""}] } # Test 'fossil stash' against expected results from 'fossil changes' and # 'fossil addremove -n', as well as by verifying the existence of files # on the file system. Unlike the similar function found in # revert.test, 'fossil undo' is not called after each test because # many stash operations aren't undoable, and because further testing # of the stash content is more likely to be useful. # # The extra list "-knownbugs" is a list of areas that should be # marked as "knownBug" to the inner call to test. Known areas are: # -code The exit status of fossil stash # -result The result string didn't match # -changes The changed file set didn't match # -addremove The addremove result set didn't match # -exists One or more listed files don't exist # -notexists One or more listed files do exist # # Also, if the exit status of fossil stash does not match # expectations, the rest of the areas are not tested. proc stash-test {testid stashArgs expectedStashOutput args} { global RESULT set passed 1 set args [dict merge { -changes {} -addremove {} -exists {} -notexists {} -knownbugs {} } $args] set knownbugs [dict get $args "-knownbugs"] set result [fossil stash {*}$stashArgs] set code $::CODE if {[lindex $stashArgs end] eq "-expectError"} { test stash-$testid-CODE {$code} [knownBug "-code" $knownbugs] if {!$code} { return } } else { test stash-$testid-CODE {!$code} [knownBug "-code" $knownbugs] if {$code} { return } } test_status_list stash-$testid $result $expectedStashOutput [knownBug "-result" $knownbugs] set statusListTests [list -changes changes -addremove {addremove -n}] foreach {key fossilArgs} $statusListTests { set expected [dict get $args $key] set result [fossil {*}$fossilArgs] test_status_list stash-$testid$key $result $expected [knownBug $key $knownbugs] } set fileExistsTests [list -exists 1 does -notexists 0 should] foreach {key expected verb} $fileExistsTests { foreach path [dict get $args $key] { if {[file exists $path] != $expected} { set passed 0 protOut " Failure: File $verb not exist: $path" } } test stash-$testid$key $passed [knownBug $key $knownbugs] } #fossil undo } catch {exec $::fossilexe info} res if {![regexp {use --repository} $res]} { |
︙ | ︙ | |||
163 164 165 166 167 168 169 | DELETED f3 } -exists {f0 f2 f3n} -notexists {f1 f3} # Confirm there is no longer a stash saved fossil stash list test stash-2-list {[first_data_line] eq "empty stash"} | < < < | | > | > > > > > > > > > > > > > > > > > > > > > > | 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 | DELETED f3 } -exists {f0 f2 f3n} -notexists {f1 f3} # Confirm there is no longer a stash saved fossil stash list test stash-2-list {[first_data_line] eq "empty stash"} # Test stashed mv without touching the file system fossil checkout --force c1 fossil clean fossil mv --soft f1 f1new #no such file: c:/Users/Ross/Documents/tmp/ftest/stash/f1b stash-test x1 {save -m "Reported 2016-02-09"} { REVERT f1 DELETE f1new } -changes { } -addremove { } -exists {f1 f2 f3} -notexists {f1new} -knownbugs {-code -result} # Issue reported by email to fossil-users # from Warren Young, dated Tue, 9 Feb 2016 01:22:54 -0700 # with checkin [b8c7af5bd9] plus a local patch on CentOS 5 # 64 bit intel, 8-byte pointer, 4-byte integer # Stashed renamed file said: # fossil: ./src/delta.c:231: checksum: Assertion '...' failed. # Should be triggered by the above stash-x1 test. # Test stashing the combination of a renamed file and an added file that # uses the renamed file's original filename. I expect to see the same # behavior as fossil revert: calmly back out both the rename and the # add, and presumably stash the content of the added file before it # is replaced by the revert. # repo_init write_file f1 "f1" fossil add f1 fossil commit -m "add f1" write_file f1n "f1n" fossil mv f1 f1n write_file f1 "f1b" fossil add f1 stash-test 2-1 {save -m "f1b"} { REVERT f1 DELETE f1n } -exists {f1} -notexists {f1n} -knownbugs {-code -result} # TODO: add tests that verify the saved stash is sensible. Possibly # by applying it and checking results. # fossil stash snapshot ?-m|--comment COMMENT? ?FILES...? # fossil stash apply ?STASHID? # fossil stash goto ?STASHID? # fossil stash rm|drop ?STASHID? ?-a|--all? #fossil checkout --force c1 #fossil clean |
Changes to test/tester.tcl.
︙ | ︙ | |||
264 265 266 267 268 269 270 | } set normalized [lsort -index 1 $normalized] return $normalized } # Perform a test comparing two status lists # | | | | | 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 | } set normalized [lsort -index 1 $normalized] return $normalized } # Perform a test comparing two status lists # proc test_status_list {name result expected {constraints ""}} { set expected [normalize_status_list $expected] set result [normalize_status_list $result] if {$result eq $expected} { test $name 1 $constraints } else { protOut " Expected:\n [join $expected "\n "]" 1 protOut " Got:\n [join $result "\n "]" 1 test $name 0 $constraints } } # Append all arguments into a single value and then returns it. # proc appendArgs {args} { eval append result $args |
︙ | ︙ |