imgPPM.test
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:7k
源码类别:

通讯编程

开发平台:

Visual C++

  1. # This file is a Tcl script to test out the code in tkImgFmtPPM.c,
  2. # which reads and write PPM-format image files for photo widgets.
  3. # The files is organized in the standard fashion for Tcl tests.
  4. #
  5. # Copyright (c) 1994-1997 Sun Microsystems, Inc.
  6. # Copyright (c) 1998-1999 by Scriptics Corporation.
  7. # All rights reserved.
  8. #
  9. # RCS: @(#) $Id: imgPPM.test,v 1.5.2.1 2007/11/26 20:53:57 kennykb Exp $
  10. package require tcltest 2.1
  11. namespace import -force tcltest::configure
  12. namespace import -force tcltest::testsDirectory
  13. configure -testdir [file join [pwd] [file dirname [info script]]]
  14. configure -loadfile [file join [testsDirectory] constraints.tcl]
  15. tcltest::loadTestedCommands
  16. namespace import -force tcltest::makeFile
  17. namespace import -force tcltest::removeFile
  18. eval image delete [image names]
  19. proc put {file data} {
  20.     set f [open $file w]
  21.     fconfigure $f -translation lf
  22.     puts -nonewline $f $data
  23.     close $f
  24. }
  25. test imgPPM-1.1 {FileReadPPM procedure} {
  26.     put test.ppm "P6n0 256n255nabcdef"
  27.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  28. } {1 {PPM image file "test.ppm" has dimension(s) <= 0}}
  29. test imgPPM-1.2 {FileReadPPM procedure} {
  30.     put test.ppm "P6n-2 256n255nabcdef"
  31.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  32. } {1 {PPM image file "test.ppm" has dimension(s) <= 0}}
  33. test imgPPM-1.3 {FileReadPPM procedure} {
  34.     put test.ppm "P6n10 0n255nabcdef"
  35.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  36. } {1 {PPM image file "test.ppm" has dimension(s) <= 0}}
  37. test imgPPM-1.4 {FileReadPPM procedure} {
  38.     put test.ppm "P6n10 -2n255nabcdef"
  39.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  40. } {1 {PPM image file "test.ppm" has dimension(s) <= 0}}
  41. test imgPPM-1.5 {FileReadPPM procedure} {
  42.     put test.ppm "P6n10 20n256nabcdef"
  43.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  44. } {1 {PPM image file "test.ppm" has bad maximum intensity value 256}}
  45. test imgPPM-1.6 {FileReadPPM procedure} {
  46.     put test.ppm "P6n10 20n0nabcdef"
  47.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  48. } {1 {PPM image file "test.ppm" has bad maximum intensity value 0}}
  49. test imgPPM-1.7 {FileReadPPM procedure} {
  50.     put test.ppm "P6n10 10n255nabcdef"
  51.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  52. } {1 {error reading PPM image file "test.ppm": not enough data}}
  53. test imgPPM-1.8 {FileReadPPM procedure} {
  54.     put test.ppm "P6n5 4n255n01234567890123456789012345678901234567890123456789012345678"
  55.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  56. } {1 {error reading PPM image file "test.ppm": not enough data}}
  57. test imgPPM-1.9 {FileReadPPM procedure} {
  58.     put test.ppm "P6n5 4n150n012345678901234567890123456789012345678901234567890123456789"
  59.     list [catch {image create photo p1 -file test.ppm} msg] $msg 
  60.     [image width p1] [image height p1]
  61. } {0 p1 5 4}
  62. catch {image delete p1}
  63. put test.ppm "P6n5 4n255n012345678901234567890123456789012345678901234567890123456789"
  64. image create photo p1 -file test.ppm
  65. test imgPPM-2.1 {FileWritePPM procedure} {
  66.     list [catch {p1 write not_a_dir/bar/baz/gorp} msg] [string tolower $msg] 
  67.     [string tolower $errorCode]
  68. } {1 {couldn't open "not_a_dir/bar/baz/gorp": no such file or directory} {posix enoent {no such file or directory}}}
  69. test imgPPM-2.2 {FileWritePPM procedure} {
  70.     catch {unset data}
  71.     p1 write -format ppm test2.ppm
  72.     set fd [open test2.ppm]
  73.     set data [read $fd]
  74.     close $fd
  75.     set data
  76. } {P6
  77. 5 4
  78. 255
  79. 012345678901234567890123456789012345678901234567890123456789}
  80. test imgPPM-3.1 {ReadPPMFileHeader procedure} {
  81.     catch {image delete p1}
  82.     put test.ppm "#   n#n#nP6n#n##n5 4n255n012345678901234567890123456789012345678901234567890123456789"
  83.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  84. } {0 p1}
  85. test imgPPM-3.2 {ReadPPMFileHeader procedure} {
  86.     catch {image delete p1}
  87.     put test.ppm "P6n5n 4                                                                     255n012345678901234567890123456789012345678901234567890123456789"
  88.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  89. } {0 p1}
  90. test imgPPM-3.3 {ReadPPMFileHeader procedure} {
  91.     catch {image delete p1}
  92.     put test.ppm "P6n#                                                                      asdfasdfn5 4n255n012345678901234567890123456789012345678901234567890123456789"
  93.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  94. } {0 p1}
  95. test imgPPM-3.4 {ReadPPMFileHeader procedure} {
  96.     catch {image delete p1}
  97.     put test.ppm "P6 n5 4n255n012345678901234567890123456789012345678901234567890123456789"
  98.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  99. } {0 p1}
  100. test imgPPM-3.5 {ReadPPMFileHeader procedure} {
  101.     catch {image delete p1}
  102.     put test.ppm "P5n5 4n255n01234567890123456789"
  103.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  104. } {0 p1}
  105. test imgPPM-3.6 {ReadPPMFileHeader procedure} {
  106.     catch {image delete p1}
  107.     put test.ppm "P3n5 4n255n012345678901234567890123456789012345678901234567890123456789"
  108.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  109. } {1 {couldn't recognize data in image file "test.ppm"}}
  110. test imgPPM-3.7 {ReadPPMFileHeader procedure} {
  111.     catch {image delete p1}
  112.     put test.ppm "P6xn5 4n255n012345678901234567890123456789012345678901234567890123456789"
  113.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  114. } {1 {couldn't recognize data in image file "test.ppm"}}
  115. test imgPPM-3.8 {ReadPPMFileHeader procedure} {
  116.     catch {image delete p1}
  117.     put test.ppm "P6nxy5 4n255n012345678901234567890123456789012345678901234567890123456789"
  118.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  119. } {1 {couldn't recognize data in image file "test.ppm"}}
  120. test imgPPM-3.9 {ReadPPMFileHeader procedure} {
  121.     catch {image delete p1}
  122.     put test.ppm "P6n5n255n!012345678901234567890123456789012345678901234567890123456789"
  123.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  124. } {1 {couldn't recognize data in image file "test.ppm"}}
  125. test imgPPM-3.10 {ReadPPMFileHeader procedure} {
  126.     catch {image delete p1}
  127.     put test.ppm "P6n5 4nzz255n012345678901234567890123456789012345678901234567890123456789"
  128.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  129. } {1 {couldn't recognize data in image file "test.ppm"}}
  130. test imgPPM-3.11 {ReadPPMFileHeader procedure, empty file} {
  131.     catch {image delete p1}
  132.     put test.ppm "     "
  133.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  134. } {1 {couldn't recognize data in image file "test.ppm"}}
  135. test imgPPM-3.12 {ReadPPMFileHeader procedure, file ends too soon} {
  136.     catch {image delete p1}
  137.     put test.ppm "P6n566"
  138.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  139. } {1 {couldn't recognize data in image file "test.ppm"}}
  140. test imgPPM-3.13 {ReadPPMFileHeader procedure, file ends too soon} {
  141.     catch {image delete p1}
  142.     put test.ppm "P6n566n#asdf"
  143.     list [catch {image create photo p1 -file test.ppm} msg] $msg
  144. } {1 {couldn't recognize data in image file "test.ppm"}}
  145. test imgPPM-4.1 {StringReadPPM procedure, data too short [Bug 1822391]} 
  146.     -setup {
  147. image create photo I -width 1103 -height 997
  148.     } 
  149.     -cleanup {
  150. image delete I
  151.     } 
  152.     -body {
  153. I put "P5n1103 997n255n"
  154.     } 
  155.     -returnCodes error 
  156.     -result {truncated PPM data}
  157. removeFile test.ppm
  158. removeFile test2.ppm
  159. eval image delete [image names]
  160. # cleanup
  161. ::tcltest::cleanupTests
  162. return