summaryrefslogtreecommitdiffstats
path: root/tests/imgPhoto.test
diff options
context:
space:
mode:
Diffstat (limited to 'tests/imgPhoto.test')
-rw-r--r--tests/imgPhoto.test1555
1 files changed, 551 insertions, 1004 deletions
diff --git a/tests/imgPhoto.test b/tests/imgPhoto.test
index e93dab4..14c3d40 100644
--- a/tests/imgPhoto.test
+++ b/tests/imgPhoto.test
@@ -1,809 +1,452 @@
-# This file is a Tcl script to test out the "photo" image type and the other
-# procedures in the file tkImgPhoto.c. It is organized in the standard fashion
-# for Tcl tests.
+# This file is a Tcl script to test out the "photo" image type and the
+# other procedures in the file tkImgPhoto.c. It is organized in the
+# standard fashion for Tcl tests.
#
# Copyright (c) 1994 The Australian National University
# Copyright (c) 1994-1997 Sun Microsystems, Inc.
# Copyright (c) 1998-1999 by Scriptics Corporation.
-# Copyright (c) 2002-2008 Donal K. Fellows
# All rights reserved.
#
# Author: Paul Mackerras (paulus@cs.anu.edu.au)
-package require tcltest 2.2
-namespace import ::tcltest::*
-tcltest::configure {*}$argv
+package require tcltest 2.1
+eval tcltest::configure $argv
tcltest::loadTestedCommands
-# Used for 4.65 - 4.73 tests
-# Now for some heftier testing, checking that setting and resetting of pixels'
-# transparency status doesn't "leak" with any one-off errors.
-proc foreachPixel {img xVar yVar script} {
- upvar 1 $xVar x $yVar y
- set width [image width $img]
- set height [image height $img]
- for {set x 0} {$x<$width} {incr x} {
- for {set y 0} {$y<$height} {incr y} {
- uplevel 1 $script
- }
- }
-}
-proc checkImgTrans {img} {
- set result {}
- foreachPixel $img x y {
- if {[$img transparency get $x $y]} {
- lappend result $x,$y
- }
- }
- return $result
-}
-proc checkImgTransLoop {img script1 script2} {
- set result {}
- foreachPixel $img x y {
- eval $script1
- lappend result {*}[checkImgTrans $img]
- append result :
- eval $script2
- lappend result {*}[checkImgTrans $img]
- append result .
- }
- return $result
-}
+eval image delete [image names]
+
+canvas .c
+pack .c
+update
-imageInit
set README [makeFile {
- README -- Tk test suite design document.
+README -- Tk test suite design document.
} README-imgPhoto]
# find the teapot.ppm file for use in these tests
set teapotPhotoFile [file join [file dirname [info script]] teapot.ppm]
testConstraint hasTeapotPhoto [file exists $teapotPhotoFile]
-# ----------------------------------------------------------------------
-
-test imgPhoto-1.1 {options for photo images} -body {
- image create photo photo1 -width 79 -height 83
- list [photo1 cget -width] [photo1 cget -height] \
- [image width photo1] [image height photo1]
-} -cleanup {
- image delete photo1
-} -result {79 83 79 83}
-test imgPhoto-1.2 {options for photo images} -body {
- list [catch {image create photo photo1 -file no.such.file} err] \
+test imgPhoto-1.1 {options for photo images} {
+ image create photo p1 -width 79 -height 83
+ list [lindex [p1 configure -width] 4] [lindex [p1 configure -height] 4] \
+ [image width p1] [image height p1]
+} {79 83 79 83}
+test imgPhoto-1.2 {options for photo images} {
+ list [catch {image create photo p1 -file no.such.file} err] \
[string tolower $err]
-} -result {1 {couldn't open "no.such.file": no such file or directory}}
-test imgPhoto-1.3 {options for photo images} -constraints hasTeapotPhoto -body {
- image create photo photo1 -file $teapotPhotoFile -format no.such.format
-} -returnCodes error -result {image file format "no.such.format" is not supported}
-test imgPhoto-1.4 {options for photo images} -constraints hasTeapotPhoto -body {
- image create photo photo1 -file $teapotPhotoFile
- list [image width photo1] [image height photo1]
-} -cleanup {
- image delete photo1
-} -result {256 256}
-test imgPhoto-1.5 {options for photo images} -constraints hasTeapotPhoto -body {
- image create photo photo1 -file $teapotPhotoFile \
- -format ppm -width 79 -height 83
- list [image width photo1] [image height photo1] [photo1 cget -file] [photo1 cget -format]
-} -cleanup {
- image delete photo1
-} -result [list 79 83 $teapotPhotoFile ppm]
-test imgPhoto-1.6 {options for photo images} -body {
- image create photo photo1 -palette 2/2/2 -gamma 2.2
- list [format %.1f [photo1 cget -gamma]] [photo1 cget -palette]
-} -cleanup {
- image delete photo1
-} -result {2.2 2/2/2}
-test imgPhoto-1.7 {options for photo images} -returnCodes error -body {
- image create photo photo1 -file $README
-} -result [subst {couldn't recognize data in image file "$README"}]
-test imgPhoto-1.8 {options for photo images} -body {
- image create photo -blah blah
-} -returnCodes error -result {unknown option "-blah"}
-test imgPhoto-1.9 {options for photo images - error case} -body {
- image create photo -format
-} -returnCodes error -result {value for "-format" missing}
-test imgPhoto-1.10 {options for photo images - error case} -body {
- image create photo -data
-} -returnCodes error -result {value for "-data" missing}
-test imgPhoto-1.11 {options for photo images - error case} -body {
- image create photo photo1 -format
-} -returnCodes error -result {value for "-format" missing}
+} {1 {couldn't open "no.such.file": no such file or directory}}
+test imgPhoto-1.3 {options for photo images} hasTeapotPhoto {
+ list [catch {image create photo p1 -file $teapotPhotoFile \
+ -format no.such.format} err] $err
+} {1 {image file format "no.such.format" is not supported}}
+test imgPhoto-1.4 {options for photo images} hasTeapotPhoto {
+ image create photo p1 -file $teapotPhotoFile
+ list [image width p1] [image height p1]
+} {256 256}
+test imgPhoto-1.5 {options for photo images} hasTeapotPhoto {
+ image create photo p1 -file $teapotPhotoFile \
+ -format ppm -width 79 -height 83
+ list [image width p1] [image height p1] \
+ [lindex [p1 configure -file] 4] [lindex [p1 configure -format] 4]
+} [list 79 83 $teapotPhotoFile ppm]
+test imgPhoto-1.6 {options for photo images} {
+ image create photo p1 -palette 2/2/2 -gamma 2.2
+ list [format %.1f [lindex [p1 configure -gamma] 4]] \
+ [lindex [p1 configure -palette] 4]
+} {2.2 2/2/2}
+test imgPhoto-1.7 {options for photo images} {
+ list [catch {image create photo p1 -file $README} err] $err
+} [subst {1 {couldn't recognize data in image file "$README"}}]
+test imgPhoto-1.8 {options for photo images} {
+ list [catch {image create photo -blah blah} err] $err
+} {1 {unknown option "-blah"}}
+test imgPhoto-1.9 {options for photo images - error case} {
+ list [catch {image create photo -format} err] $err
+} {1 {value for "-format" missing}}
+test imgPhoto-1.10 {options for photo images - error case} {
+ list [catch {image create photo -data} err] $err
+} {1 {value for "-data" missing}}
+test imgPhoto-1.11 {options for photo images - error case} {
+ list [catch {image create photo p1 -format} err] $err
+} {1 {value for "-format" missing}}
-test imgPhoto-2.1 {ImgPhotoCreate procedure} -setup {
- imageCleanup
-} -body {
+test imgPhoto-2.1 {ImgPhotoCreate procedure} {
+ eval image delete [image names]
catch {image create photo -blah blah}
- imageNames
-} -result {}
-test imgPhoto-2.2 {ImgPhotoCreate procedure} -setup {
- imageCleanup
-} -body {
+ image names
+} {}
+test imgPhoto-2.2 {ImgPhotoCreate procedure} {
+ eval image delete [image names]
image create photo image1
- list [info commands image1] [imageNames] \
- [image width image1] [image height image1]
-} -cleanup {
- image delete image1
-} -result {image1 image1 0 0}
+ list [info commands image1] [image names] \
+ [image width image1] [image height image1]
+} {image1 image1 0 0}
# test imgPhoto-2.3 {ImgPhotoCreate procedure: creation failure} {
-# image create photo photo1
-# image create photo photo2 -width 10 -height 10
-# catch {image create photo photo2 -file bogus.img} msg
-# photo1 copy photo2
+# image create photo p1
+# image create photo p2 -width 10 -height 10
+# catch {image create photo p2 -file bogus.img} msg
+# p1 copy p2
# set msg
# } {couldn't open "bogus.img": no such file or directory}
-test imgPhoto-3.1 {ImgPhotoConfigureMaster procedure} -constraints {
- hasTeapotPhoto
-} -body {
- image create photo photo1 -file $teapotPhotoFile
- photo1 configure -file $teapotPhotoFile
-} -cleanup {
- image delete photo1
-} -result {}
-test imgPhoto-3.2 {ImgPhotoConfigureMaster procedure} -constraints {
- hasTeapotPhoto
-} -body {
- image create photo photo1 -file $teapotPhotoFile
- list [catch {photo1 configure -file bogus} err] [string tolower $err] \
- [image width photo1] [image height photo1]
-} -cleanup {
- image delete photo1
-} -result {1 {couldn't open "bogus": no such file or directory} 256 256}
-test imgPhoto-3.3 {ImgPhotoConfigureMaster procedure} -constraints {
- hasTeapotPhoto
-} -setup {
- destroy .c
- pack [canvas .c]
+test imgPhoto-3.1 {ImgPhotoConfigureMaster procedure} hasTeapotPhoto {
+ image create photo p1 -file $teapotPhotoFile
+ p1 configure -file $teapotPhotoFile
+} {}
+test imgPhoto-3.2 {ImgPhotoConfigureMaster procedure} hasTeapotPhoto {
+ image create photo p1 -file $teapotPhotoFile
+ list [catch {p1 configure -file bogus} err] [string tolower $err] \
+ [image width p1] [image height p1]
+} {1 {couldn't open "bogus": no such file or directory} 256 256}
+test imgPhoto-3.3 {ImgPhotoConfigureMaster procedure} hasTeapotPhoto {
+ image create photo p1
+ .c create image 10 10 -image p1 -tags p1.1 -anchor nw
+ .c create image 300 10 -image p1 -tags p1.2 -anchor nw
update
-} -body {
- image create photo photo1
- .c create image 10 10 -image photo1 -tags photo1.1 -anchor nw
- .c create image 300 10 -image photo1 -tags photo1.2 -anchor nw
- update
- photo1 configure -file $teapotPhotoFile
+ p1 configure -file $teapotPhotoFile
update
- list [image width photo1] [image height photo1] [.c bbox photo1.1] [.c bbox photo1.2]
-} -cleanup {
- destroy .c
- image delete photo1
-} -result {256 256 {10 10 266 266} {300 10 556 266}}
+ list [image width p1] [image height p1] [.c bbox p1.1] [.c bbox p1.2]
+} {256 256 {10 10 266 266} {300 10 556 266}}
-test imgPhoto-4.1 {ImgPhotoCmd procedure} -setup {
- image create photo photo1
-} -body {
- photo1
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {wrong # args: should be "photo1 option ?arg ...?"}
-test imgPhoto-4.2 {ImgPhotoCmd procedure} -setup {
- image create photo photo1
-} -body {
- photo1 blah
-} -returnCodes error -cleanup {
- image delete photo1
-} -match glob -result {bad option "blah": must be *}
-test imgPhoto-4.3 {ImgPhotoCmd procedure: blank option} -setup {
- image create photo photo1
-} -body {
- photo1 blank
- photo1 blank x
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {wrong # args: should be "photo1 blank"}
-test imgPhoto-4.4 {ImgPhotoCmd procedure: cget option} -setup {
- image create photo photo1
-} -body {
- photo1 cget
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {wrong # args: should be "photo1 cget option"}
-test imgPhoto-4.5 {ImgPhotoCmd procedure: cget option} -setup {
- image create photo photo2 -width 25 -height 30
-} -body {
- list [photo2 cget -width] [photo2 cget -height]
-} -cleanup {
- image delete photo2
-} -result {25 30}
-test imgPhoto-4.6 {ImgPhotoCmd procedure: configure option} -setup {
- image create photo photo1
-} -body {
- llength [photo1 configure]
-} -cleanup {
- image delete photo1
-} -result 7
-test imgPhoto-4.7 {ImgPhotoCmd procedure: configure option} -setup {
- image create photo photo1
-} -body {
- photo1 conf -palette 3/4/2
- photo1 configure -palette
-} -cleanup {
- image delete photo1
-} -result {-palette {} {} {} 3/4/2}
-test imgPhoto-4.8 {ImgPhotoCmd procedure: configure option} -setup {
- image create photo photo1
-} -body {
- photo1 configure -blah
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {unknown option "-blah"}
-test imgPhoto-4.9 {ImgPhotoCmd procedure: configure option} -setup {
- image create photo photo1
-} -body {
- photo1 configure -palette {} -gamma
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {value for "-gamma" missing}
-test imgPhoto-4.10 {ImgPhotoCmd procedure: copy option} -constraints {
- hasTeapotPhoto
-} -setup {
- image create photo photo1
- image create photo photo2 -width 25 -height 30
-} -body {
- image create photo photo2 -file $teapotPhotoFile
- photo1 configure -width 0 -height 0 -palette {} -gamma 1
- photo1 copy photo2
- list [image width photo1] [image height photo1] [photo1 get 100 100]
-} -cleanup {
- image delete photo1 photo2
-} -result {256 256 {169 117 90}}
-test imgPhoto-4.11 {ImgPhotoCmd procedure: copy option} -setup {
- image create photo photo1
-} -body {
- photo1 copy
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {wrong # args: should be "photo1 copy source-image ?-compositingrule rule? ?-from x1 y1 x2 y2? ?-to x1 y1 x2 y2? ?-zoom x y? ?-subsample x y?"}
-test imgPhoto-4.12 {ImgPhotoCmd procedure: copy option} -setup {
- image create photo photo1
-} -body {
- photo1 copy blah
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {image "blah" doesn't exist or is not a photo image}
-test imgPhoto-4.13 {ImgPhotoCmd procedure: copy option} -setup {
- image create photo photo1
- image create photo photo2
-} -body {
- photo1 copy photo2 -blah
-} -returnCodes error -cleanup {
- image delete photo1 photo2
-} -result {unrecognized option "-blah": must be -compositingrule, -from, -shrink, -subsample, -to, or -zoom}
-test imgPhoto-4.14 {ImgPhotoCmd procedure: copy option} -setup {
- image create photo photo1
- image create photo photo2
-} -body {
- photo1 copy photo2 -from -to
-} -returnCodes error -cleanup {
- image delete photo1 photo2
-} -result {the "-from" option requires one to four integer values}
-test imgPhoto-4.15 {ImgPhotoCmd procedure: copy option} -constraints {
- hasTeapotPhoto
-} -setup {
- image create photo photo1
- image create photo photo2 -file $teapotPhotoFile
-} -body {
- photo1 copy photo2
- photo1 copy photo2 -from 0 70 60 120 -shrink
- list [image width photo1] [image height photo1] [photo1 get 20 10]
-} -cleanup {
- image delete photo1 photo2
-} -result {60 50 {215 154 120}}
-test imgPhoto-4.16 {ImgPhotoCmd procedure: copy option} -constraints {
- hasTeapotPhoto
-} -setup {
- image create photo photo1
- image create photo photo2 -file $teapotPhotoFile
-} -body {
- photo1 copy photo2 -from 60 120 0 70 -to 20 50
- list [image width photo1] [image height photo1] [photo1 get 40 80]
-} -cleanup {
- image delete photo1 photo2
-} -result {80 100 {19 92 192}}
-test imgPhoto-4.17 {ImgPhotoCmd procedure: copy option} -constraints {
- hasTeapotPhoto
-} -setup {
- image create photo photo1
- image create photo photo2 -file $teapotPhotoFile
-} -body {
- photo1 copy photo2 -from 0 120 60 70 -to 0 0 100 100
- list [image width photo1] [image height photo1] [photo1 get 80 60]
-} -cleanup {
- image delete photo1 photo2
-} -result {100 100 {215 154 120}}
-test imgPhoto-4.18 {ImgPhotoCmd procedure: copy option} -constraints {
- hasTeapotPhoto
-} -setup {
- image create photo photo1
- image create photo photo2 -file $teapotPhotoFile
-} -body {
- photo1 copy photo2 -from 60 70 0 120 -zoom 2
- list [image width photo1] [image height photo1] [photo1 get 100 50]
-} -cleanup {
- image delete photo1 photo2
-} -result {120 100 {169 99 47}}
-test imgPhoto-4.19 {ImgPhotoCmd procedure: copy option} -constraints {
- hasTeapotPhoto
-} -setup {
- image create photo photo1
- image create photo photo2 -file $teapotPhotoFile
-} -body {
- photo1 copy photo2 -from 0 70 60 120 -zoom 2
- list [image width photo1] [image height photo1] [photo1 get 100 50]
-} -cleanup {
- image delete photo1 photo2
-} -result {120 100 {169 99 47}}
-test imgPhoto-4.20 {ImgPhotoCmd procedure: copy option} -constraints {
- hasTeapotPhoto
-} -setup {
- image create photo photo1
- image create photo photo2 -file $teapotPhotoFile
-} -body {
- photo1 copy photo2 -from 20 20 200 180 -subsample 2 -shrink
- list [image width photo1] [image height photo1] [photo1 get 50 30]
-} -cleanup {
- image delete photo1 photo2
-} -result {90 80 {207 146 112}}
-test imgPhoto-4.21 {ImgPhotoCmd procedure: copy option} -constraints {
- hasTeapotPhoto
-} -setup {
- image create photo photo1
- image create photo photo2 -file $teapotPhotoFile
-} -body {
- photo1 copy photo2
- set result [list [image width photo1] [image height photo1]]
- photo1 conf -width 49 -height 51
- lappend result [image width photo1] [image height photo1]
- photo1 copy photo2
- lappend result [image width photo1] [image height photo1]
- photo1 copy photo2 -from 0 0 10 10 -shrink
- lappend result [image width photo1] [image height photo1]
- photo1 conf -width 0
- photo1 copy photo2 -from 0 0 10 10 -shrink
- lappend result [image width photo1] [image height photo1]
- photo1 conf -height 0
- photo1 copy photo2 -from 0 0 10 10 -shrink
- lappend result [image width photo1] [image height photo1]
-} -cleanup {
- image delete photo1 photo2
-} -result {256 256 49 51 49 51 49 51 10 51 10 10}
-test imgPhoto-4.22 {ImgPhotoCmd procedure: get option} -constraints {
- hasTeapotPhoto
-} -setup {
- image create photo photo1
-} -body {
- photo1 read $teapotPhotoFile
- list [photo1 get 100 100] [photo1 get 150 100] [photo1 get 100 150]
-} -cleanup {
- image delete photo1
-} -result {{169 117 90} {172 115 84} {35 35 35}}
-test imgPhoto-4.23 {ImgPhotoCmd procedure: get option} -setup {
- image create photo photo1
-} -body {
- photo1 get 256 0
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {photo1 get: coordinates out of range}
-test imgPhoto-4.24 {ImgPhotoCmd procedure: get option} -setup {
- image create photo photo1
-} -body {
- photo1 get 0 -1
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {photo1 get: coordinates out of range}
-test imgPhoto-4.25 {ImgPhotoCmd procedure: get option} -setup {
- image create photo photo1
-} -body {
- photo1 get
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {wrong # args: should be "photo1 get x y"}
-test imgPhoto-4.26 {ImgPhotoCmd procedure: put option} -setup {
- image create photo photo1
-} -body {
- photo1 put
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {wrong # args: should be "photo1 put data ?-option value ...?"}
-test imgPhoto-4.27 {ImgPhotoCmd procedure: put option} -setup {
- image create photo photo1
-} -body {
- photo1 put {{white} {white white}}
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {all elements of color list must have the same number of elements}
-test imgPhoto-4.28 {ImgPhotoCmd procedure: put option} -setup {
- image create photo photo1
-} -body {
- photo1 put {{blahgle}}
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {can't parse color "blahgle"}
-test imgPhoto-4.29 {ImgPhotoCmd procedure: put option} -setup {
- image create photo photo1
-} -body {
- photo1 put -to 10 10 20 20 {{white}}
- photo1 get 19 19
-} -cleanup {
- image delete photo1
-} -result {255 255 255}
-test imgPhoto-4.30 {ImgPhotoCmd procedure: read option} -setup {
- image create photo photo1
-} -body {
- photo1 read
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {wrong # args: should be "photo1 read fileName ?-option value ...?"}
-test imgPhoto-4.31 {ImgPhotoCmd procedure: read option} -constraints {
- hasTeapotPhoto
-} -setup {
- image create photo photo1
-} -body {
- photo1 read $teapotPhotoFile -zoom 2
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {unrecognized option "-zoom": must be -format, -from, -shrink, or -to}
-test imgPhoto-4.32 {ImgPhotoCmd procedure: read option} -setup {
- image create photo photo1
-} -body {
- list [catch {photo1 read bogus} err] [string tolower $err]
-} -cleanup {
- image delete photo1
-} -result {1 {couldn't open "bogus": no such file or directory}}
-test imgPhoto-4.33 {ImgPhotoCmd procedure: read option} -constraints {
- hasTeapotPhoto
-} -setup {
- image create photo photo1
-} -body {
- photo1 read $teapotPhotoFile -format bogus
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {image file format "bogus" is not supported}
-test imgPhoto-4.34 {ImgPhotoCmd procedure: read option} -setup {
- image create photo photo1
-} -body {
- photo1 read $README
-} -returnCodes error -cleanup {
- image delete photo1
-} -result [subst {couldn't recognize data in image file "$README"}]
-test imgPhoto-4.35 {ImgPhotoCmd procedure: read option} -constraints {
- hasTeapotPhoto
-} -setup {
- image create photo photo1
-} -body {
- photo1 read $teapotPhotoFile
- list [image width photo1] [image height photo1] [photo1 get 120 120]
-} -cleanup {
- image delete photo1
-} -result {256 256 {161 109 82}}
-test imgPhoto-4.36 {ImgPhotoCmd procedure: read option} -constraints {
- hasTeapotPhoto
-} -setup {
- image create photo photo1
-} -body {
- photo1 read $teapotPhotoFile -from 0 70 60 120 -to 10 10 -shrink
- list [image width photo1] [image height photo1] [photo1 get 29 19]
-} -cleanup {
- image delete photo1
-} -result {70 60 {244 180 144}}
-test imgPhoto-4.37 {ImgPhotoCmd procedure: redither option} -setup {
- image create photo photo1
-} -body {
- photo1 redither
- photo1 redither x
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {wrong # args: should be "photo1 redither"}
-test imgPhoto-4.38 {ImgPhotoCmd procedure: write option} -setup {
- image create photo photo1
-} -body {
- photo1 write
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {wrong # args: should be "photo1 write fileName ?-option value ...?"}
-test imgPhoto-4.39 {ImgPhotoCmd procedure: write option} -setup {
- image create photo photo1
-} -body {
- photo1 write teapot.tmp -format bogus
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {image file format "bogus" is unknown}
-test imgPhoto-4.40 {ImgPhotoCmd procedure: transparency option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {wrong # args: should be "photo1 transparency option ?arg ...?"}
-test imgPhoto-4.41 {ImgPhotoCmd procedure: transparency get option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency get
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {wrong # args: should be "photo1 transparency get x y"}
-test imgPhoto-4.42 {ImgPhotoCmd procedure: transparency get option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency get 0
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {wrong # args: should be "photo1 transparency get x y"}
-test imgPhoto-4.43 {ImgPhotoCmd procedure: transparency get option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency get 0 0 0
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {wrong # args: should be "photo1 transparency get x y"}
-test imgPhoto-4.44 {ImgPhotoCmd procedure: transparency get option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency get bogus 0
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {expected integer but got "bogus"}
-test imgPhoto-4.45 {ImgPhotoCmd procedure: transparency get option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency get 0 bogus
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {expected integer but got "bogus"}
-test imgPhoto-4.46 {ImgPhotoCmd procedure: transparency get option} -setup {
- image create photo photo1
-} -body {
- photo1 put white
- photo1 transparency get 0 0
-} -cleanup {
- image delete photo1
-} -result 0
-test imgPhoto-4.47 {ImgPhotoCmd procedure: transparency get option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency get 1 0
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {photo1 transparency get: coordinates out of range}
-test imgPhoto-4.48 {ImgPhotoCmd procedure: transparency get option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency get -1 0
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {photo1 transparency get: coordinates out of range}
-test imgPhoto-4.49 {ImgPhotoCmd procedure: transparency get option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency get 0 1
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {photo1 transparency get: coordinates out of range}
-test imgPhoto-4.50 {ImgPhotoCmd procedure: transparency get option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency get 0 -1
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {photo1 transparency get: coordinates out of range}
-test imgPhoto-4.51 {ImgPhotoCmd procedure: transparency get option} -setup {
- image create photo photo1
-} -body {
- photo1 put white
- photo1 blank
- photo1 transparency get 0 0
-} -cleanup {
- image delete photo1
-} -result 1
-test imgPhoto-4.52 {ImgPhotoCmd procedure: transparency set option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency set
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {wrong # args: should be "photo1 transparency set x y boolean"}
-test imgPhoto-4.53 {ImgPhotoCmd procedure: transparency set option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency set 0
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {wrong # args: should be "photo1 transparency set x y boolean"}
-test imgPhoto-4.54 {ImgPhotoCmd procedure: transparency set option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency set 0 0
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {wrong # args: should be "photo1 transparency set x y boolean"}
-test imgPhoto-4.55 {ImgPhotoCmd procedure: transparency set option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency set 0 0 0 0
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {wrong # args: should be "photo1 transparency set x y boolean"}
-test imgPhoto-4.56 {ImgPhotoCmd procedure: transparency set option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency set bogus 0 0
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {expected integer but got "bogus"}
-test imgPhoto-4.57 {ImgPhotoCmd procedure: transparency set option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency set 0 bogus 0
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {expected integer but got "bogus"}
-test imgPhoto-4.58 {ImgPhotoCmd procedure: transparency set option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency set 0 0 bogus
-} -cleanup {
- image delete photo1
-} -returnCodes error -result {expected boolean value but got "bogus"}
-test imgPhoto-4.59 {ImgPhotoCmd procedure: transparency set option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency set 1 0 0
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {photo1 transparency set: coordinates out of range}
-test imgPhoto-4.60 {ImgPhotoCmd procedure: transparency set option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency set -1 0 0
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {photo1 transparency set: coordinates out of range}
-test imgPhoto-4.61 {ImgPhotoCmd procedure: transparency set option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency set 0 1 0
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {photo1 transparency set: coordinates out of range}
-test imgPhoto-4.62 {ImgPhotoCmd procedure: transparency set option} -setup {
- image create photo photo1
-} -body {
- photo1 transparency set 0 -1 0
-} -returnCodes error -cleanup {
- image delete photo1
-} -result {photo1 transparency set: coordinates out of range}
-test imgPhoto-4.63 {ImgPhotoCmd procedure: transparency set option} -setup {
- image create photo photo1
-} -body {
- photo1 put white
- photo1 transparency set 0 0 false
- photo1 transparency get 0 0
-} -cleanup {
- image delete photo1
-} -result 0
-test imgPhoto-4.64 {ImgPhotoCmd procedure: transparency set option} -setup {
- image create photo photo1
-} -body {
- photo1 put white
- photo1 transparency set 0 0 true
- photo1 transparency get 0 0
-} -cleanup {
- image delete photo1
-} -result 1
-# Now for some heftier testing, checking that setting and resetting of pixels'
-# transparency status doesn't "leak" with any one-off errors.
-test imgPhoto-4.65 {ImgPhotoCmd procedure: transparency get option} -setup {
- image create photo photo1
-} -body {
- photo1 put white -to 0 0 3 3
- checkImgTrans photo1
-} -cleanup {
- image delete photo1
-} -result {}
-test imgPhoto-4.66 {ImgPhotoCmd procedure: transparency get option} -setup {
- image create photo photo1
-} -body {
- photo1 put white -to 0 0 3 3
- photo1 blank
- checkImgTrans photo1
-} -result {0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2}
-test imgPhoto-4.67 {ImgPhotoCmd procedure: transparency set option} -setup {
- image create photo photo1
-} -body {
- photo1 put white -to 0 0 3 3
- checkImgTransLoop photo1 {
- photo1 put white -to 0 0 3 3
- photo1 transparency set $x $y 1
- } {
- photo1 transparency set $x $y 0
+eval image delete [image names]
+image create photo p1
+.c create image 10 10 -image p1
+update
+
+test imgPhoto-4.1 {ImgPhotoCmd procedure} {
+ list [catch {p1} err] $err
+} {1 {wrong # args: should be "p1 option ?arg arg ...?"}}
+test imgPhoto-4.2 {ImgPhotoCmd procedure} {
+ list [catch {p1 blah} err] $err
+} {1 {bad option "blah": must be blank, cget, configure, copy, data, get, put, read, redither, transparency, or write}}
+test imgPhoto-4.3 {ImgPhotoCmd procedure: blank option} {
+ p1 blank
+ list [catch {p1 blank x} err] $err
+} {1 {wrong # args: should be "p1 blank"}}
+test imgPhoto-4.4 {ImgPhotoCmd procedure: cget option} {
+ list [catch {p1 cget} msg] $msg
+} {1 {wrong # args: should be "p1 cget option"}}
+test imgPhoto-4.5 {ImgPhotoCmd procedure: cget option} {
+ image create photo p2 -width 25 -height 30
+ list [p2 cget -width] [p2 cget -height]
+} {25 30}
+test imgPhoto-4.6 {ImgPhotoCmd procedure: configure option} {
+ llength [p1 configure]
+} {7}
+test imgPhoto-4.7 {ImgPhotoCmd procedure: configure option} {
+ p1 conf -palette 3/4/2
+ p1 configure -palette
+} {-palette {} {} {} 3/4/2}
+test imgPhoto-4.8 {ImgPhotoCmd procedure: configure option} {
+ list [catch {p1 configure -blah} msg] $msg
+} {1 {unknown option "-blah"}}
+test imgPhoto-4.9 {ImgPhotoCmd procedure: configure option} {
+ list [catch {p1 configure -palette {} -gamma} msg] $msg
+} {1 {value for "-gamma" missing}}
+test imgPhoto-4.10 {ImgPhotoCmd procedure: copy option} hasTeapotPhoto {
+ image create photo p2 -file $teapotPhotoFile
+ p1 configure -width 0 -height 0 -palette {} -gamma 1
+ p1 copy p2
+ list [image width p1] [image height p1] [p1 get 100 100]
+} {256 256 {169 117 90}}
+test imgPhoto-4.11 {ImgPhotoCmd procedure: copy option} {
+ list [catch {p1 copy} msg] $msg
+} {1 {wrong # args: should be "p1 copy source-image ?-compositingrule rule? ?-from x1 y1 x2 y2? ?-to x1 y1 x2 y2? ?-zoom x y? ?-subsample x y?"}}
+test imgPhoto-4.12 {ImgPhotoCmd procedure: copy option} {
+ list [catch {p1 copy blah} msg] $msg
+} {1 {image "blah" doesn't exist or is not a photo image}}
+test imgPhoto-4.13 {ImgPhotoCmd procedure: copy option} {
+ list [catch {p1 copy p2 -blah} msg] $msg
+} {1 {unrecognized option "-blah": must be -compositingrule, -from, -shrink, -subsample, -to, or -zoom}}
+test imgPhoto-4.14 {ImgPhotoCmd procedure: copy option} {
+ list [catch {p1 copy p2 -from -to} msg] $msg
+} {1 {the "-from" option requires one to four integer values}}
+test imgPhoto-4.15 {ImgPhotoCmd procedure: copy option} {
+ p1 copy p2
+ p1 copy p2 -from 0 70 60 120 -shrink
+ list [image width p1] [image height p1] [p1 get 20 10]
+} {60 50 {215 154 120}}
+test imgPhoto-4.16 {ImgPhotoCmd procedure: copy option} {
+ p1 copy p2 -from 60 120 0 70 -to 20 50
+ list [image width p1] [image height p1] [p1 get 40 80]
+} {80 100 {19 92 192}}
+test imgPhoto-4.17 {ImgPhotoCmd procedure: copy option} {
+ p1 copy p2 -from 0 120 60 70 -to 0 0 100 100
+ list [image width p1] [image height p1] [p1 get 80 60]
+} {100 100 {215 154 120}}
+test imgPhoto-4.18 {ImgPhotoCmd procedure: copy option} {
+ p1 copy p2 -from 60 70 0 120 -zoom 2
+ list [image width p1] [image height p1] [p1 get 100 50]
+} {120 100 {169 99 47}}
+test imgPhoto-4.19 {ImgPhotoCmd procedure: copy option} {
+ p1 copy p2 -from 0 70 60 120
+ list [image width p1] [image height p1] [p1 get 100 50]
+} {120 100 {169 99 47}}
+test imgPhoto-4.20 {ImgPhotoCmd procedure: copy option} {
+ p1 copy p2 -from 20 20 200 180 -subsample 2 -shrink
+ list [image width p1] [image height p1] [p1 get 50 30]
+} {90 80 {207 146 112}}
+test imgPhoto-4.21 {ImgPhotoCmd procedure: copy option} {
+ p1 copy p2
+ set result [list [image width p1] [image height p1]]
+ p1 conf -width 49 -height 51
+ lappend result [image width p1] [image height p1]
+ p1 copy p2
+ lappend result [image width p1] [image height p1]
+ p1 copy p2 -from 0 0 10 10 -shrink
+ lappend result [image width p1] [image height p1]
+ p1 conf -width 0
+ p1 copy p2 -from 0 0 10 10 -shrink
+ lappend result [image width p1] [image height p1]
+ p1 conf -height 0
+ p1 copy p2 -from 0 0 10 10 -shrink
+ lappend result [image width p1] [image height p1]
+} {256 256 49 51 49 51 49 51 10 51 10 10}
+test imgPhoto-4.22 {ImgPhotoCmd procedure: get option} hasTeapotPhoto {
+ p1 read $teapotPhotoFile
+ list [p1 get 100 100] [p1 get 150 100] [p1 get 100 150]
+} {{169 117 90} {172 115 84} {35 35 35}}
+test imgPhoto-4.23 {ImgPhotoCmd procedure: get option} {
+ list [catch {p1 get 256 0} err] $err
+} {1 {p1 get: coordinates out of range}}
+test imgPhoto-4.24 {ImgPhotoCmd procedure: get option} {
+ list [catch {p1 get 0 -1} err] $err
+} {1 {p1 get: coordinates out of range}}
+test imgPhoto-4.25 {ImgPhotoCmd procedure: get option} {
+ list [catch {p1 get} err] $err
+} {1 {wrong # args: should be "p1 get x y"}}
+test imgPhoto-4.26 {ImgPhotoCmd procedure: put option} {
+ list [catch {p1 put} err] $err
+} {1 {wrong # args: should be "p1 put data ?options?"}}
+test imgPhoto-4.27 {ImgPhotoCmd procedure: put option} {
+ list [catch {p1 put {{white} {white white}}} err] $err
+} {1 {all elements of color list must have the same number of elements}}
+test imgPhoto-4.28 {ImgPhotoCmd procedure: put option} {
+ list [catch {p1 put {{blahgle}}} err] $err
+} {1 {can't parse color "blahgle"}}
+test imgPhoto-4.29 {ImgPhotoCmd procedure: put option} {
+ p1 put {{white}} -to 10 10 20 20
+ p1 get 19 19
+} {255 255 255}
+test imgPhoto-4.30 {ImgPhotoCmd procedure: read option} {
+ list [catch {p1 read} err] $err
+} {1 {wrong # args: should be "p1 read fileName ?options?"}}
+test imgPhoto-4.31 {ImgPhotoCmd procedure: read option} hasTeapotPhoto {
+ list [catch {p1 read $teapotPhotoFile -zoom 2} err] $err
+} {1 {unrecognized option "-zoom": must be -format, -from, -shrink, or -to}}
+test imgPhoto-4.32 {ImgPhotoCmd procedure: read option} {
+ list [catch {p1 read bogus} err] [string tolower $err]
+} {1 {couldn't open "bogus": no such file or directory}}
+test imgPhoto-4.33 {ImgPhotoCmd procedure: read option} hasTeapotPhoto {
+ list [catch {p1 read $teapotPhotoFile -format bogus} err] $err
+} {1 {image file format "bogus" is not supported}}
+test imgPhoto-4.34 {ImgPhotoCmd procedure: read option} {
+ list [catch {p1 read $README} err] $err
+} [subst {1 {couldn't recognize data in image file "$README"}}]
+test imgPhoto-4.35 {ImgPhotoCmd procedure: read option} hasTeapotPhoto {
+ p1 read $teapotPhotoFile
+ list [image width p1] [image height p1] [p1 get 120 120]
+} {256 256 {161 109 82}}
+test imgPhoto-4.36 {ImgPhotoCmd procedure: read option} hasTeapotPhoto {
+ p1 read $teapotPhotoFile -from 0 70 60 120 -to 10 10 -shrink
+ list [image width p1] [image height p1] [p1 get 29 19]
+} {70 60 {244 180 144}}
+test imgPhoto-4.37 {ImgPhotoCmd procedure: redither option} {
+ p1 redither
+ list [catch {p1 redither x} err] $err
+} {1 {wrong # args: should be "p1 redither"}}
+test imgPhoto-4.38 {ImgPhotoCmd procedure: write option} {
+ list [catch {p1 write} err] $err
+} {1 {wrong # args: should be "p1 write fileName ?options?"}}
+test imgPhoto-4.39 {ImgPhotoCmd procedure: write option} {
+ list [catch {p1 write teapot.tmp -format bogus} err] $err
+} {1 {image file format "bogus" is unknown}}
+eval image delete [image names]
+image create photo p1
+test imgPhoto-4.40 {ImgPhotoCmd procedure: transparency option} {
+ list [catch {p1 transparency} err] $err
+} {1 {wrong # args: should be "p1 transparency option ?arg arg ...?"}}
+test imgPhoto-4.41 {ImgPhotoCmd procedure: transparency get option} {
+ list [catch {p1 transparency get} err] $err
+} {1 {wrong # args: should be "p1 transparency get x y"}}
+test imgPhoto-4.42 {ImgPhotoCmd procedure: transparency get option} {
+ list [catch {p1 transparency get 0} err] $err
+} {1 {wrong # args: should be "p1 transparency get x y"}}
+test imgPhoto-4.43 {ImgPhotoCmd procedure: transparency get option} {
+ list [catch {p1 transparency get 0 0 0} err] $err
+} {1 {wrong # args: should be "p1 transparency get x y"}}
+test imgPhoto-4.44 {ImgPhotoCmd procedure: transparency get option} {
+ list [catch {p1 transparency get bogus 0} err] $err
+} {1 {expected integer but got "bogus"}}
+test imgPhoto-4.45 {ImgPhotoCmd procedure: transparency get option} {
+ list [catch {p1 transparency get 0 bogus} err] $err
+} {1 {expected integer but got "bogus"}}
+test imgPhoto-4.46 {ImgPhotoCmd procedure: transparency get option} {
+ p1 put white
+ p1 transparency get 0 0
+} 0
+test imgPhoto-4.47 {ImgPhotoCmd procedure: transparency get option} {
+ list [catch {p1 transparency get 1 0} err] $err
+} {1 {p1 transparency get: coordinates out of range}}
+test imgPhoto-4.48 {ImgPhotoCmd procedure: transparency get option} {
+ list [catch {p1 transparency get -1 0} err] $err
+} {1 {p1 transparency get: coordinates out of range}}
+test imgPhoto-4.49 {ImgPhotoCmd procedure: transparency get option} {
+ list [catch {p1 transparency get 0 1} err] $err
+} {1 {p1 transparency get: coordinates out of range}}
+test imgPhoto-4.50 {ImgPhotoCmd procedure: transparency get option} {
+ list [catch {p1 transparency get 0 -1} err] $err
+} {1 {p1 transparency get: coordinates out of range}}
+test imgPhoto-4.51 {ImgPhotoCmd procedure: transparency get option} {
+ p1 blank
+ p1 transparency get 0 0
+} 1
+test imgPhoto-4.52 {ImgPhotoCmd procedure: transparency set option} {
+ list [catch {p1 transparency set} err] $err
+} {1 {wrong # args: should be "p1 transparency set x y boolean"}}
+test imgPhoto-4.53 {ImgPhotoCmd procedure: transparency set option} {
+ list [catch {p1 transparency set 0} err] $err
+} {1 {wrong # args: should be "p1 transparency set x y boolean"}}
+test imgPhoto-4.54 {ImgPhotoCmd procedure: transparency set option} {
+ list [catch {p1 transparency set 0 0} err] $err
+} {1 {wrong # args: should be "p1 transparency set x y boolean"}}
+test imgPhoto-4.55 {ImgPhotoCmd procedure: transparency set option} {
+ list [catch {p1 transparency set 0 0 0 0} err] $err
+} {1 {wrong # args: should be "p1 transparency set x y boolean"}}
+test imgPhoto-4.56 {ImgPhotoCmd procedure: transparency set option} {
+ list [catch {p1 transparency set bogus 0 0} err] $err
+} {1 {expected integer but got "bogus"}}
+test imgPhoto-4.57 {ImgPhotoCmd procedure: transparency set option} {
+ list [catch {p1 transparency set 0 bogus 0} err] $err
+} {1 {expected integer but got "bogus"}}
+test imgPhoto-4.58 {ImgPhotoCmd procedure: transparency set option} {
+ list [catch {p1 transparency set 0 0 bogus} err] $err
+} {1 {expected boolean value but got "bogus"}}
+test imgPhoto-4.59 {ImgPhotoCmd procedure: transparency set option} {
+ list [catch {p1 transparency set 1 0 0} err] $err
+} {1 {p1 transparency set: coordinates out of range}}
+test imgPhoto-4.60 {ImgPhotoCmd procedure: transparency set option} {
+ list [catch {p1 transparency set -1 0 0} err] $err
+} {1 {p1 transparency set: coordinates out of range}}
+test imgPhoto-4.61 {ImgPhotoCmd procedure: transparency set option} {
+ list [catch {p1 transparency set 0 1 0} err] $err
+} {1 {p1 transparency set: coordinates out of range}}
+test imgPhoto-4.62 {ImgPhotoCmd procedure: transparency set option} {
+ list [catch {p1 transparency set 0 -1 0} err] $err
+} {1 {p1 transparency set: coordinates out of range}}
+test imgPhoto-4.63 {ImgPhotoCmd procedure: transparency set option} {
+ p1 transparency set 0 0 false
+ p1 transparency get 0 0
+} 0
+test imgPhoto-4.64 {ImgPhotoCmd procedure: transparency set option} {
+ p1 transparency set 0 0 true
+ p1 transparency get 0 0
+} 1
+# Now for some heftier testing, checking that setting and resetting of
+# pixels' transparency status doesn't "leak" with any one-off errors.
+proc checkImgTrans {img width height} {
+ set result {}
+ for {set x 0} {$x<$width} {incr x} {
+ for {set y 0} {$y<$height} {incr y} {
+ if {[$img transparency get $x $y]} {
+ lappend result $x $y
+ }
+ }
}
-} -cleanup {
- image delete photo1
-} -result {0,0:. 0,1:. 0,2:. 1,0:. 1,1:. 1,2:. 2,0:. 2,1:. 2,2:.}
-test imgPhoto-4.68 {ImgPhotoCmd procedure: transparency set option} -setup {
- image create photo photo1
-} -body {
- photo1 put white -to 0 0 3 3
- checkImgTransLoop photo1 {
- photo1 blank
- photo1 transparency set $x $y 0
- } {
- photo1 transparency set $x $y 1
+ return $result
+}
+test imgPhoto-4.65 {ImgPhotoCmd procedure: transparency get option} {
+ p1 put white -to 0 0 3 3
+ checkImgTrans p1 3 3
+} {}
+test imgPhoto-4.66 {ImgPhotoCmd procedure: transparency get option} {
+ p1 blank
+ checkImgTrans p1 3 3
+} {0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2}
+proc checkImgTransLoopSetReset {img width height} {
+ set result {}
+ for {set x 0} {$x<$width} {incr x} {
+ for {set y 0} {$y<$height} {incr y} {
+ $img put white -to 0 0 3 3
+ $img transparency set $x $y 1
+ set result [concat $result [checkImgTrans $img $width $height]]
+ lappend result ,
+ $img transparency set $x $y 0
+ set result [concat $result [checkImgTrans $img $width $height]]
+ lappend result .
+ }
}
-} -cleanup {
- image delete photo1
-} -result {0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2: 0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2. 0,0 0,2 1,0 1,1 1,2 2,0 2,1 2,2: 0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2. 0,0 0,1 1,0 1,1 1,2 2,0 2,1 2,2: 0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2. 0,0 0,1 0,2 1,1 1,2 2,0 2,1 2,2: 0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2. 0,0 0,1 0,2 1,0 1,2 2,0 2,1 2,2: 0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2. 0,0 0,1 0,2 1,0 1,1 2,0 2,1 2,2: 0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2. 0,0 0,1 0,2 1,0 1,1 1,2 2,1 2,2: 0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2. 0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,2: 0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2. 0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1: 0,0 0,1 0,2 1,0 1,1 1,2 2,0 2,1 2,2.}
-test imgPhoto-4.69 {ImgPhotoCmd procedure: copy with -compositingrule} -setup {
- # Test the compositing rules for copying images
- image create photo photo1 -width 3 -height 3
- image create photo photo2 -width 2 -height 2
-} -body {
- photo1 copy photo2 -to 1 1 -compositingrule
-} -cleanup {
- image delete photo1 photo2
-} -returnCodes error -result {the "-compositingrule" option requires a value}
-test imgPhoto-4.70 {ImgPhotoCmd procedure: copy with -compositingrule} -setup {
- # Test the compositing rules for copying images
- image create photo photo1 -width 3 -height 3
- image create photo photo2 -width 2 -height 2
-} -body {
- photo1 copy photo2 -to 1 1 -compositingrule BAD
-} -returnCodes error -cleanup {
- image delete photo1 photo2
-} -result {bad compositing rule "BAD": must be overlay or set}
-test imgPhoto-4.71 {ImgPhotoCmd procedure: copy with -compositingrule} -setup {
- # Test the compositing rules for copying images
- image create photo photo1 -width 3 -height 3
- image create photo photo2 -width 2 -height 2
-} -body {
+ return $result
+}
+test imgPhoto-4.67 {ImgPhotoCmd procedure: transparency set option} {
+ checkImgTransLoopSetReset p1 3 3
+} {0 0 , . 0 1 , . 0 2 , . 1 0 , . 1 1 , . 1 2 , . 2 0 , . 2 1 , . 2 2 , .}
+proc checkImgTransLoopResetSet {img width height} {
+ set result {}
+ for {set x 0} {$x<$width} {incr x} {
+ for {set y 0} {$y<$height} {incr y} {
+ $img blank
+ $img transparency set $x $y 0
+ set result [concat $result [checkImgTrans $img $width $height]]
+ lappend result ,
+ $img transparency set $x $y 1
+ set result [concat $result [checkImgTrans $img $width $height]]
+ lappend result .
+ }
+ }
+ return $result
+}
+test imgPhoto-4.67a {ImgPhotoCmd procedure: transparency set option} {
+ checkImgTransLoopResetSet p1 3 3
+} {0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 , 0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 . 0 0 0 2 1 0 1 1 1 2 2 0 2 1 2 2 , 0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 . 0 0 0 1 1 0 1 1 1 2 2 0 2 1 2 2 , 0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 . 0 0 0 1 0 2 1 1 1 2 2 0 2 1 2 2 , 0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 . 0 0 0 1 0 2 1 0 1 2 2 0 2 1 2 2 , 0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 . 0 0 0 1 0 2 1 0 1 1 2 0 2 1 2 2 , 0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 . 0 0 0 1 0 2 1 0 1 1 1 2 2 1 2 2 , 0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 . 0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 2 , 0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 . 0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 , 0 0 0 1 0 2 1 0 1 1 1 2 2 0 2 1 2 2 .}
+catch {rename checkImgTransLoopSetReset {}}
+catch {rename checkImgTransLoopResetSet {}}
+# Test the compositing rules for copying images
+image create photo p1 -width 3 -height 3
+image create photo p2 -width 2 -height 2
+test imgPhoto-4.68 {ImgPhotoCmd procedure: copy with -compositingrule} {
+ list [catch {p1 copy p2 -to 1 1 -compositingrule} msg] $msg
+} {1 {the "-compositingrule" option requires a value}}
+test imgPhoto-4.69 {ImgPhotoCmd procedure: copy with -compositingrule} {
+ list [catch {p1 copy p2 -to 1 1 -compositingrule BAD} msg] $msg
+} {1 {bad compositing rule "BAD": must be overlay or set}}
+test imgPhoto-4.70 {ImgPhotoCmd procedure: copy with -compositingrule} {
# Tests default compositing rule
- photo1 blank
- photo2 blank
- photo1 put white -to 0 0 2 2
- photo2 put white -to 0 0 2 2
- photo2 transparency set 0 0 true
- photo1 copy photo2 -to 1 1
- checkImgTrans photo1
-} -cleanup {
- image delete photo1 photo2
-} -result {0,2 2,0}
-test imgPhoto-4.72 {ImgPhotoCmd procedure: copy with -compositingrule} -setup {
- # Test the compositing rules for copying images
- image create photo photo1 -width 3 -height 3
- image create photo photo2 -width 2 -height 2
-} -body {
- photo1 blank
- photo2 blank
- photo1 put white -to 0 0 2 2
- photo2 put white -to 0 0 2 2
- photo2 transparency set 0 0 true
- photo1 copy photo2 -to 1 1 -compositingrule overlay
- checkImgTrans photo1
-} -cleanup {
- image delete photo1 photo2
-} -result {0,2 2,0}
-test imgPhoto-4.73 {ImgPhotoCmd procedure: copy with -compositingrule} -setup {
- # Test the compositing rules for copying images
- image create photo photo1 -width 3 -height 3
- image create photo photo2 -width 2 -height 2
-} -body {
- photo1 blank
- photo2 blank
- photo1 put white -to 0 0 2 2
- photo2 put white -to 0 0 2 2
- photo2 transparency set 0 0 true
- photo1 copy photo2 -to 1 1 -compositingrule set
- checkImgTrans photo1
-} -cleanup {
- image delete photo1 photo2
-} -result {0,2 1,1 2,0}
+ p1 blank
+ p2 blank
+ p1 put white -to 0 0 2 2
+ p2 put white -to 0 0 2 2
+ p2 transparency set 0 0 true
+ p1 copy p2 -to 1 1
+ checkImgTrans p1 3 3
+} {0 2 2 0}
+test imgPhoto-4.71 {ImgPhotoCmd procedure: copy with -compositingrule} {
+ p1 blank
+ p2 blank
+ p1 put white -to 0 0 2 2
+ p2 put white -to 0 0 2 2
+ p2 transparency set 0 0 true
+ p1 copy p2 -to 1 1 -compositingrule overlay
+ checkImgTrans p1 3 3
+} {0 2 2 0}
+test imgPhoto-4.72 {ImgPhotoCmd procedure: copy with -compositingrule} {
+ p1 blank
+ p2 blank
+ p1 put white -to 0 0 2 2
+ p2 put white -to 0 0 2 2
+ p2 transparency set 0 0 true
+ p1 copy p2 -to 1 1 -compositingrule set
+ checkImgTrans p1 3 3
+} {0 2 1 1 2 0}
+catch {rename checkImgTrans {}}
test imgPhoto-4.74 {ImgPhotoCmd procedure: put option error handling} -setup {
image create photo photo1
} -body {
photo1 put {{white}} -to 10 10 20 20 {{white}}
} -cleanup {
image delete photo1
-} -returnCodes 1 -result {wrong # args: should be "photo1 put data ?-option value ...?"}
+} -returnCodes 1 -result {wrong # args: should be "photo1 put data ?options?"}
test imgPhoto-4.75 {<photo> read command: filename starting with '-'} -constraints {
hasTeapotPhoto
} -body {
@@ -815,70 +458,46 @@ test imgPhoto-4.75 {<photo> read command: filename starting with '-'} -constrain
file delete ./-teapotPhotoFile
} -result {}
-test imgPhoto-5.1 {ImgPhotoGet/Free procedures, shared instances} -constraints {
- hasTeapotPhoto
-} -setup {
- destroy .c
- pack [canvas .c]
- imageCleanup
-} -body {
- image create photo photo1 -file $teapotPhotoFile
- .c create image 0 0 -image photo1 -tags photo1.1
- .c create image 256 0 -image photo1 -tags photo1.2
- .c create image 0 256 -image photo1 -tags photo1.3
+test imgPhoto-5.1 {ImgPhotoGet/Free procedures, shared instances} hasTeapotPhoto {
+ eval image delete [image names]
+ .c delete all
+ image create photo p1 -file $teapotPhotoFile
+ .c create image 0 0 -image p1 -tags p1.1
+ .c create image 256 0 -image p1 -tags p1.2
+ .c create image 0 256 -image p1 -tags p1.3
update
.c delete i1.1
- photo1 configure -width 1
+ p1 configure -width 1
update
.c delete i1.2
- photo1 configure -height 1
+ p1 configure -height 1
update
- image delete photo1
-} -cleanup {
- destroy .c
-} -result {}
+ image delete p1
+} {}
-test imgPhoto-6.1 {ImgPhotoDisplay procedure, blank display} -setup {
- destroy .c
- pack [canvas .c]
- imageCleanup
-} -body {
- image create photo photo1 -width 10 -height 10
- photo1 blank
- .c create image 10 10 -image photo1
+test imgPhoto-6.1 {ImgPhotoDisplay procedure, blank display} {
+ .c delete all
+ image create photo p1 -width 10 -height 10
+ p1 blank
+ .c create image 10 10 -image p1
update
-} -cleanup {
- destroy .c
- image delete photo1
-} -result {}
+} {}
-test imgPhoto-7.1 {ImgPhotoFree procedure, resource freeing} -constraints {
- hasTeapotPhoto
-} -setup {
- destroy .c
- pack [canvas .c]
- imageCleanup
-} -body {
- image create photo photo1 -file $teapotPhotoFile
- .c create image 0 0 -image photo1 -anchor nw
+test imgPhoto-7.1 {ImgPhotoFree procedure, resource freeing} hasTeapotPhoto {
+ eval image delete [image names]
+ .c delete all
+ image create photo p1 -file $teapotPhotoFile
+ .c create image 0 0 -image p1 -anchor nw
update
.c delete all
- image delete photo1
-} -cleanup {
- destroy .c
-} -result {}
-test imgPhoto-7.2 {ImgPhotoFree procedures, unlinking} -constraints {
- hasTeapotPhoto
-} -setup {
- deleteWindows
- imageCleanup
-} -body {
- image create photo photo1 -file $teapotPhotoFile
- pack [canvas .c]
- .c create image 10 10 -image photo1 -anchor nw
- button .b1 -image photo1
- button .b2 -image photo1
- button .b3 -image photo1
+ image delete p1
+} {}
+test imgPhoto-7.2 {ImgPhotoFree procedures, unlinking} hasTeapotPhoto {
+ image create photo p1 -file $teapotPhotoFile
+ .c create image 10 10 -image p1 -anchor nw
+ button .b1 -image p1
+ button .b2 -image p1
+ button .b3 -image p1
pack .b1 .b2 .b3
update
destroy .b2
@@ -888,20 +507,12 @@ test imgPhoto-7.2 {ImgPhotoFree procedures, unlinking} -constraints {
destroy .b1
update
.c delete all
-} -cleanup {
- destroy .c
- image delete photo1
-} -result {}
-test imgPhoto-7.3 {ImgPhotoFree procedures, multiple visuals} -constraints {
- hasTeapotPhoto
-} -setup {
- deleteWindows
- imageCleanup
-} -body {
- image create photo photo1 -file $teapotPhotoFile
- button .b1 -image photo1
+} {}
+test imgPhoto-7.3 {ImgPhotoFree procedures, multiple visuals} hasTeapotPhoto {
+ image create photo p1 -file $teapotPhotoFile
+ button .b1 -image p1
frame .f -visual best
- button .f.b2 -image photo1
+ button .f.b2 -image p1
pack .f.b2
pack .b1 .f
update
@@ -910,71 +521,59 @@ test imgPhoto-7.3 {ImgPhotoFree procedures, multiple visuals} -constraints {
.f.b2 configure -image {}
update
destroy .f
- image delete photo1
-} -result {}
+ image delete p1
+} {}
-test imgPhoto-8.1 {ImgPhotoDelete procedure} -constraints hasTeapotPhoto -body {
- image create photo photo2 -file $teapotPhotoFile
- image delete photo2
-} -result {}
-test imgPhoto-8.2 {ImgPhotoDelete procedure} -constraints {
- hasTeapotPhoto
-} -setup {
- set x {}
-} -body {
- image create photo photo2 -file $teapotPhotoFile
- rename photo2 newphoto2
- lappend x [info command photo2] [info command new*] [newphoto2 cget -file]
- image delete photo2
- lappend x [info command new*]
-} -result [list {} newphoto2 $teapotPhotoFile {}]
-test imgPhoto-8.3 {ImgPhotoDelete procedure, name cleanup} -body {
- image create photo photo1
- image create photo photo2 -width 10 -height 10
- image delete photo2
- photo1 copy photo2
-} -returnCodes error -cleanup {
- imageCleanup
-} -result {image "photo2" doesn't exist or is not a photo image}
+test imgPhoto-8.1 {ImgPhotoDelete procedure} hasTeapotPhoto {
+ image create photo p2 -file $teapotPhotoFile
+ image delete p2
+} {}
+test imagePhoto-8.2 {ImgPhotoDelete procedure} hasTeapotPhoto {
+ image create photo p2 -file $teapotPhotoFile
+ rename p2 newp2
+ set x [list [info command p2] [info command new*] [newp2 cget -file]]
+ image delete p2
+ append x [info command new*]
+} [list {} newp2 $teapotPhotoFile]
+test imagePhoto-8.3 {ImgPhotoDelete procedure, name cleanup} {
+ image create photo p1
+ image create photo p2 -width 10 -height 10
+ image delete p2
+ list [catch {p1 copy p2} msg] $msg
+} {1 {image "p2" doesn't exist or is not a photo image}}
-test imgPhoto-9.1 {ImgPhotoCmdDeletedProc procedure} -constraints {
- hasTeapotPhoto
-} -body {
- image create photo photo2 -file $teapotPhotoFile
- rename photo2 {}
- list [lsearch -exact [imageNames] photo2] [catch {photo2 foo} msg] $msg
-} -result {-1 1 {invalid command name "photo2"}}
+test imagePhoto-9.1 {ImgPhotoCmdDeletedProc procedure} hasTeapotPhoto {
+ image create photo p2 -file $teapotPhotoFile
+ rename p2 {}
+ list [lsearch -exact [image names] p2] [catch {p2 foo} msg] $msg
+} {-1 1 {invalid command name "p2"}}
-test imgPhoto-10.1 {Tk_ImgPhotoPutBlock procedure} -setup {
- imageCleanup
-} -body {
- image create photo photo1
- photo1 put "{#ff0000 #ff0000 #ff0000 #ff0000 #ff0000 #ff0000 #ff0000 #ff0000}" -to 0 0
- photo1 put "{#00ff00 #00ff00}" -to 2 0
- list [photo1 get 2 0] [photo1 get 3 0] [photo1 get 4 0]
-} -result {{0 255 0} {0 255 0} {255 0 0}}
+test imgPhoto-10.1 {Tk_ImgPhotoPutBlock procedure} {
+ eval image delete [image names]
+ image create photo p1
+ p1 put {{#ff0000 #ff0000 #ff0000 #ff0000 #ff0000 #ff0000 #ff0000 #ff0000}} -to 0 0
+ p1 put {{#00ff00 #00ff00}} -to 2 0
+ list [p1 get 2 0] [p1 get 3 0] [p1 get 4 0]
+} {{0 255 0} {0 255 0} {255 0 0}}
-test imgPhoto-11.1 {Tk_FindPhoto} -setup {
- imageCleanup
-} -body {
+test imgPhoto-11.1 {Tk_FindPhoto} {
+ eval image delete [image names]
image create bitmap i1
- image create photo photo1
- photo1 copy i1
-} -cleanup {
- imageCleanup
-} -returnCodes error -result {image "i1" doesn't exist or is not a photo image}
+ image create photo p1
+ list [catch {p1 copy i1} msg] $msg
+} {1 {image "i1" doesn't exist or is not a photo image}}
-test imgPhoto-12.1 {Tk_PhotoPutZoomedBlock} -constraints hasTeapotPhoto -body {
+test imgPhoto-12.1 {Tk_PhotoPutZoomedBlock} hasTeapotPhoto {
image create photo p3 -file $teapotPhotoFile
set result [list [p3 get 50 50] [p3 get 100 100]]
p3 copy p3 -zoom 2
lappend result [image width p3] [image height p3] [p3 get 100 100]
-} -cleanup {
image delete p3
-} -result {{19 92 192} {169 117 90} 512 512 {19 92 192}}
+ set result
+} {{19 92 192} {169 117 90} 512 512 {19 92 192}}
-test imgPhoto-13.1 {check separation of images in different interpreters} -setup {
- imageCleanup
+test imgPhoto-13.1 {check separation of images in different interpreters} {
+ image delete {*}[image names]
set data {
R0lGODlhQgBkAPUAANbWxs7Wxs7OxsbOxsbGxsbGvb3Gvca9vcDAwL21vbW1vbW1tbWtta2t
ta2ltaWltaWlraWctaWcrZycrZyUrZSUrZSMrZSMpYyMrYyMpYyEpYSEpYR7pYR7nHp7pYRz
@@ -1010,79 +609,82 @@ test imgPhoto-13.1 {check separation of images in different interpreters} -setup
interp create x2
x1 eval {load {} Tk}
x2 eval {load {} Tk}
-} -body {
x1 eval [list image create photo T1_data -data $data]
x2 eval [list image create photo T1_data -data $data]
-} -cleanup {
+ unset data
interp delete x1
interp delete x2
-} -result T1_data
+} {}
-test imgPhoto-14.1 {GIF writes work correctly} -setup {
- set data {
- R0lGODlhYwA5APcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgAysnGy8hKzM
- hASs3MTcjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwP8AAAD/
- AP//AAAA//8A/wD//////ywAAAAAYwA5AAAI/wAZCBxIsKDBgwgTKlzIsKHD
- hxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bN
- mzhz6tzJs6fPn0CDCh1KtKhRiwoSKEXAtGlTpUqPGkyagOmCq1edNsWalWkC
- BUSXIuDqFepBqFWtZv3KU+zYrkrBSqT6dgECtjOTbu16NwFHvV3lshRLti/J
- qlgRCE6ZuO9ik4Dt+k0ZVyZiyVIvXr77ODPEy5g9T4zMWfTEzXdNz1VbWvXn
- uqldP1TAOrbshqBb314Y2W7n3Qdpv7UNPCHpycUVbv6dnODy5sqzQldIe8H0
- hciva9/Ovbv37+BzBgEEADs=
- }
- set tmpfilename [makeFile {} imgPhoto-14.1.gif]
- removeFile $tmpfilename
-} -body {
- image create photo photo1 -data $data
- photo1 write $tmpfilename -format gif
- image create photo photo2 -file $tmpfilename
- string equal [photo1 data] [photo2 data]
-} -cleanup {
- catch {image delete photo1 photo2}
- catch {file delete -force $tmpfilename}
-} -result 1
+test imgPhoto-14.1 {GIF writes work correctly} {
+ set data "R0lGODlhYwA5APcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgAysnGy8hKzM
+hASs3MTcjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwP8AAAD/
+AP//AAAA//8A/wD//////ywAAAAAYwA5AAAI/wAZCBxIsKDBgwgTKlzIsKHD
+hxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bN
+mzhz6tzJs6fPn0CDCh1KtKhRiwoSKEXAtGlTpUqPGkyagOmCq1edNsWalWkC
+BUSXIuDqFepBqFWtZv3KU+zYrkrBSqT6dgECtjOTbu16NwFHvV3lshRLti/J
+qlgRCE6ZuO9ik4Dt+k0ZVyZiyVIvXr77ODPEy5g9T4zMWfTEzXdNz1VbWvXn
+uqldP1TAOrbshqBb314Y2W7n3Qdpv7UNPCHpycUVbv6dnODy5sqzQldIe8H0
+hciva9/Ovbv37+BzBgEEADs=
+"
+ set photo [image create photo -data $data]
+ set filename [makeFile {} imgPhoto-14.1.gif]
+ removeFile imgPhoto-14.1.gif
+ $photo write $filename -format gif
+ set photo2 [image create photo -file $filename]
+ set result [string equal [$photo data] [$photo2 data]]
+ image delete $photo $photo2
+ catch {file delete -force $filename}
+ set result
+} 1
test imgPhoto-14.2 {GIF -index handler buffer sizing} -setup {
+ set i [image create photo]
+} -body {
+ # Bug 1458234 makes this crash when trying to access buffers of the
+ # wrong size, caused when the initial frame is not the largest frame.
set data {
R0lGODlhIAAgAKEAAPkOSQsi7////////yH/C05FVFNDQVBFMi4wAwEAAAAh
+QQJMgAAACwGAAYAFAAUAAACEYyPqcvtD6OctNqLs968+68VACH5BAkyAAEA
LAMAAwAaABoAAAI0jH+gq+gfmFzQzUsr3gBybn1gIm5kaUaoubbuC8fyTNel
Ohv1CSO533u8KrgbUfc5Ci/EAgA7
}
-} -body {
- # Bug 1458234 makes this crash when trying to access buffers of the wrong
- # size, caused when the initial frame is not the largest frame.
- set i [image create photo]
$i configure -data $data -format {gif -index 2}
} -cleanup {
image delete $i
} -returnCodes error -result {no image data for this index}
-test imgPhoto-14.3 {GIF -index interleaving and small frames} -body {
- # Interleaved GIFs used to crash us when a smaller subsequent frame was
- # accessed.
+
+test imgPhoto-14.3 {GIF -index interleaving and small frames} -setup {
set i [image create photo]
+} -body {
+ # Interleaved GIFs used to crash us when a smaller subsequent frame
+ # was accessed.
$i configure -format {GIF -index 1} -data {
R0lGODdhAQAFAPAAAP8AAAAAACwAAAAAAQAFAEACAoRdACwAAAAAAQAEAEACAoRRADs=
}
} -cleanup {
image delete $i
}
+
test imgPhoto-14.4 {GIF buffer overflow} -setup {
- set data {
+ set i [image create photo]
+} -body {
+ # This crashes Tk up to 8.4.17 and 8.5.0
+ $i configure -data {
R0lGODlhCgAKAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD/
AP//AAAA//8A/wD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
@@ -1102,85 +704,30 @@ test imgPhoto-14.4 {GIF buffer overflow} -setup {
mf9mzP9m//+ZAP+ZM/+ZZv+Zmf+ZzP+Z///MAP/MM//MZv/Mmf/MzP/M////
AP//M///Zv//mf//zP///yH5BAEAABAALAAAAAAKAAoAABUSAAD/HEiwoMGD
CBMqXMiwYcKAADs=
- }
-} -body {
- # This crashes Tk up to 8.4.17 and 8.5.0
- set i [image create photo]
- $i configure -data $data
+ }
} -cleanup {
image delete $i
} -returnCodes error -result {malformed image}
-test imgPhoto-15.1 {photo images can fail to allocate memory gracefully} -constraints {
- nonPortable
-} -body {
- # This is not portable to very large machines with more than around 3GB of
- # free memory available...
- image create photo -width 32000 -height 32000
-} -returnCodes error -result {not enough free memory for image buffer}
+test imgPhoto-15.1 {photo images can fail to allocate memory gracefully} \
+ {nonPortable} {
+ # This is not portable to very large machines with more around
+ # 3GB of free memory available...
+ list [catch {image create photo -width 32000 -height 32000} msg] $msg
+} {1 {not enough free memory for image buffer}}
-test imgPhoto-16.1 {copying to self doesn't access freed memory} -setup {
+test imgPhoto-16.1 {copying to self doesn't access freed memory} {
+ # Bug 877950 makes this crash when trying to copy out of a deallocated area
set i [image create photo]
-} -body {
- # Bug 877950 makes this crash when trying to copy out of a deallocated
- # area.
$i put red -to 0 0 1000 1000
$i copy $i -from 0 0 1000 1000 -to 500 0
-} -cleanup {
image delete $i
-} -result {}
+} {}
-# Check that we can guess our supported output formats [Bug 2983824]
-test imgPhoto-17.1 {photo write: format guessing from filename} -setup {
- set i [image create photo -width 3 -height 3]
-} -body {
- set f [makeFile {} test.png]
- $i write $f
- set fd [open $f]
- seek $fd 1
- read $fd 3
-} -cleanup {
- catch {close $fd}
- image delete $i
- catch {removeFile $f}
-} -result PNG
-test imgPhoto-17.2 {photo write: format guessing from filename} -setup {
- set i [image create photo -width 3 -height 3]
-} -body {
- set f [makeFile {} test.gif]
- $i write $f
- set fd [open $f]
- read $fd 3
-} -cleanup {
- catch {close $fd}
- image delete $i
- catch {removeFile $f}
-} -result GIF
-test imgPhoto-17.3 {photo write: format guessing from filename} -setup {
- set i [image create photo -width 3 -height 3]
-} -body {
- set f [makeFile {} test.ppm]
- $i write $f
- set fd [open $f]
- read $fd 3
-} -cleanup {
- catch {close $fd}
- image delete $i
- catch {removeFile $f}
-} -result "P6\n"
-
-# ----------------------------------------------------------------------
-
-catch {rename foreachPixel {}}
-catch {rename checkImgTrans {}}
-catch {rename checkImgTransLoop {}}
-imageFinish
+destroy .c
+eval image delete [image names]
# cleanup
removeFile README-imgPhoto
cleanupTests
return
-
-# Local variables:
-# mode: tcl
-# End: