CmdLineParserTest.st
author Jan Vrany <jan.vrany@labware.com>
Sat, 29 Oct 2022 01:05:05 +0100
branchjv
changeset 25446 98fb817db6de
parent 23107 40173e082cbc
permissions -rw-r--r--
Add `Character >> isMathLetter` and `#isMathBinaryOperator`
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
23107
40173e082cbc Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20077
diff changeset
     3
 COPYRIGHT (c) 2009 Jan Vrany
40173e082cbc Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20077
diff changeset
     4
 COPYRIGHT (c) 2016 Jan Vrany
19988
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
     5
	      All Rights Reserved
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
     6
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
     7
 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
     8
 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
     9
 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
    10
 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
    11
 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
    12
 hereby transferred.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    13
"
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    14
"{ Package: 'stx:libbasic' }"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    15
17340
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    16
"{ NameSpace: Smalltalk }"
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    17
13939
eda69dfb6133 Updated from SVN
vrany
parents: 13481
diff changeset
    18
TestCase subclass:#CmdLineParserTest
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    19
	instanceVariableNames:'optionA optionB optionBValue'
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    20
	classVariableNames:''
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    21
	poolDictionaries:''
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    22
	category:'System-Support-Command line'
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    23
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    24
19988
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    25
!CmdLineParserTest class methodsFor:'documentation'!
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
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    28
"
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    29
 COPYRIGHT (c) 2006 by eXept Software AG
23107
40173e082cbc Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20077
diff changeset
    30
 COPYRIGHT (c) 2009 Jan Vrany
40173e082cbc Copyright updates
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 20077
diff changeset
    31
 COPYRIGHT (c) 2016 Jan Vrany
19988
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    32
	      All Rights Reserved
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    33
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    34
 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
    35
 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
    36
 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
    37
 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
    38
 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
    39
 hereby transferred.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    40
"
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
    41
! !
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    42
17340
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    43
!CmdLineParserTest class methodsFor:'queries'!
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    44
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    45
coveredClassNames
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
        'CmdLineOption' 
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    48
        'CmdLineOptionError'
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    49
        'CmdLineParser'
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    50
    )
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    51
! !
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
    52
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    53
!CmdLineParserTest methodsFor:'accessing'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    54
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    55
cmdlineOptionA
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    56
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    57
    ^CmdLineOption new
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    58
        short: $a;
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    59
        long: 'option-a';
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    60
        description: 'option a with no arg';
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    61
        action:[optionA := true]
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    62
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    63
    "Created: / 28-01-2009 / 11:56:28 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    64
    "Modified: / 08-06-2009 / 14:34:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    65
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    66
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    67
cmdlineOptionB
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    68
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    69
    ^CmdLineOption new
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    70
        short: $b;
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    71
        long: 'option-b';
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    72
        description: 'option b with one arg';
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    73
        action:[:value | optionB := true. optionBValue := value]
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    74
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    75
    "Created: / 28-01-2009 / 12:01:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    76
    "Modified: / 08-06-2009 / 14:33:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    77
! !
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    78
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    79
!CmdLineParserTest methodsFor:'initialization'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    80
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    81
setUp
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    82
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    83
    optionA := optionB := false.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    84
    optionBValue := nil
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    85
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    86
    "Created: / 28-01-2009 / 12:01:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    87
