CmdLineParserTest.st
author HG Automerge
Mon, 26 Dec 2016 10:13:07 +0000
branchjv
changeset 21247 9ee1206fc247
parent 20077 e0e720fce465
child 23107 40173e082cbc
permissions -rw-r--r--
Merge
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19988
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
     1
"
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
     3
	      All Rights Reserved
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
     4
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
     5
 This software is furnished under a license and may be used
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
     6
 only in accordance with the terms of that license and with the
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
     8
 be provided or otherwise made available to, or used by, any
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
     9
 other person.  No title to or ownership of the software is
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    10
 hereby transferred.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    11
"
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    12
"{ Package: 'stx:libbasic' }"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    13
17340
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    14
"{ NameSpace: Smalltalk }"
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    15
13939
eda69dfb6133 Updated from SVN
vrany
parents: 13481
diff changeset
    16
TestCase subclass:#CmdLineParserTest
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    17
	instanceVariableNames:'optionA optionB optionBValue'
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    18
	classVariableNames:''
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    19
	poolDictionaries:''
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    20
	category:'System-Support-Command line'
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    21
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    22
19988
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    23
!CmdLineParserTest class methodsFor:'documentation'!
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    24
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    25
copyright
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    26
"
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    27
 COPYRIGHT (c) 2006 by eXept Software AG
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    28
	      All Rights Reserved
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    29
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    30
 This software is furnished under a license and may be used
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    31
 only in accordance with the terms of that license and with the
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    33
 be provided or otherwise made available to, or used by, any
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    34
 other person.  No title to or ownership of the software is
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    35
 hereby transferred.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    36
"
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    37
! !
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    38
17340
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    39
!CmdLineParserTest class methodsFor:'queries'!
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    40
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    41
coveredClassNames
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    42
    ^ #( 
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    43
        'CmdLineOption' 
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    44
        'CmdLineOptionError'
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    45
        'CmdLineParser'
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    46
    )
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    47
! !
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    48
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    49
!CmdLineParserTest methodsFor:'accessing'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    50
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    51
cmdlineOptionA
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    52
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    53
    ^CmdLineOption new
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    54
        short: $a;
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    55
        long: 'option-a';
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    56
        description: 'option a with no arg';
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    57
        action:[optionA := true]
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    58
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    59
    "Created: / 28-01-2009 / 11:56:28 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    60
    "Modified: / 08-06-2009 / 14:34:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    61
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    62
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    63
cmdlineOptionB
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    64
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    65
    ^CmdLineOption new
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    66
        short: $b;
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    67
        long: 'option-b';
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    68
        description: 'option b with one arg';
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    69
        action:[:value | optionB := true. optionBValue := value]
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    70
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    71
    "Created: / 28-01-2009 / 12:01:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    72
    "Modified: / 08-06-2009 / 14:33:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    73
! !
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    74
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    75
!CmdLineParserTest methodsFor:'initialization'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    76
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    77
setUp
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    78
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    79
    optionA := optionB := false.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    80
    optionBValue := nil
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    81
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    82
    "Created: / 28-01-2009 / 12:01:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    83
