diff --git a/src/DrawResources/TestCommands.tcl b/src/DrawResources/TestCommands.tcl
index c1772573cd..5979b02d5a 100644
--- a/src/DrawResources/TestCommands.tcl
+++ b/src/DrawResources/TestCommands.tcl
@@ -2109,7 +2109,7 @@ proc _diff_show_positive_ratio {value1 value2} {
if {[expr double ($value2)] == 0.} {
return "$value1 / $value2"
} else {
- return "$value1 / $value2 \[[format "%5.2f%%" [expr 100 * double($value1) / double($value2)]]\]"
+ return "$value1 / $value2 \[[format "%4.2f%%" [expr 100 * double($value1) / double($value2)]]\]"
}
}
@@ -2299,7 +2299,11 @@ proc _test_diff {dir1 dir2 basename image cpu memory status verbose _logvar _log
set imglist2 [glob -directory $path2 -types f -tails -nocomplain ${casename}.{png,gif} ${casename}-*.{png,gif} ${casename}_*.{png,gif}]
_list_diff $imglist1 $imglist2 imgin1 imgin2 imgcommon
if { "$verbose" > 1 } {
+ # Differences in image lists might reflect changes in test case or in list of tests (new/removed test cases),
+ # but might also reflect image dump failures.
if { [llength $imgin1] > 0 } {
+ set stat(img1) [expr $stat(img1) + [llength $imgin1]]
+ set stat(img2) [expr $stat(img2) + [llength $imgin1]]
if {$image != false} {
_log_and_puts log_image "Only in $path1: $imgin1"
} else {
@@ -2307,6 +2311,7 @@ proc _test_diff {dir1 dir2 basename image cpu memory status verbose _logvar _log
}
}
if { [llength $imgin2] > 0 } {
+ set stat(img1) [expr $stat(img1) + [llength $imgin2]]
if {$image != false} {
_log_and_puts log_image "Only in $path2: $imgin2"
} else {
@@ -2322,8 +2327,8 @@ proc _test_diff {dir1 dir2 basename image cpu memory status verbose _logvar _log
if { [catch {diffimage [file join $dir1 $basename $imgfile] \
[file join $dir2 $basename $imgfile] \
-toleranceOfColor 0.0 -blackWhite off -borderFilter off $diffile} diff] } {
+ set stat(img1) [expr $stat(img1) + 1]
if {$image != false} {
- set stat(img1) [expr $stat(img1) + 1]
_log_and_puts log_image "IMAGE [split $basename /] $casename: $imgfile cannot be compared"
} else {
_log_and_puts log "IMAGE [split $basename /] $casename: $imgfile cannot be compared"
@@ -2336,8 +2341,8 @@ proc _test_diff {dir1 dir2 basename image cpu memory status verbose _logvar _log
if { [catch {diffimage [file join $dir1 $basename $imgfile] \
[file join $dir2 $basename $imgfile] \
-toleranceOfColor $aCaseDiffColorTol -blackWhite off -borderFilter off $diffile} diff2] } {
+ set stat(img1) [expr $stat(img1) + 1]
if {$image != false} {
- set stat(img1) [expr $stat(img1) + 1]
_log_and_puts log_image "IMAGE [split $basename /] $casename: $imgfile cannot be compared"
} else {
_log_and_puts log "IMAGE [split $basename /] $casename: $imgfile cannot be compared"
@@ -2347,8 +2352,8 @@ proc _test_diff {dir1 dir2 basename image cpu memory status verbose _logvar _log
# exclude image diff within tolerance but still keep info in the log
set toLogImageCase false
file delete -force $diffile
+ set stat(img1) [expr $stat(img1) + 1]
if {$image != false} {
- set stat(img1) [expr $stat(img1) + 1]
_log_and_puts log_image "IMAGE [split $basename /] $casename: $imgfile is similar \[$diff different pixels\]"
} else {
_log_and_puts log "IMAGE [split $basename /] $casename: $imgfile is similar \[$diff different pixels\]"
@@ -2357,8 +2362,8 @@ proc _test_diff {dir1 dir2 basename image cpu memory status verbose _logvar _log
}
}
+ set stat(img1) [expr $stat(img1) + 1]
if {$image != false} {
- set stat(img1) [expr $stat(img1) + 1]
_log_and_puts log_image "IMAGE [split $basename /] $casename: $imgfile differs \[$diff different pixels\]"
} else {
_log_and_puts log "IMAGE [split $basename /] $casename: $imgfile differs \[$diff different pixels\]"
@@ -2408,9 +2413,9 @@ proc _test_diff {dir1 dir2 basename image cpu memory status verbose _logvar _log
}
if {$image != false || ($image == false && $cpu == false && $memory == false)} {
if {$image != false} {
- _log_and_puts log_image "Total Image difference: [_diff_show_positive_ratio $stat(img1) $stat(img2)]"
+ _log_and_puts log_image "Total IMAGE difference: [_diff_show_positive_ratio $stat(img1) $stat(img2)]"
} else {
- _log_and_puts log "Total Image difference: [_diff_show_positive_ratio $stat(img1) $stat(img2)]"
+ _log_and_puts log "Total IMAGE difference: [_diff_show_positive_ratio $stat(img1) $stat(img2)]"
}
}
}
@@ -2453,14 +2458,14 @@ proc _log_html_diff {file log dir1 dir2 highlight_percent} {
if { [regexp "\[\\\[](\[0-9.e+-]+)%\[\]]" $line res value] &&
[expr abs($value)] > ${highlight_percent} } {
puts $fd "
0 ? \"ff8080\" : \"lightgreen\"]\">$line |
"
- } elseif { [regexp {IMAGE[ \t]+([^:]+):[ \t]+([A-Za-z0-9_.-]+) is similar} $line res case img] } {
+ } elseif { [regexp {^IMAGE[ \t]+([^:]+):[ \t]+([A-Za-z0-9_.-]+) is similar} $line res case img] } {
if { [catch {eval file join "" [lrange $case 0 end-1]} gridpath] } {
# note: special handler for the case if test grid directoried are compared directly
set gridpath ""
}
set aCaseName [lindex $case end]
puts $fd ""
- } elseif { [regexp {IMAGE[ \t]+([^:]+):[ \t]+([A-Za-z0-9_.-]+)} $line res case img] } {
+ } elseif { [regexp {^IMAGE[ \t]+([^:]+):[ \t]+([A-Za-z0-9_.-]+)} $line res case img] } {
# add images
puts $fd $line
if { [catch {eval file join "" [lrange $case 0 end-1]} gridpath] } {