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

通讯编程

开发平台:

Visual C++

  1. # This file contains tests for the ::package::* commands.
  2. # Note that the tests are limited to Tcl scripts only, there are no shared
  3. # libraries against which to test.
  4. #
  5. # Sourcing this file into Tcl runs the tests and generates output for
  6. # errors.  No output means no errors were found.
  7. #
  8. # Copyright (c) 1998-1999 by Scriptics Corporation.
  9. # All rights reserved.
  10. #
  11. # RCS: @(#) $Id: package.test,v 1.3 2000/04/10 17:19:02 ericm Exp $
  12. if {[lsearch [namespace children] ::tcltest] == -1} {
  13.     package require tcltest
  14.     namespace import -force ::tcltest::*
  15. }
  16. test package-1.1 {pkg::create gives error on insufficient args} {
  17.     catch {::pkg::create}
  18. } 1
  19. test package-1.2 {pkg::create gives error on bad args} {
  20.     catch {::pkg::create -foo bar -bar baz -baz boo}
  21. } 1
  22. test package-1.3 {pkg::create gives error on no value given} {
  23.     catch {::pkg::create -name foo -version 1.0 -source test.tcl -load}
  24. } 1
  25. test package-1.4 {pkg::create gives error on no name given} {
  26.     catch {::pkg::create -version 1.0 -source test.tcl -load foo.so}
  27. } 1
  28. test package-1.5 {pkg::create gives error on no version given} {
  29.     catch {::pkg::create -name foo -source test.tcl -load foo.so}
  30. } 1
  31. test package-1.6 {pkg::create gives error on no source or load options} {
  32.     catch {::pkg::create -name foo -version 1.0 -version 2.0}
  33. } 1
  34. test package-1.7 {pkg::create gives correct output for 1 direct source} {
  35.     ::pkg::create -name foo -version 1.0 -source test.tcl
  36. } {package ifneeded foo 1.0 [list source [file join $dir test.tcl]]}
  37. test package-1.8 {pkg::create gives correct output for 2 direct sources} {
  38.     ::pkg::create -name foo -version 1.0 -source test.tcl -source test2.tcl
  39. } {package ifneeded foo 1.0 [list source [file join $dir test.tcl]]n[list source [file join $dir test2.tcl]]}
  40. test package-1.9 {pkg::create gives correct output for 1 direct load} {
  41.     ::pkg::create -name foo -version 1.0 -load test.so
  42. } {package ifneeded foo 1.0 [list load [file join $dir test.so]]}
  43. test package-1.10 {pkg::create gives correct output for 2 direct loads} {
  44.     ::pkg::create -name foo -version 1.0 -load test.so -load test2.so
  45. } {package ifneeded foo 1.0 [list load [file join $dir test.so]]n[list load [file join $dir test2.so]]}
  46. test package-1.11 {pkg::create gives correct output for 1 lazy source} {
  47.     ::pkg::create -name foo -version 1.0 -source {test.tcl {foo bar}}
  48. } {package ifneeded foo 1.0 [list tclPkgSetup $dir foo 1.0 {{test.tcl source {foo bar}}}]}
  49. test package-1.12 {pkg::create gives correct output for 2 lazy sources} {
  50.     ::pkg::create -name foo -version 1.0 -source {test.tcl {foo bar}} 
  51.     -source {test2.tcl {baz boo}}
  52. } {package ifneeded foo 1.0 [list tclPkgSetup $dir foo 1.0 {{test.tcl source {foo bar}} {test2.tcl source {baz boo}}}]}
  53. test package-1.13 {pkg::create gives correct output for 1 lazy load} {
  54.     ::pkg::create -name foo -version 1.0 -load {test.so {foo bar}}
  55. } {package ifneeded foo 1.0 [list tclPkgSetup $dir foo 1.0 {{test.so load {foo bar}}}]}
  56. test package-1.14 {pkg::create gives correct output for 2 lazy loads} {
  57.     ::pkg::create -name foo -version 1.0 -load {test.so {foo bar}} 
  58.     -load {test2.so {baz boo}}
  59. } {package ifneeded foo 1.0 [list tclPkgSetup $dir foo 1.0 {{test.so load {foo bar}} {test2.so load {baz boo}}}]}
  60. test package-1.15 {pkg::create gives correct output for 1 each, direct} {
  61.     ::pkg::create -name foo -version 1.0 -source test.tcl -load test2.so
  62. } {package ifneeded foo 1.0 [list load [file join $dir test2.so]]n[list source [file join $dir test.tcl]]}
  63. test package-1.16 {pkg::create gives correct output for 1 direct, 1 lazy} {
  64.     ::pkg::create -name foo -version 1.0 -source test.tcl 
  65.     -source {test2.tcl {foo bar}}
  66. } {package ifneeded foo 1.0 [list source [file join $dir test.tcl]]n[list tclPkgSetup $dir foo 1.0 {{test2.tcl source {foo bar}}}]}
  67. ::tcltest::cleanupTests
  68. return