1##############################################################################
2#   Modules Revision 3.0
3#   Providing a flexible user environment
4#
5#   File:		modules.00-init/%M%
6#   Revision:		%I%
7#   First Edition:	95/12/06
8#   Last Mod.:		%U%, %G%
9#
10#   Authors:		Jens Hamisch, Jens.Hamisch@Strawberry.COM
11#
12#   Description:	Testuite testsequence
13#   Command:
14#   Sub-Command:
15#
16#   Comment:	%C{
17#			Check all valid command line switches in long
18#			and short presentation.
19#		}C%
20#
21##############################################################################
22
23#
24# The following answers are to be expected in this testcase ...
25#
26
27set ign_prefix "$warn_msgs: Unsupported option"
28set bad_prefix "$error_msgs: Invalid option"
29set bad_longarg "$bad_prefix '--foobar'"
30set bad_shortarg "$bad_prefix '-z'"
31set pos_ans	"Modules Release(.*)Usage: module(.*)Loading \/(.*)Switches:(.*)"
32set pos_display_ans "$modlin\n$modpathre/loc_fq/1.0:\n\n$modlin"
33
34#
35# The tests
36#
37
38if { $verbose > 0 } {
39    send_user "\tChecking command line arguments ...\n"
40}
41
42# no error when help asked
43testouterr_cmd_re "sh" "--help" "" "$pos_ans"
44testouterr_cmd_re "sh" "-h" "" "$pos_ans"
45# no command means help
46testouterr_cmd_re "sh" "" "OK" "$pos_ans"
47
48# invalid option leads to error code
49testouterr_cmd "ALL" "--foobar display loc_fq/2.0" "ERR" "$bad_longarg\n$err_typehelp"
50testouterr_cmd "ALL" "-z display loc_fq/2.0" "ERR" "$bad_shortarg\n$err_typehelp"
51
52
53# ignore C-version specific command-line switches, no error returned
54testouterr_cmd_re "sh" "--terse display loc_fq/1.0" "OK" "$pos_display_ans"
55testouterr_cmd_re "sh" "--long display loc_fq/1.0" "OK" "$pos_display_ans"
56testouterr_cmd_re "sh" "--silent --terse display loc_fq/1.0" "OK" "$pos_display_ans"
57testouterr_cmd_re "sh" "--verbose display loc_fq/1.0" "OK" "$pos_display_ans"
58testouterr_cmd_re "sh" "--userlvl=expert display loc_fq/1.0" "OK" "$ign_prefix '--userlvl=expert'\n$pos_display_ans"
59testouterr_cmd_re "sh" "--icase display loc_fq/1.0" "OK" $pos_display_ans
60
61# different behavior than C-version: Tcl-version ignores long and short
62# form of C-version specific switches but no other intermediates forms
63testouterr_cmd "sh" "--for display loc_fq/1.0" "ERR" "$bad_prefix '--for'\n$err_typehelp"
64testouterr_cmd "sh" "--ter display loc_fq/1.0" "ERR" "$bad_prefix '--ter'\n$err_typehelp"
65testouterr_cmd "sh" "--lon display loc_fq/1.0" "ERR" "$bad_prefix '--lon'\n$err_typehelp"
66testouterr_cmd "sh" "--sil display loc_fq/1.0" "ERR" "$bad_prefix '--sil'\n$err_typehelp"
67testouterr_cmd "sh" "--verb display loc_fq/1.0" "ERR" "$bad_prefix '--verb'\n$err_typehelp"
68testouterr_cmd "sh" "--use=expert display loc_fq/1.0" "ERR" "$bad_prefix '--use=expert'\n$err_typehelp"
69testouterr_cmd "sh" "--ica display loc_fq/1.0" "ERR" "$bad_prefix '--ica'\n$err_typehelp"
70
71testouterr_cmd_re "sh" "-t display loc_fq/1.0" "OK" "$pos_display_ans"
72testouterr_cmd_re "sh" "-l display loc_fq/1.0" "OK" "$pos_display_ans"
73testouterr_cmd_re "sh" "-t -s display loc_fq/1.0" "OK" "$pos_display_ans"
74testouterr_cmd_re "sh" "-v display loc_fq/1.0" "OK" "$pos_display_ans"
75testouterr_cmd_re "sh" "-u expert display loc_fq/1.0" "OK" "$ign_prefix '-u'\n$pos_display_ans"
76testouterr_cmd_re "sh" "-i display loc_fq/1.0" "OK" $pos_display_ans
77
78testouterr_cmd "sh" "--use=exp display loc_fq/1.0" "ERR" "$bad_prefix '--use=exp'\n$err_typehelp"
79testouterr_cmd "sh" "--use=novice display loc_fq/1.0" "ERR" "$bad_prefix '--use=novice'\n$err_typehelp"
80testouterr_cmd "sh" "--use=nov display loc_fq/1.0" "ERR" "$bad_prefix '--use=nov'\n$err_typehelp"
81testouterr_cmd "sh" "--use=advanced display loc_fq/1.0" "ERR" "$bad_prefix '--use=advanced'\n$err_typehelp"
82testouterr_cmd "sh" "--use=adv display loc_fq/1.0" "ERR" "$bad_prefix '--use=adv'\n$err_typehelp"
83testouterr_cmd "sh" "--u novice display loc_fq/1.0" "ERR" "$bad_prefix '--u'\n$err_typehelp"
84testouterr_cmd "sh" "--u advanced display loc_fq/1.0" "ERR" "$bad_prefix '--u'\n$err_typehelp"
85
86# different behavior than C-version: Tcl-version ignores C-version specific
87# switches so no error is raised when a bad value is passed to these switches
88testouterr_cmd_re "sh" "--userlvl=foobar display loc_fq/1.0" "OK" "$ign_prefix '--userlvl=foobar'\n$pos_display_ans"
89
90
91#
92#  Clean up variables used in this test case
93#
94
95unset ign_prefix
96unset bad_prefix
97unset bad_longarg
98unset bad_shortarg
99unset pos_ans
100unset pos_display_ans
101