########################################################################## # TEPAM - Tcl's Enhanced Procedure and Argument Manager ########################################################################## # # proc_call_arg_unn.test: # This file is part of the enhanced procedure and argument manager's regression # test. It validates the usage of the different combinations of named and # unnamed arguments using the non-default argument organization (unnamed # arguments first, named at the end). # # Copyright (C) 2009, 2010 Andreas Drollinger # # RCS: @(#) $Id: proc_call_arg_unn.test,v 1.1 2010/02/11 21:50:55 droll Exp $ ########################################################################## # See the file "license.terms" for information on usage and redistribution # of this file, and for a DISCLAIMER OF ALL WARRANTIES. ########################################################################## source [file join \ [file dirname [file dirname [file join [pwd] [info script]]]] \ devtools testutilities.tcl] testsNeedTcl 8.3 testsNeedTcltest 1.0 catch {namespace delete ::tepam} testing { useLocal tepam.tcl tepam } set tepam::named_arguments_first 0 # Tests is an extension of the test command. It adds the option -variations that allows \ # specifying a list values. For each of these values the test command is executed, replacing all '%1' # of the original test command string by the altered value. proc tests {name description args} { set VariationList(0) {""}; # Default variation list 0, in case no variations are required for {set NbrVariationLists 0} {1} {incr NbrVariationLists} { set VariationListPos [lsearch -exact $args -variations] if {$VariationListPos<0} break set VariationList($NbrVariationLists) [lindex $args [expr $VariationListPos+1]] set args [lreplace $args $VariationListPos [expr $VariationListPos+1]] } for {set TestNbr 0} {$TestNbr<[llength $VariationList(0)]} {incr TestNbr} { set TestExec "test \"$name\.$TestNbr\" \"$description.$TestNbr\"" foreach Arg $args { set NewArg $Arg for {set vl 0} {$vl<$NbrVariationLists} {incr vl} { regsub -all "%[expr $vl+1]" $NewArg [lindex $VariationList($vl) $TestNbr] NewArg } append TestExec " \{$NewArg\}" } uplevel 1 $TestExec } } ######## Argument combinations ######## # Unnamed arguments first: No arguments: tepam::procedure Procedure_Arg_0a {-args {}} {return ""} tepam::procedure Procedure_Arg_0b {} {return ""} foreach c {a b} { tests tepam-proccall.unn.noarg.$c.0 "Procedure calls, UNN, no arguments defined, $c, 0" \ -body "Procedure_Arg_0$c" \ -result "" -output "" tests tepam-proccall.unn.noarg.$c.1 "Procedure calls, UNN, no arguments defined, $c, 1" \ -variations { Parameter2 {""} ?} \ -body "Procedure_Arg_0$c %1" \ -returnCodes error -result "*Too many arguments:*" -output "" -match glob tests tepam-proccall.unn.noarg.$c.2 "Procedure calls, UNN, no arguments defined, $c, 2" \ -variations { -Parameter2} \ -body "Procedure_Arg_0$c -- %1" \ -returnCodes error -result "*Too many arguments:*" -output "" -match glob tests tepam-proccall.unn.noarg.$c.3 "Procedure calls, UNN, no arguments defined, $c, 3" \ -variations { -Parameter2} \ -body "Procedure_Arg_0$c %1" \ -returnCodes error -result "*Too many arguments:*" -output "" -match glob } # Unnamed argument (1) without default value: tepam::procedure Procedure_Arg_1 { -args { {Arg1} } } { return "Arg1:$Arg1" } tests tepam-proccall.unn.1un.0 "Procedure calls, UNN, one argument without default value, 0" \ -body "Procedure_Arg_1" \ -returnCodes error -result "*Required argument is missing: Arg1*" -output "" -match glob tests tepam-proccall.unn.1un.1 "Procedure calls, UNN, one argument without default value, 1" \ -body "Procedure_Arg_1 --" \ -result "Arg1:--" -output "" tests tepam-proccall.unn.1un.2 "Procedure calls, UNN, one argument without default value, 2" \ -variations {abc 123 {} {asd asdf {xx 123 34}} } \ -body "Procedure_Arg_1 \"%1\"" \ -result "Arg1:%1" -output "" tests tepam-proccall.unn.1un.3 "Procedure calls, UNN, one argument without default value, 3" \ -variations {abc 123 "" "{asd asdf {xx 123 34}}"} \ -body "Procedure_Arg_1 -- \"%1\"" \ -returnCodes error -result "*: Too many arguments:*" -output "" -match glob tests tepam-proccall.unn.1un.4 "Procedure calls, UNN, one argument without default value, 4" \ -variations { abc 123 "" "{asd asdf {xx 123 34}}"} \ -body "Procedure_Arg_1 -Arg1 \"%1\"" \ -returnCodes error -result "*: Too many arguments:*" -output "" -match glob tests tepam-proccall.unn.1un.5 "Procedure calls, UNN, one argument without default value, 5" \ -variations { abc 123 "" "{asd asdf {xx 123 34}}"} \ -body "Procedure_Arg_1 -Arg1 \"%1\" --" \ -returnCodes error -result "*: Too many arguments:*" -output "" -match glob tests tepam-proccall.unn.1un.6 "Procedure calls, UNN, one argument without default value, 6" \ -variations { Parameter2 "" ?} \ -body "Procedure_Arg_1 Parameter1 \"%1\"" \ -returnCodes error -result "*: Too many arguments:*" -output "" -match glob tests tepam-proccall.unn.1un.7 "Procedure calls, UNN, one argument without default value, 7" \ -variations { -Parameter2} \ -body "Procedure_Arg_1 Parameter1 \"%1\"" \ -returnCodes error -result "*: Too many arguments:*" -output "" -match glob tests tepam-proccall.unn.1un.8 "Procedure calls, UNN, one argument without default value, 8" \ -variations { -Parameter2} \ -body "Procedure_Arg_1 -- Parameter1 \"%1\"" \ -returnCodes error -result "*: Too many arguments:*" -output "" -match glob # Unnamed arguments (2) without default value: tepam::procedure Procedure_Arg_2b { -args { {Arg1} {Arg2} } } { return "Arg1:$Arg1, Arg2:$Arg2" } tests tepam-proccall.unn.2un.0 "Procedure calls, UNN, two argument without default value, 0" \ -body "Procedure_Arg_2b" \ -returnCodes error -result "*: Required argument is missing: Arg1" -output "" -match glob tests tepam-proccall.unn.2un.1 "Procedure calls, UNN, two argument without default value, 0" \ -body "Procedure_Arg_2b --" \ -returnCodes error -result "*: Required argument is missing: Arg2" -output "" -match glob tests tepam-proccall.unn.2un.2 "Procedure calls, UNN, two argument without default value, 0" \ -variations { abc 123 "" "{asd asdf {xx 123 34}}"} \ -body "Procedure_Arg_2b \"%1\"" \ -returnCodes error -result "*: Required argument is missing: Arg2" -output "" -match glob tests tepam-proccall.unn.2un.3 "Procedure calls, UNN, two argument without default value, 0" \ -variations {a "" {}} \ -variations {b "" 123} \ -body "Procedure_Arg_2b \"%1\" \"%2\"" \ -result "Arg1:%1, Arg2:%2" -output "" # Unnamed arguments partitially with default value: tepam::procedure Procedure_Arg_2 { -args { {Arg1} {Arg2 -default 2} } } { return "Arg1:$Arg1, Arg2:$Arg2" } tests tepam-proccall.unn.1dun1un.0 "Procedure calls, UNN, two argument, one with default value, 0" \ -body "Procedure_Arg_2" \ -returnCodes error -result "*: Required argument is missing: Arg1*" -output "" -match glob tests tepam-proccall.unn.1dun1un.1 "Procedure calls, UNN, two argument, one with default value, 0" \ -variations {abc 123 "" {asd asdf {xx 123 34}}} \ -body "Procedure_Arg_2 \"%1\"" \ -result "Arg1:%1, Arg2:2" -output "" tests tepam-proccall.unn.1dun1un.2 "Procedure calls, UNN, two argument, one with default value, 0" \ -variations { Parameter2 -Parameter2 "" ?} \ -body "Procedure_Arg_2 Parameter1 \"%1\"" \ -result "Arg1:Parameter1, Arg2:%1" -output "" tests tepam-proccall.unn.1dun1un.3 "Procedure calls, UNN, two argument, one with default value, 0" \ -variations { Parameter2 "" ?} \ -body "Procedure_Arg_2 Parameter1 Parameter2 \"%1\"" \ -returnCodes error -result "*: Too many arguments:*" -output "" -match glob tests tepam-proccall.unn.1dun1un.4 "Procedure calls, UNN, two argument, one with default value, 0" \ -variations { -Parameter2} \ -body "Procedure_Arg_2 Parameter1 Parameter2 \"%1\"" \ -returnCodes error -result "*: Too many arguments:*" -output "" -match glob # Unnamed arguments with default value: tepam::procedure Procedure_Arg_2a { -args { {Arg1 -default 1} {Arg2 -default 2} } } { return "Arg1:$Arg1, Arg2:$Arg2" } tests tepam-proccall.unn.2dun.0 "Procedure calls, UNN, two argument with default values, 0" \ -body "Procedure_Arg_2a" \ -result "Arg1:1, Arg2:2" -output "" tests tepam-proccall.unn.2dun.1 "Procedure calls, UNN, two argument with default values, 0" \ -variations { abc 123 "" "{asd asdf {xx 123 34}}"} \ -body "Procedure_Arg_2a \"%1\"" \ -result "Arg1:%1, Arg2:2" -output "" tests tepam-proccall.unn.2dun.2 "Procedure calls, UNN, two argument with default values, 0" \ -variations { Parameter2 -Parameter2 "" ?} \ -body "Procedure_Arg_2a Parameter1 \"%1\"" \ -result "Arg1:Parameter1, Arg2:%1" -output "" tests tepam-proccall.unn.2dun.3 "Procedure calls, UNN, two argument with default values, 0" \ -variations { Parameter2 "" ?} \ -body "Procedure_Arg_2a Parameter1 Parameter2 \"%1\"" \ -returnCodes error -result "*: Too many arguments:*" -output "" -match glob tests tepam-proccall.unn.2dun.4 "Procedure calls, UNN, two argument with default values, 0" \ -variations { -Parameter2} \ -body "Procedure_Arg_2a Parameter1 Parameter2 \"%1\"" \ -returnCodes error -result "*: Too many arguments:*" -output "" -match glob # One named and one unnamed argument, without default values (1) tepam::procedure Procedure_Arg_2d { -args { {-Arg1} {Arg2} } } { return "Arg1:$Arg1, Arg2:$Arg2" } tests tepam-proccall.unn.1un1n.0 "Procedure calls, UNN, one unnamed and one named argument, 0" \ -body "Procedure_Arg_2d" \ -returnCodes error -result "*Required argument is missing: Arg1*" -output "" -match glob tests tepam-proccall.unn.1un1n.1 "Procedure calls, UNN, one unnamed and one named argument, 1" \ -variations { abc 123 "" "{asd asdf {xx 123 34}}"} \ -body "Procedure_Arg_2d \"%1\"" \ -returnCodes error -result "*Required argument is missing: Arg1*" -output "" -match glob tests tepam-proccall.unn.1un1n.2 "Procedure calls, UNN, one unnamed and one named argument, 2" \ -variations {a "" {}} \ -variations {b "" 123} \ -body "Procedure_Arg_2d \"%1\" \"%2\"" \ -returnCodes error -result "*is not an option*" -output "" -match glob tests tepam-proccall.unn.1un1n.3 "Procedure calls, UNN, one unnamed and one named argument, 3" \ -variations {a "" {}} \ -variations {b "" 123} \ -body "Procedure_Arg_2d \"%2\" -Arg1 \"%1\"" \ -result "Arg1:%1, Arg2:%2" -output "" tests tepam-proccall.unn.1un1n.4 "Procedure calls, UNN, one unnamed and one named argument, 4" \ -variations {a "" {}} \ -variations {b "" 123} \ -body "Procedure_Arg_2d -Arg1 \"%1\" -Arg2 \"%2\"" \ -returnCodes error -result "*is not an option*" -output "" -match glob tests tepam-proccall.unn.1un1n.5 "Procedure calls, UNN, one unnamed and one named argument, 5" \ -variations {a "" {}} \ -variations {b "" 123} \ -body "Procedure_Arg_2d -Arg2 \"%2\" -Arg1 \"%1\"" \ -returnCodes error -result "*is not an option*" -output "" -match glob # One named and one unnamed argument, without default values (2) tepam::procedure Procedure_Arg_2e { -args { {Arg2} {-Arg1} } } { return "Arg1:$Arg1, Arg2:$Arg2" } tests tepam-proccall.unn.1un1n.6 "Procedure calls, UNN, one unnamed and one named argument, 6" \ -body "Procedure_Arg_2d" \ -returnCodes error -result "*: Required argument is missing: Arg1" -output "" -match glob tests tepam-proccall.unn.1un1n.7 "Procedure calls, UNN, one unnamed and one named argument, 7" \ -variations { abc 123 "" "{asd asdf {xx 123 34}}"} \ -body "Procedure_Arg_2d \"%1\"" \ -returnCodes error -result "*Required argument is missing: Arg1*" -output "" -match glob tests tepam-proccall.unn.1un1n.8 "Procedure calls, UNN, one unnamed and one named argument, 8" \ -variations {a "" {}} \ -variations {b "" 123} \ -body "Procedure_Arg_2d \"%1\" \"%2\"" \ -returnCodes error -result "*is not an option*" -output "" -match glob tests tepam-proccall.unn.1un1n.9 "Procedure calls, UNN, one unnamed and one named argument, 9" \ -variations {a "" {}} \ -variations {b "" 123} \ -body "Procedure_Arg_2d \"%2\" -Arg1 \"%1\"" \ -result "Arg1:%1, Arg2:%2" -output "" tests tepam-proccall.unn.1un1n.10 "Procedure calls, UNN, one unnamed and one named argument, 10" \ -variations {a "" {}} \ -variations {b "" 123} \ -body "Procedure_Arg_2d -Arg1 \"%1\" -Arg2 \"%2\"" \ -returnCodes error -result "*is not an option*" -output "" -match glob tests tepam-proccall.unn.1un1n.11 "Procedure calls, UNN, one unnamed and one named argument, 11" \ -variations {a "" {}} \ -variations {b "" 123} \ -body "Procedure_Arg_2d -Arg2 \"%2\" -Arg1 \"%1\"" \ -returnCodes error -result "*is not an option*" -output "" -match glob # Two named arguments, without default values tepam::procedure Procedure_Arg_2c { -args { {-Arg1} {-Arg2} } } { return "Arg1:$Arg1, Arg2:$Arg2" } tests tepam-proccall.unn.2n.0 "Procedure calls, UNN, two named argument, 0" \ -body "Procedure_Arg_2c" \ -returnCodes error -result "*Required argument is missing: Arg1*" -output "" -match glob tests tepam-proccall.unn.2n.1 "Procedure calls, UNN, two named argument, 1" \ -variations { abc 123 "" "{asd asdf {xx 123 34}}"} \ -body "Procedure_Arg_2c -Arg1 \"%1\"" \ -returnCodes error -result "*Required argument is missing: Arg2*" -output "" -match glob tests tepam-proccall.unn.2n.2 "Procedure calls, UNN, two named argument, 2" \ -variations {a "" {}} \ -variations {b "" 123} \ -body "Procedure_Arg_2c -Arg1 \"%1\" -Arg2 \"%2\"" \ -result "Arg1:%1, Arg2:%2" -output "" tests tepam-proccall.unn.2n.3 "Procedure calls, UNN, two named argument, 3" \ -variations {a "" {}} \ -variations {b "" 123} \ -body "Procedure_Arg_2c -Arg2 \"%2\" -Arg1 \"%1\"" \ -result "Arg1:%1, Arg2:%2" -output "" tests tepam-proccall.unn.2n.4 "Procedure calls, UNN, two named argument, 4" \ -variations {a "" {}} \ -variations {b "" 123} \ -variations {c "" {}} \ -body "Procedure_Arg_2c \"%3\" -Arg1 \"%1\" -Arg2 \"%2\"" \ -returnCodes error -result "*is not an option*" -output "" -match glob # Multiple arguments - One unnamed argument tepam::procedure Procedure_Multiple_Arg1 { -args { {Arg -multiple} } } { return $Arg } tests tepam-proccall.unn.1mu.0 "Procedure calls, UNN, one unnamed multiple argument, 0" \ -body "Procedure_Multiple_Arg1" \ -returnCodes error -result "*Required argument is missing: Arg*" -output "" -match glob tests tepam-proccall.unn.1mu.1 "Procedure calls, UNN, one unnamed multiple argument, 1" \ -body "Procedure_Multiple_Arg1 Hello" \ -result "Hello" -output "" tests tepam-proccall.unn.1mu.2 "Procedure calls, UNN, one unnamed multiple argument, 2" \ -body "Procedure_Multiple_Arg1 {Hello world}" \ -result "{Hello world}" -output "" tests tepam-proccall.unn.1mu.3 "Procedure calls, UNN, one unnamed multiple argument, 3" \ -body "Procedure_Multiple_Arg1 {Hello my} world" \ -result "{Hello my} world" -output "" tests tepam-proccall.unn.1mu.4 "Procedure calls, UNN, one unnamed multiple argument, 4" \ -body "Procedure_Multiple_Arg1 Hello {my world}" \ -result "Hello {my world}" -output "" tests tepam-proccall.unn.1mu.5 "Procedure calls, UNN, one unnamed multiple argument, 5" \ -body "Procedure_Multiple_Arg1 {Hello my} {nice world}" \ -result "{Hello my} {nice world}" -output "" tests tepam-proccall.unn.1mu.6 "Procedure calls, UNN, one unnamed multiple argument, 6" \ -body "Procedure_Multiple_Arg1 {Hello my} {nice world,} {how are} you" \ -result "{Hello my} {nice world,} {how are} you" -output "" # Multiple arguments - Two unnamed argument, both not optional tepam::procedure Procedure_Multiple_Arg2a { -args { {Arg1} {Arg2 -multiple} } } { return $Arg1:$Arg2 } tests tepam-proccall.unn.1mu1u.0 "Procedure calls, UNN, two unnamed argument, one is multiple, 0" \ -body "Procedure_Multiple_Arg2a" \ -returnCodes error -result "*Required argument is missing: Arg*" -output "" -match glob tests tepam-proccall.unn.1mu1u.1 "Procedure calls, UNN, two unnamed argument, one is multiple, 1" \ -body "Procedure_Multiple_Arg2a Message" \ -returnCodes error -result "*Required argument is missing: Arg*" -output "" -match glob tests tepam-proccall.unn.1mu1u.2 "Procedure calls, UNN, two unnamed argument, one is multiple, 2" \ -body "Procedure_Multiple_Arg2a Message Hello" \ -result "Message:Hello" -output "" tests tepam-proccall.unn.1mu1u.3 "Procedure calls, UNN, two unnamed argument, one is multiple, 3" \ -body "Procedure_Multiple_Arg2a Message {Hello world}" \ -result "Message:{Hello world}" -output "" tests tepam-proccall.unn.1mu1u.4 "Procedure calls, UNN, two unnamed argument, one is multiple, 4" \ -body "Procedure_Multiple_Arg2a Message Hello world" \ -result "Message:Hello world" -output "" tests tepam-proccall.unn.1mu1u.5 "Procedure calls, UNN, two unnamed argument, one is multiple, 5" \ -body "Procedure_Multiple_Arg2a Message Hello all world" \ -result "Message:Hello all world" -output "" tests tepam-proccall.unn.1mu1u.6 "Procedure calls, UNN, two unnamed argument, one is multiple, 6" \ -body "Procedure_Multiple_Arg2a Message {Hello my} world" \ -result "Message:{Hello my} world" -output "" tests tepam-proccall.unn.1mu1u.7 "Procedure calls, UNN, two unnamed argument, one is multiple, 7" \ -body "Procedure_Multiple_Arg2a Message Hello {my world}" \ -result "Message:Hello {my world}" -output "" tests tepam-proccall.unn.1mu1u.8 "Procedure calls, UNN, two unnamed argument, one is multiple, 8" \ -body "Procedure_Multiple_Arg2a Message {Hello my} {nice world}" \ -result "Message:{Hello my} {nice world}" -output "" tests tepam-proccall.unn.1mu1u.9 "Procedure calls, UNN, two unnamed argument, one is multiple, 9" \ -body "Procedure_Multiple_Arg2a Message {Hello my} {nice world,} {how are} you" \ -result "Message:{Hello my} {nice world,} {how are} you" -output "" # Multiple arguments - Two unnamed argument, the second is optinoal tepam::procedure Procedure_Multiple_Arg2b { -args { {Arg1} {Arg2 -default "" -multiple} } } { return $Arg1:$Arg2 } tests tepam-proccall.unn.1dmu1u.0 "Procedure calls, UNN, two unnamed argument, one has default and is multiple, 0" \ -body "Procedure_Multiple_Arg2b" \ -returnCodes error -result "*Required argument is missing: Arg*" -output "" -match glob tests tepam-proccall.unn.1dmu1u.1 "Procedure calls, UNN, two unnamed argument, one has default and is multiple, 1" \ -body "Procedure_Multiple_Arg2b Message" \ -result "Message:" -output "" tests tepam-proccall.unn.1dmu1u.2 "Procedure calls, UNN, two unnamed argument, one has default and is multiple, 2" \ -body "Procedure_Multiple_Arg2b Message Hello" \ -result "Message:Hello" -output "" tests tepam-proccall.unn.1dmu1u.3 "Procedure calls, UNN, two unnamed argument, one has default and is multiple, 3" \ -body "Procedure_Multiple_Arg2b Message {Hello world}" \ -result "Message:{Hello world}" -output "" tests tepam-proccall.unn.1dmu1u.4 "Procedure calls, UNN, two unnamed argument, one has default and is multiple, 4" \ -body "Procedure_Multiple_Arg2b Message Hello world" \ -result "Message:Hello world" -output "" tests tepam-proccall.unn.1dmu1u.5 "Procedure calls, UNN, two unnamed argument, one has default and is multiple, 5" \ -body "Procedure_Multiple_Arg2b Message Hello all world" \ -result "Message:Hello all world" -output "" # Multiple arguments - Two unnamed argument, both are optinoal tepam::procedure Procedure_Multiple_Arg2c { -args { {Arg1 -default ""} {Arg2 -default "" -multiple} } } { return $Arg1:$Arg2 } tests tepam-proccall.unn.1dmu1du.0 "Procedure calls, UNN, two unnamed argument, both have default, one is multiple, 0" \ -body "Procedure_Multiple_Arg2c" \ -result ":" -output "" tests tepam-proccall.unn.1dmu1du.1 "Procedure calls, UNN, two unnamed argument, both have default, one is multiple, 1" \ -body "Procedure_Multiple_Arg2c Message" \ -result "Message:" -output "" tests tepam-proccall.unn.1dmu1du.2 "Procedure calls, UNN, two unnamed argument, both have default, one is multiple, 2" \ -body "Procedure_Multiple_Arg2c Message Hello" \ -result "Message:Hello" -output "" tests tepam-proccall.unn.1dmu1du.3 "Procedure calls, UNN, two unnamed argument, both have default, one is multiple, 3" \ -body "Procedure_Multiple_Arg2c Message {Hello world}" \ -result "Message:{Hello world}" -output "" tests tepam-proccall.unn.1dmu1du.4 "Procedure calls, UNN, two unnamed argument, both have default, one is multiple, 4" \ -body "Procedure_Multiple_Arg2c Message Hello world" \ -result "Message:Hello world" -output "" tests tepam-proccall.unn.1dmu1du.5 "Procedure calls, UNN, two unnamed argument, both have default, one is multiple, 5" \ -body "Procedure_Multiple_Arg2c Message Hello all world" \ -result "Message:Hello all world" -output "" tests tepam-proccall.unn.1dmu1du.6 "Procedure calls, UNN, two unnamed argument, both have default, one is multiple, 6" \ -body "Procedure_Multiple_Arg2c Message \"Hello all\" world" \ -result "Message:{Hello all} world" -output "" tests tepam-proccall.unn.1dmu1du.7 "Procedure calls, UNN, two unnamed argument, both have default, one is multiple, 7" \ -body "Procedure_Multiple_Arg2c Message Hello \"all world\"" \ -result "Message:Hello {all world}" -output "" # Multiple arguments - Two named arguments tepam::procedure Procedure_Multiple_Arg1 { -args { {-Arg1 -multiple} {-Arg2 -multiple} } } { return "$Arg1:$Arg2" } tests tepam-proccall.unn.2mu.0 "Procedure calls, UNN, two unnamed argument that are multiple, 0" \ -body "Procedure_Multiple_Arg1" \ -returnCodes error -result "*Required argument is missing: Arg1*" -output "" -match glob tests tepam-proccall.unn.2mu.1 "Procedure calls, UNN, two unnamed argument that are multiple, 1" \ -body "Procedure_Multiple_Arg1 -Arg1 Hello" \ -returnCodes error -result "*Required argument is missing: Arg2*" -output "" -match glob tests tepam-proccall.unn.2mu.2 "Procedure calls, UNN, two unnamed argument that are multiple, 2" \ -body "Procedure_Multiple_Arg1 -Arg1 Hello -Arg2 world" \ -result "Hello:world" -output "" tests tepam-proccall.unn.2mu.3 "Procedure calls, UNN, two unnamed argument that are multiple, 3" \ -body "Procedure_Multiple_Arg1 -Arg1 \"\" -Arg2 \"Hello world\"" \ -result "{}:{Hello world}" -output "" tests tepam-proccall.unn.2mu.4 "Procedure calls, UNN, two unnamed argument that are multiple, 4" \ -body "Procedure_Multiple_Arg1 -Arg1 \"\" -Arg2 Hello -Arg2 world" \ -result "{}:Hello world" -output "" tests tepam-proccall.unn.2mu.5 "Procedure calls, UNN, two unnamed argument that are multiple, 5" \ -body "Procedure_Multiple_Arg1 -Arg1 \"\" -Arg2 Hello -Arg2 all -Arg2 world" \ -result "{}:Hello all world" -output "" # Multiple arguments - One named argument tepam::procedure Procedure_Multiple_Arg3 { -args { {-Arg -multiple} } } { return $Arg } tests tepam-proccall.unn.1mn.0 "Procedure calls, UNN, one named multiple argument, 0" \ -body "Procedure_Multiple_Arg3" \ -returnCodes error -result "*Required argument is missing: Arg*" -output "" -match glob tests tepam-proccall.unn.1mn.1 "Procedure calls, UNN, one named multiple argument, 1" \ -body "Procedure_Multiple_Arg3 -Arg Hello" \ -result "Hello" -output "" tests tepam-proccall.unn.1mn.2 "Procedure calls, UNN, one named multiple argument, 2" \ -body "Procedure_Multiple_Arg3 -Arg Hello world" \ -returnCodes error -result "*Argument 'world' is not an option*" -output "" -match glob tests tepam-proccall.unn.1mn.3 "Procedure calls, UNN, one named multiple argument, 3" \ -body "Procedure_Multiple_Arg3 -Arg {Hello world}" \ -result "{Hello world}" -output "" tests tepam-proccall.unn.1mn.4 "Procedure calls, UNN, one named multiple argument, 4" \ -body "Procedure_Multiple_Arg3 -Arg Hello -Arg world" \ -result "Hello world" -output "" tests tepam-proccall.unn.1mn.5 "Procedure calls, UNN, one named multiple argument, 5" \ -body "Procedure_Multiple_Arg3 -Arg {Hello my} -Arg world" \ -result "{Hello my} world" -output "" tests tepam-proccall.unn.1mn.6 "Procedure calls, UNN, one named multiple argument, 6" \ -body "Procedure_Multiple_Arg3 -Arg Hello -Arg {my world}" \ -result "Hello {my world}" -output "" tests tepam-proccall.unn.1mn.7 "Procedure calls, UNN, one named multiple argument, 7" \ -body "Procedure_Multiple_Arg3 -Arg {Hello my} -Arg {nice world}" \ -result "{Hello my} {nice world}" -output "" tests tepam-proccall.unn.1mn.8 "Procedure calls, UNN, one named multiple argument, 8" \ -body "Procedure_Multiple_Arg3 -Arg {Hello my} -Arg {nice world,} -Arg {how are} -Arg you" \ -result "{Hello my} {nice world,} {how are} you" -output "" ######## That's all ######## ::tcltest::cleanupTests return ########################################################################## # $RCSfile: proc_call_arg_unn.test,v $ - ($Name: $) # $Id: proc_call_arg_unn.test,v 1.1 2010/02/11 21:50:55 droll Exp $ # Modifications: # $Log: proc_call_arg_unn.test,v $ # Revision 1.1 2010/02/11 21:50:55 droll # TEPAM module checkin # ##########################################################################