@@ -40,10 +40,13 @@
40 40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set outside_fossil_repo [expr ![file exists "$::testfiledir\\..\\_FOSSIL_"]]
41 41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} else {
42 42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set outside_fossil_repo [expr ![file exists "$::testfiledir/../.fslckout"]]
43 43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
44 44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ catch {exec $::fossilexe changes --changed} res
46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ set dirty_ckout [string length $res]
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
45 48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set argv [lrange $argv 1 end]
46 49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
47 50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set i [lsearch $argv -keep]
48 51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if {$i>=0} {
49 52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set KEEP 1
@@ -531,11 +534,18 @@
531 534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# checkout directory. If you are unsure, test $::outside_fossil_repo
532 535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# or call one of the test_* wrappers below which do that for you.
533 536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#
534 537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# As a rule, you should not be calling this function directly!
535 538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#
536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- # 2. The test does NOT modify the Fossil checkout tree in any way.
539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # 2. This test run is being done from a repo checkout directory that
540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # doesn't have any uncommitted changes. If it does, that affects the
541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # output of any test based on the output of "fossil status",
542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # "... diff", etc., which is likely to make the test appear to fail.
543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # If you must call this function directly, test $::dirty_ckout and
544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # skip the call if it's true. The test_* wrappers do this for you.
545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #
546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ # 3. The test does NOT modify the Fossil checkout tree in any way.
537 547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
proc run_in_checkout { script {dir ""} } {
538 548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if {[string length $dir] == 0} {set dir $::testfiledir}
539 549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set savedPwd [pwd]; cd $dir
540 550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set code [catch {
541 551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
uplevel 1 $script
@@ -548,12 +558,11 @@
548 558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# optional post-run test script. Some callers choose instead to put
549 559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# the tests inline with the rscript commands.
550 560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#
551 561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
# Be sure to adhere to the requirements of run_in_checkout!
552 562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
proc test_block_in_checkout { name rscript {tscript ""} } {
553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if {$::outside_fossil_repo} {
554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- puts "Skipping $name test: not in Fossil repo checkout."
563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if {$::outside_fossil_repo || $::dirty_ckout} {
555 564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set $::CODE 0
556 565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set $::RESULT ""
557 566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} else {
558 567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
run_in_checkout $rscript
559 568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if {[string length $tscript] == 0} {
560 569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!