! !
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    88
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    89
!CmdLineParserTest methodsFor:'tests'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    90
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    91
test_01
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    92
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    93
    CmdLineParser 
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    94
        parse: #('-a')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    95
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    96
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    97
    self assert: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    98
    self deny: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
    99
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   100
    "Created: / 28-01-2009 / 14:19:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   101
    "Modified: / 29-05-2009 / 15:47:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   102
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   103
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   104
test_02
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   105
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   106
    CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   107
        parse: #('--option-a')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   108
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   109
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   110
    self assert: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   111
    self deny: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   112
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   113
    "Created: / 28-01-2009 / 14:19:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   114
    "Modified: / 29-05-2009 / 15:47:30 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   115
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   116
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   117
test_04a
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   118
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   119
    CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   120
        parse: #('--option-b= value')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   121
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   122
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   123
    self deny: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   124
    self assert: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   125
    self assert: optionBValue = ' value'
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   126
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   127
    "Created: / 30-01-2009 / 10:43:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   128
    "Modified: / 29-05-2009 / 15:47:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   129
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   130
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   131
test_04b
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   132
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   133
    self 
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   134
        should:[CmdLineParser  parse: #('--option-b') for: self]
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   135
        raise: CmdLineOptionError
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   136
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   137
    "Created: / 30-01-2009 / 10:43:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   138
    "Modified: / 29-05-2009 / 15:47:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   139
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   140
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   141
test_04c
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   142
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   143
    CmdLineParser parse: #('--option-b=') for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   144
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   145
    self deny: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   146
    self assert: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   147
    self assert: optionBValue = ''
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   148
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   149
    "Created: / 30-01-2009 / 10:44:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   150
    "Modified: / 29-05-2009 / 15:47:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   151
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   152
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   153
test_05
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   154
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   155
    CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   156
        parse: #('-b' 'value')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   157
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   158
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   159
    self deny: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   160
    self assert: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   161
    self assert: optionBValue = 'value'.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   162
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   163
    "Created: / 03-02-2009 / 17:38:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   164
    "Modified: / 29-05-2009 / 15:47:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   165
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   166
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   167
test_06
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   168
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   169
    CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   170
        parse: #('-a' '-b' 'value')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   171
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   172
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   173
    self assert: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   174
    self assert: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   175
    self assert: optionBValue = 'value'.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   176
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   177
    "Created: / 03-02-2009 / 17:39:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   178
    "Modified: / 29-05-2009 / 15:47:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   179
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   180
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   181
test_07
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   182
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   183
    CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   184
        parse: #('-ab' 'value')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   185
        for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   186
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   187
    self assert: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   188
    self assert: optionB.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   189
    self assert: optionBValue = 'value'.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   190
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   191
    "Created: / 03-02-2009 / 17:40:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   192
    "Modified: / 29-05-2009 / 15:48:02 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   193
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   194
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   195
test_08
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   196
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   197
    | rest |
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   198
    rest := CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   199
                parse: #('-a' '/tmp/abc.txt')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   200
                for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   201
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   202
    self assert: optionA.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   203
    self assert: optionB not.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   204
    self assert: rest asArray = #('/tmp/abc.txt')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   205
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   206
    "Created: / 08-06-2009 / 14:51:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   207
!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   208
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   209
test_09
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   210
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   211
    | rest |
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   212
    rest := CmdLineParser
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   213
                parse: #('/tmp/abc.txt')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   214
                for: self.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   215
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   216
    self assert: optionA not.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   217
    self assert: optionB not.
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   218
    self assert: rest asArray = #('/tmp/abc.txt')
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   219
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   220
    "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
   221
!
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   222
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   223
test_10
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   224
    | option |
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:'-a'.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   231
    self assert: option short == $a.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   232
    self assert: option long isNil.
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:'--add'.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   239
    self assert: option short isNil.
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
    option := CmdLineOption new spec:#('-a' '--add').
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   243
    self assert: option short == $a.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   244
    self assert: option long = 'add'.
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   245
148721e96482 Added convenience methods to build CmdLineOptions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 18120
diff changeset
   246
    "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
   247
!
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   248
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   249
test_11
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   250
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   251
    | rest |
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   252
    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
   253
                ignoreUnknownOptions: true;
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   254
                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
   255
                for: self.
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
    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
   258
    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
   259
    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
   260
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   261
    "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
   262
!
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
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
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
   265
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
    | 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
   267
    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
   268
                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
   269
                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
   270
    
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
    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
   272
    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
   273
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
    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
   275
    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
   276
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
    "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
   278
!
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
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
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
   281
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
    | 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
   283
    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
   284
                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
   285
                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
   286
    
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
    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
   288
    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
   289
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
   290
    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
   291
    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
   292
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
   293
    "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
   294
! !
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   295
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   296
!CmdLineParserTest class methodsFor:'documentation'!
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   297
13939
eda69dfb6133 Updated from SVN
vrany
parents: 13481
diff changeset
   298
version
17340
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
   299
    ^'$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
   300
!
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   301
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   302
version_HG
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   303
ff2f4d06a2fa CmdLineParser refactored and added an option to ignore unknown options
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 19988
diff changeset
   304
    ^ '$Changeset: <not expanded> $'
13402
2d18a79f3fcc Added command line parsing stuff
vrany
parents:
diff changeset
   305
! !
17340
3d51dbb5a9bb class: CmdLineParserTest
Claus Gittinger <cg@exept.de>
parents: 13939
diff changeset
   306