! !
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    84
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    85
!CmdLineParserTest methodsFor:'tests'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    86
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    87
test_01
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    88
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    89
    CmdLineParser 
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    90
        parse: #('-a')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    91
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    92
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    93
    self assert: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    94
    self deny: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    95
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    96
    "Created: / 28-01-2009 / 14:19:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    97
    "Modified: / 29-05-2009 / 15:47:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    98
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    99
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   100
test_02
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   101
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   102
    CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   103
        parse: #('--option-a')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   104
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   105
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   106
    self assert: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   107
    self deny: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   108
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   109
    "Created: / 28-01-2009 / 14:19:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   110
    "Modified: / 29-05-2009 / 15:47:30 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   111
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   112
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   113
test_04a
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   114
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   115
    CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   116
        parse: #('--option-b= value')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   117
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   118
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   119
    self deny: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   120
    self assert: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   121
    self assert: optionBValue = ' value'
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   122
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   123
    "Created: / 30-01-2009 / 10:43:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   124
    "Modified: / 29-05-2009 / 15:47:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   125
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   126
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   127
test_04b
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   128
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   129
    self 
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   130
        should:[CmdLineParser  parse: #('--option-b') for: self]
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   131
        raise: CmdLineOptionError
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   132
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   133
    "Created: / 30-01-2009 / 10:43:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   134
    "Modified: / 29-05-2009 / 15:47:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   135
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   136
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   137
test_04c
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   138
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   139
    CmdLineParser parse: #('--option-b=') for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   140
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   141
    self deny: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   142
    self assert: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   143
    self assert: optionBValue = ''
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   144
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   145
    "Created: / 30-01-2009 / 10:44:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   146
    "Modified: / 29-05-2009 / 15:47:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   147
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   148
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   149
test_05
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   150
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   151
    CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   152
        parse: #('-b' 'value')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   153
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   154
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   155
    self deny: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   156
    self assert: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   157
    self assert: optionBValue = 'value'.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   158
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   159
    "Created: / 03-02-2009 / 17:38:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   160
    "Modified: / 29-05-2009 / 15:47:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   161
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   162
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   163
test_06
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   164
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   165
    CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   166
        parse: #('-a' '-b' 'value')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   167
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   168
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   169
    self assert: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   170
    self assert: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   171
    self assert: optionBValue = 'value'.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   172
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   173
    "Created: / 03-02-2009 / 17:39:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   174
    "Modified: / 29-05-2009 / 15:47:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   175
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   176
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   177
test_07
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   178
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   179
    CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   180
        parse: #('-ab' 'value')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   181
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   182
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   183
    self assert: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   184
    self assert: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   185
    self assert: optionBValue = 'value'.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   186
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   187
    "Created: / 03-02-2009 / 17:40:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   188
    "Modified: / 29-05-2009 / 15:48:02 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   189
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   190
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   191
test_08
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   192
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   193
    | rest |
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   194
    rest := CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   195
                parse: #('-a' '/tmp/abc.txt')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   196
                for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   197
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   198
    self assert: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   199
    self assert: optionB not.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   200
    self assert: rest asArray = #('/tmp/abc.txt')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   201
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   202
    "Created: / 08-06-2009 / 14:51:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   203
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   204
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   205
test_09
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   206
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   207
    | rest |
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   208
    rest := CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   209
                parse: #('/tmp/abc.txt')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   210
                for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   211
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   212
    self assert: optionA not.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   213
    self assert: optionB not.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   214
    self assert: rest asArray = #('/tmp/abc.txt')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   215
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   216
    "Created: / 08-06-2009 / 14:52:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
19988
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   217
!
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   218
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   219
test_10
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   220
    | option |
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   221
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   222
    option := CmdLineOption new spec:$a.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   223
    self assert: option short == $a.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   224
    self assert: option long isNil.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   225
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   226
    option := CmdLineOption new spec:'-a'.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   227
    self assert: option short == $a.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   228
    self assert: option long isNil.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   229
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   230
    option := CmdLineOption new spec:'add'.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   231
    self assert: option short isNil.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   232
    self assert: option long = 'add'.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   233
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   234
    option := CmdLineOption new spec:'--add'.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   235
    self assert: option short isNil.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   236
    self assert: option long = 'add'.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   237
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   238
    option := CmdLineOption new spec:#('-a' '--add').
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   239
    self assert: option short == $a.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   240
    self assert: option long = 'add'.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   241
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   242
    "Created: / 14-06-2016 / 06:58:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
20076
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   243
!
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   244
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   245
test_11
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   246
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   247
    | rest |
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   248
    rest := CmdLineParser new
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   249
                ignoreUnknownOptions: true;
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   250
                parse: #('--ignored-option' '/tmp/abc.txt')
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   251
                for: self.
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   252
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   253
    self assert: optionA not.
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   254
    self assert: optionB not.
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   255
    self assert: rest asArray = #('--ignored-option' '/tmp/abc.txt')
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   256
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   257
    "Created: / 29-06-2016 / 00:15:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
20077
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   258
!
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   259
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   260
test_12a
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   261
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   262
    | parser longOptionValue |
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   263
    parser := CmdLineParser new
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   264
                on: #('-l' '--long-option=VALUE') do:[:value | longOptionValue := value ];
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   265
                yourself.
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   266
    
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   267
    parser parse:#('-l' 'v1').
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   268
    self assert: longOptionValue = 'v1'.
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   269
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   270
    parser parse:#('--long-option=v2').
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   271
    self assert: longOptionValue = 'v2'.
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   272
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   273
    "Created: / 29-06-2016 / 17:07:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   274
!
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   275
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   276
test_12b
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   277
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   278
    | parser longOptionValue |
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   279
    parser := CmdLineParser new
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   280
                on: #('-l' '--long-option VALUE') do:[:value | longOptionValue := value ];
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   281
                yourself.
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   282
    
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   283
    parser parse:#('-l' 'v1').
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   284
    self assert: longOptionValue = 'v1'.
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   285
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   286
    parser parse:#('--long-option' 'v2').
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   287
    self assert: longOptionValue = 'v2'.
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   288
e0e720fce465 CmdLineParser refactored to allow both `--long-option=value` and `--long-option value` forms
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20076
diff changeset
   289
    "Created: / 29-06-2016 / 18:43:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   290
! !
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   291
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   292
!CmdLineParserTest class methodsFor:'documentation'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   293
13939
eda69dfb6133 Updated from SVN
vrany
parents: 13481
diff changeset
   294
version
17340
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
   295
    ^'$Header: /cvs/stx/stx/libbasic/CmdLineParserTest.st,v 1.4 2015-01-29 19:22:05 cg Exp $'
20076
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   296
!
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   297
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   298
version_HG
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   299
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   300
    ^ '$Changeset: <not expanded> $'
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   301
! !
17340
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
   302