getopt 1.4.2 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/{CHANGES → CHANGES.md} +39 -16
- data/Gemfile +3 -0
- data/LICENSE +177 -0
- data/{MANIFEST → MANIFEST.md} +12 -5
- data/README.md +197 -0
- data/Rakefile +13 -21
- data/certs/djberg96_pub.pem +26 -0
- data/getopt.gemspec +15 -6
- data/lib/getopt-long.rb +1 -0
- data/lib/getopt-std.rb +1 -0
- data/lib/getopt.rb +2 -0
- data/lib/getopt/long.rb +6 -6
- data/lib/getopt/std.rb +3 -3
- data/lib/getopt/version.rb +6 -0
- data/spec/getopt_long_spec.rb +279 -0
- data/spec/getopt_std_spec.rb +122 -0
- metadata +74 -24
- metadata.gz.sig +0 -0
- data/README +0 -191
- data/test/test_getopt_long.rb +0 -264
- data/test/test_getopt_std.rb +0 -125
    
        data/test/test_getopt_long.rb
    DELETED
    
    | @@ -1,264 +0,0 @@ | |
| 1 | 
            -
            #####################################################################
         | 
| 2 | 
            -
            # tc_getopt_long.rb
         | 
| 3 | 
            -
            #
         | 
| 4 | 
            -
            # Test suite for the getopt-long package. You should run this test
         | 
| 5 | 
            -
            # via the 'rake test' rake task.
         | 
| 6 | 
            -
            #####################################################################
         | 
| 7 | 
            -
            require 'test-unit'
         | 
| 8 | 
            -
            require 'getopt/long'
         | 
| 9 | 
            -
            include Getopt
         | 
| 10 | 
            -
             | 
| 11 | 
            -
            class TC_Getopt_Long < Test::Unit::TestCase
         | 
| 12 | 
            -
               def setup
         | 
| 13 | 
            -
                  @opts = nil
         | 
| 14 | 
            -
               end
         | 
| 15 | 
            -
             | 
| 16 | 
            -
               def test_version
         | 
| 17 | 
            -
                  assert_equal('1.4.2', Long::VERSION)
         | 
| 18 | 
            -
               end
         | 
| 19 | 
            -
             | 
| 20 | 
            -
               def test_constants
         | 
| 21 | 
            -
                  assert_not_nil(BOOLEAN)
         | 
| 22 | 
            -
                  assert_not_nil(OPTIONAL)
         | 
| 23 | 
            -
                  assert_not_nil(REQUIRED)
         | 
| 24 | 
            -
                  assert_not_nil(INCREMENT)
         | 
| 25 | 
            -
               end
         | 
| 26 | 
            -
             | 
| 27 | 
            -
               def test_getopts_basic
         | 
| 28 | 
            -
                  assert_respond_to(Long, :getopts)
         | 
| 29 | 
            -
                  assert_nothing_raised{
         | 
| 30 | 
            -
                     Long.getopts(["--test"],["--help"],["--foo"])
         | 
| 31 | 
            -
                  }
         | 
| 32 | 
            -
                  assert_nothing_raised{
         | 
| 33 | 
            -
                     Long.getopts(["--test", "-x"],["--help", "-y"],["--foo", "-z"])
         | 
| 34 | 
            -
                  }
         | 
| 35 | 
            -
                  assert_nothing_raised{
         | 
| 36 | 
            -
                     Long.getopts(
         | 
| 37 | 
            -
                        ["--test", "-x", BOOLEAN],
         | 
| 38 | 
            -
                        ["--help", "-y", REQUIRED],
         | 
| 39 | 
            -
                        ["--foo",  "-z", OPTIONAL],
         | 
| 40 | 
            -
                        ["--more", "-m", INCREMENT]
         | 
| 41 | 
            -
                     )
         | 
| 42 | 
            -
                  }
         | 
| 43 | 
            -
                  assert_kind_of(Hash, Long.getopts("--test"))
         | 
| 44 | 
            -
               end
         | 
| 45 | 
            -
             | 
| 46 | 
            -
               def test_getopts_using_equals
         | 
| 47 | 
            -
                  ARGV.push("--foo=hello","-b","world")
         | 
| 48 | 
            -
                  assert_nothing_raised{
         | 
| 49 | 
            -
                     @opts = Long.getopts(
         | 
| 50 | 
            -
                        ["--foo", "-f", REQUIRED],
         | 
| 51 | 
            -
                        ["--bar", "-b", OPTIONAL]
         | 
| 52 | 
            -
                     )
         | 
| 53 | 
            -
                  }
         | 
| 54 | 
            -
                  assert_equal("hello", @opts["foo"])
         | 
| 55 | 
            -
                  assert_equal("hello", @opts["f"])
         | 
| 56 | 
            -
                  assert_equal("world", @opts["bar"])
         | 
| 57 | 
            -
                  assert_equal("world", @opts["b"])
         | 
| 58 | 
            -
               end
         | 
| 59 | 
            -
             | 
| 60 | 
            -
               def test_getopts_long_embedded_hyphens
         | 
| 61 | 
            -
                  ARGV.push('--foo-bar', 'hello', '--test1-test2-test3', 'world')
         | 
| 62 | 
            -
                  assert_nothing_raised{
         | 
| 63 | 
            -
                     @opts = Long.getopts(
         | 
| 64 | 
            -
                        ['--foo-bar', '-f', REQUIRED],
         | 
| 65 | 
            -
                        ['--test1-test2-test3', '-t', REQUIRED]
         | 
| 66 | 
            -
                     )
         | 
| 67 | 
            -
                  }
         | 
| 68 | 
            -
                  assert_equal('hello', @opts['foo-bar'])
         | 
| 69 | 
            -
                  assert_equal('hello', @opts['f'])
         | 
| 70 | 
            -
                  assert_equal('world', @opts['test1-test2-test3'])
         | 
| 71 | 
            -
                  assert_equal('world', @opts['t'])
         | 
| 72 | 
            -
               end
         | 
| 73 | 
            -
             | 
| 74 | 
            -
               def test_getopts_long_embedded_hyphens_using_equals_sign
         | 
| 75 | 
            -
                  ARGV.push('--foo-bar=hello', '--test1-test2-test3=world')
         | 
| 76 | 
            -
                  assert_nothing_raised{
         | 
| 77 | 
            -
                     @opts = Long.getopts(
         | 
| 78 | 
            -
                        ['--foo-bar', '-f', REQUIRED],
         | 
| 79 | 
            -
                        ['--test1-test2-test3', '-t', REQUIRED]
         | 
| 80 | 
            -
                     )
         | 
| 81 | 
            -
                  }
         | 
| 82 | 
            -
                  assert_equal('hello', @opts['foo-bar'])
         | 
| 83 | 
            -
                  assert_equal('hello', @opts['f'])
         | 
| 84 | 
            -
                  assert_equal('world', @opts['test1-test2-test3'])
         | 
| 85 | 
            -
                  assert_equal('world', @opts['t'])
         | 
| 86 | 
            -
               end
         | 
| 87 | 
            -
             | 
| 88 | 
            -
               def test_getopts_short_switch_squished
         | 
| 89 | 
            -
                  ARGV.push("-f", "hello", "-bworld")
         | 
| 90 | 
            -
                  assert_nothing_raised{
         | 
| 91 | 
            -
                     @opts = Long.getopts(
         | 
| 92 | 
            -
                        ["--foo", "-f", REQUIRED],
         | 
| 93 | 
            -
                        ["--bar", "-b", OPTIONAL]
         | 
| 94 | 
            -
                     )
         | 
| 95 | 
            -
                  }
         | 
| 96 | 
            -
                  assert_equal("hello", @opts["f"])
         | 
| 97 | 
            -
                  assert_equal("world", @opts["b"])
         | 
| 98 | 
            -
               end
         | 
| 99 | 
            -
             | 
| 100 | 
            -
               def test_getopts_increment_type
         | 
| 101 | 
            -
                  ARGV.push("-m","-m")
         | 
| 102 | 
            -
                  assert_nothing_raised{
         | 
| 103 | 
            -
                     @opts = Long.getopts(["--more", "-m", INCREMENT])
         | 
| 104 | 
            -
                  }
         | 
| 105 | 
            -
                  assert_equal(2, @opts["more"])
         | 
| 106 | 
            -
                  assert_equal(2, @opts["m"])
         | 
| 107 | 
            -
               end
         | 
| 108 | 
            -
             | 
| 109 | 
            -
               def test_switches_exist
         | 
| 110 | 
            -
                  ARGV.push("--verbose","--test","--foo")
         | 
| 111 | 
            -
                  assert_nothing_raised{ @opts = Long.getopts("--verbose --test --foo") }
         | 
| 112 | 
            -
                  assert_equal(true, @opts.has_key?("verbose"))
         | 
| 113 | 
            -
                  assert_equal(true, @opts.has_key?("test"))
         | 
| 114 | 
            -
                  assert_equal(true, @opts.has_key?("foo"))
         | 
| 115 | 
            -
               end
         | 
| 116 | 
            -
             | 
| 117 | 
            -
               def test_short_switch_synonyms
         | 
| 118 | 
            -
                  ARGV.push("--verbose","--test","--foo")
         | 
| 119 | 
            -
                  assert_nothing_raised{ @opts = Long.getopts("--verbose --test --foo") }
         | 
| 120 | 
            -
                  assert_equal(true, @opts.has_key?("v"))
         | 
| 121 | 
            -
                  assert_equal(true, @opts.has_key?("t"))
         | 
| 122 | 
            -
                  assert_equal(true, @opts.has_key?("f"))
         | 
| 123 | 
            -
               end
         | 
| 124 | 
            -
             | 
| 125 | 
            -
               def test_short_switch_synonyms_with_explicit_types
         | 
| 126 | 
            -
                  ARGV.push("--verbose", "--test", "hello", "--foo")
         | 
| 127 | 
            -
                  assert_nothing_raised{
         | 
| 128 | 
            -
                     @opts = Long.getopts(
         | 
| 129 | 
            -
                        ["--verbose", BOOLEAN],
         | 
| 130 | 
            -
                        ["--test", REQUIRED],
         | 
| 131 | 
            -
                        ["--foo", BOOLEAN]
         | 
| 132 | 
            -
                     )
         | 
| 133 | 
            -
                  }
         | 
| 134 | 
            -
                  assert(@opts.has_key?("v"))
         | 
| 135 | 
            -
                  assert(@opts.has_key?("t"))
         | 
| 136 | 
            -
                  assert(@opts.has_key?("f"))
         | 
| 137 | 
            -
               end
         | 
| 138 | 
            -
             | 
| 139 | 
            -
               def test_switches_with_required_arguments
         | 
| 140 | 
            -
                  ARGV.push("--foo","1","--bar","hello")
         | 
| 141 | 
            -
                  assert_nothing_raised{
         | 
| 142 | 
            -
                     @opts = Long.getopts(
         | 
| 143 | 
            -
                        ["--foo", "-f", REQUIRED],
         | 
| 144 | 
            -
                        ["--bar", "-b", REQUIRED]
         | 
| 145 | 
            -
                     )
         | 
| 146 | 
            -
                  }
         | 
| 147 | 
            -
                  assert_equal({"foo"=>"1", "bar"=>"hello", "f"=>"1", "b"=>"hello"}, @opts)
         | 
| 148 | 
            -
               end
         | 
| 149 | 
            -
             | 
| 150 | 
            -
               def test_compressed_switches
         | 
| 151 | 
            -
                  ARGV.push("-fb")
         | 
| 152 | 
            -
                  assert_nothing_raised{
         | 
| 153 | 
            -
                     @opts = Long.getopts(
         | 
| 154 | 
            -
                        ["--foo", "-f", BOOLEAN],
         | 
| 155 | 
            -
                        ["--bar", "-b", BOOLEAN]
         | 
| 156 | 
            -
                     )
         | 
| 157 | 
            -
                  }
         | 
| 158 | 
            -
                  assert_equal({"foo"=>true, "f"=>true, "b"=>true, "bar"=>true}, @opts)
         | 
| 159 | 
            -
               end
         | 
| 160 | 
            -
             | 
| 161 | 
            -
               def test_compress_switches_with_required_arg
         | 
| 162 | 
            -
                  ARGV.push("-xf", "foo.txt")
         | 
| 163 | 
            -
                  assert_nothing_raised{
         | 
| 164 | 
            -
                     @opts = Long.getopts(
         | 
| 165 | 
            -
                        ["--expand", "-x", BOOLEAN],
         | 
| 166 | 
            -
                        ["--file", "-f", REQUIRED]
         | 
| 167 | 
            -
                     )
         | 
| 168 | 
            -
                  }
         | 
| 169 | 
            -
                  assert_equal(
         | 
| 170 | 
            -
                     {"x"=>true, "expand"=>true, "f"=>"foo.txt", "file"=>"foo.txt"}, @opts
         | 
| 171 | 
            -
                  )
         | 
| 172 | 
            -
               end
         | 
| 173 | 
            -
             | 
| 174 | 
            -
               def test_compress_switches_with_compressed_required_arg
         | 
| 175 | 
            -
                  ARGV.push("-xffoo.txt")
         | 
| 176 | 
            -
                  assert_nothing_raised{
         | 
| 177 | 
            -
                     @opts = Long.getopts(
         | 
| 178 | 
            -
                        ["--expand", "-x", BOOLEAN],
         | 
| 179 | 
            -
                        ["--file", "-f", REQUIRED]
         | 
| 180 | 
            -
                     )
         | 
| 181 | 
            -
                  }
         | 
| 182 | 
            -
                  assert_equal(
         | 
| 183 | 
            -
                     {"x"=>true, "expand"=>true, "f"=>"foo.txt", "file"=>"foo.txt"}, @opts
         | 
| 184 | 
            -
                  )
         | 
| 185 | 
            -
               end
         | 
| 186 | 
            -
             | 
| 187 | 
            -
               def test_compress_switches_with_optional_arg_not_defined
         | 
| 188 | 
            -
                  ARGV.push("-xf")
         | 
| 189 | 
            -
                  assert_nothing_raised{
         | 
| 190 | 
            -
                     @opts = Long.getopts(
         | 
| 191 | 
            -
                        ["--expand", "-x", BOOLEAN],
         | 
| 192 | 
            -
                        ["--file", "-f", OPTIONAL]
         | 
| 193 | 
            -
                     )
         | 
| 194 | 
            -
                  }
         | 
| 195 | 
            -
                  assert_equal(
         | 
| 196 | 
            -
                     {"x"=>true, "expand"=>true, "f"=>nil, "file"=>nil}, @opts
         | 
| 197 | 
            -
                  )
         | 
| 198 | 
            -
               end
         | 
| 199 | 
            -
             | 
| 200 | 
            -
               def test_compress_switches_with_optional_arg
         | 
| 201 | 
            -
                  ARGV.push("-xf", "boo.txt")
         | 
| 202 | 
            -
                  assert_nothing_raised{
         | 
| 203 | 
            -
                     @opts = Long.getopts(
         | 
| 204 | 
            -
                        ["--expand", "-x", BOOLEAN],
         | 
| 205 | 
            -
                        ["--file", "-f", OPTIONAL]
         | 
| 206 | 
            -
                     )
         | 
| 207 | 
            -
                  }
         | 
| 208 | 
            -
                  assert_equal(
         | 
| 209 | 
            -
                     {"x"=>true, "expand"=>true, "f"=>"boo.txt", "file"=>"boo.txt"}, @opts
         | 
| 210 | 
            -
                  )
         | 
| 211 | 
            -
               end
         | 
| 212 | 
            -
             | 
| 213 | 
            -
               def test_compress_switches_with_compressed_optional_arg
         | 
| 214 | 
            -
                  ARGV.push("-xfboo.txt")
         | 
| 215 | 
            -
                  assert_nothing_raised{
         | 
| 216 | 
            -
                     @opts = Long.getopts(
         | 
| 217 | 
            -
                        ["--expand", "-x", BOOLEAN],
         | 
| 218 | 
            -
                        ["--file", "-f", OPTIONAL]
         | 
| 219 | 
            -
                     )
         | 
| 220 | 
            -
                  }
         | 
| 221 | 
            -
                  assert_equal(
         | 
| 222 | 
            -
                     {"x"=>true, "expand"=>true, "f"=>"boo.txt", "file"=>"boo.txt"}, @opts
         | 
| 223 | 
            -
                  )
         | 
| 224 | 
            -
               end
         | 
| 225 | 
            -
             | 
| 226 | 
            -
               def test_compressed_short_and_long_mixed
         | 
| 227 | 
            -
                  ARGV.push("-xb", "--file", "boo.txt", "-v")
         | 
| 228 | 
            -
                  assert_nothing_raised{
         | 
| 229 | 
            -
                     @opts = Long.getopts(
         | 
| 230 | 
            -
                        ["--expand", "-x", BOOLEAN],
         | 
| 231 | 
            -
                        ["--verbose", "-v", BOOLEAN],
         | 
| 232 | 
            -
                        ["--file", "-f", REQUIRED],
         | 
| 233 | 
            -
                        ["--bar", "-b", OPTIONAL]
         | 
| 234 | 
            -
                     )
         | 
| 235 | 
            -
                     assert_equal(
         | 
| 236 | 
            -
                        { "x"=>true, "expand"=>true,
         | 
| 237 | 
            -
                          "v"=>true, "verbose"=>true,
         | 
| 238 | 
            -
                          "f"=>"boo.txt", "file"=>"boo.txt",
         | 
| 239 | 
            -
                          "b"=>nil, "bar"=>nil
         | 
| 240 | 
            -
                        },
         | 
| 241 | 
            -
                        @opts
         | 
| 242 | 
            -
                     )
         | 
| 243 | 
            -
                  }
         | 
| 244 | 
            -
               end
         | 
| 245 | 
            -
             | 
| 246 | 
            -
               def test_multiple_similar_long_switches_with_no_short_switches
         | 
| 247 | 
            -
                  ARGV.push('--to','1','--too','2','--tooo','3')
         | 
| 248 | 
            -
                  assert_nothing_raised{
         | 
| 249 | 
            -
                     @opts = Long.getopts(
         | 
| 250 | 
            -
                        ["--to",  REQUIRED],
         | 
| 251 | 
            -
                        ["--too", REQUIRED],
         | 
| 252 | 
            -
                        ["--tooo", REQUIRED]
         | 
| 253 | 
            -
                     )
         | 
| 254 | 
            -
                  }
         | 
| 255 | 
            -
                  assert_equal('1', @opts['to'])
         | 
| 256 | 
            -
                  assert_equal('2', @opts['too'])
         | 
| 257 | 
            -
                  assert_equal('3', @opts['tooo'])
         | 
| 258 | 
            -
               end
         | 
| 259 | 
            -
             | 
| 260 | 
            -
               def teardown
         | 
| 261 | 
            -
                  @opts = nil
         | 
| 262 | 
            -
                  ARGV.clear
         | 
| 263 | 
            -
               end
         | 
| 264 | 
            -
            end
         | 
    
        data/test/test_getopt_std.rb
    DELETED
    
    | @@ -1,125 +0,0 @@ | |
| 1 | 
            -
            ###################################################################
         | 
| 2 | 
            -
            # test_getopt_std.rb
         | 
| 3 | 
            -
            #
         | 
| 4 | 
            -
            # Test suite for the Getopt::Std class. You should run this test
         | 
| 5 | 
            -
            # via the 'rake test' task.
         | 
| 6 | 
            -
            ###################################################################
         | 
| 7 | 
            -
            require 'test-unit'
         | 
| 8 | 
            -
            require 'getopt/std'
         | 
| 9 | 
            -
            include Getopt
         | 
| 10 | 
            -
             | 
| 11 | 
            -
            class TC_Getopt_Std < Test::Unit::TestCase
         | 
| 12 | 
            -
             | 
| 13 | 
            -
               def test_version
         | 
| 14 | 
            -
                  assert_equal('1.4.2', Std::VERSION)
         | 
| 15 | 
            -
               end
         | 
| 16 | 
            -
             | 
| 17 | 
            -
               def test_getopts_basic
         | 
| 18 | 
            -
                  assert_respond_to(Std, :getopts)
         | 
| 19 | 
            -
                  assert_nothing_raised{ Std.getopts("ID") }
         | 
| 20 | 
            -
                  assert_kind_of(Hash, Std.getopts("ID"))
         | 
| 21 | 
            -
               end
         | 
| 22 | 
            -
             | 
| 23 | 
            -
               def test_getopts_separated_switches
         | 
| 24 | 
            -
                  ARGV.push("-I", "-D")
         | 
| 25 | 
            -
                  assert_equal({"I"=>true, "D"=>true}, Std.getopts("ID"))
         | 
| 26 | 
            -
               end
         | 
| 27 | 
            -
             | 
| 28 | 
            -
               # Inspired by RF bug #23477
         | 
| 29 | 
            -
               def test_getopts_arguments_that_match_switch_are_ok
         | 
| 30 | 
            -
                  ARGV.push("-d", "d")
         | 
| 31 | 
            -
                  assert_equal({"d" => "d"}, Std.getopts("d:"))
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                  ARGV.push("-d", "ad")
         | 
| 34 | 
            -
                  assert_equal({"d" => "ad"}, Std.getopts("d:"))
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                  ARGV.push("-a", "ad")
         | 
| 37 | 
            -
                  assert_equal({"a" => "ad"}, Std.getopts("d:a:"))
         | 
| 38 | 
            -
             | 
| 39 | 
            -
                  ARGV.push("-a", "da")
         | 
| 40 | 
            -
                  assert_equal({"a" => "da"}, Std.getopts("d:a:"))
         | 
| 41 | 
            -
             | 
| 42 | 
            -
                  ARGV.push("-a", "d")
         | 
| 43 | 
            -
                  assert_equal({"a" => "d"}, Std.getopts("d:a:"))
         | 
| 44 | 
            -
             | 
| 45 | 
            -
                  ARGV.push("-a", "dad")
         | 
| 46 | 
            -
                  assert_equal({"a" => "dad"}, Std.getopts("d:a:"))
         | 
| 47 | 
            -
             | 
| 48 | 
            -
                  ARGV.push("-d", "d", "-a", "a")
         | 
| 49 | 
            -
                  assert_equal({"d" => "d", "a" => "a"}, Std.getopts("d:a:"))
         | 
| 50 | 
            -
               end
         | 
| 51 | 
            -
             | 
| 52 | 
            -
               def test_getopts_joined_switches
         | 
| 53 | 
            -
                  ARGV.push("-ID")
         | 
| 54 | 
            -
                  assert_equal({"I"=>true, "D"=>true}, Std.getopts("ID"))
         | 
| 55 | 
            -
               end
         | 
| 56 | 
            -
             | 
| 57 | 
            -
               def test_getopts_separated_switches_with_mandatory_arg
         | 
| 58 | 
            -
                  ARGV.push("-o", "hello", "-I", "-D")
         | 
| 59 | 
            -
                  assert_equal({"o"=>"hello", "I"=>true, "D"=>true}, Std.getopts("o:ID"))
         | 
| 60 | 
            -
               end
         | 
| 61 | 
            -
             | 
| 62 | 
            -
               def test_getopts_joined_switches_with_mandatory_arg
         | 
| 63 | 
            -
                  ARGV.push("-IDo", "hello")
         | 
| 64 | 
            -
                  assert_equal({"o"=>"hello", "I"=>true, "D"=>true}, Std.getopts("o:ID"))
         | 
| 65 | 
            -
               end
         | 
| 66 | 
            -
             | 
| 67 | 
            -
               def test_getopts_no_args
         | 
| 68 | 
            -
                  assert_nothing_raised{ Std.getopts("ID") }
         | 
| 69 | 
            -
                  assert_equal({}, Std.getopts("ID"))
         | 
| 70 | 
            -
                  assert_nil(Std.getopts("ID")["I"])
         | 
| 71 | 
            -
                  assert_nil(Std.getopts("ID")["D"])
         | 
| 72 | 
            -
               end
         | 
| 73 | 
            -
             | 
| 74 | 
            -
               # If a switch that accepts an argument appears more than once, the values
         | 
| 75 | 
            -
               # are rolled into an array.
         | 
| 76 | 
            -
               def test_getopts_switch_repeated
         | 
| 77 | 
            -
                  ARGV.push("-I", "-I", "-o", "hello", "-o", "world")
         | 
| 78 | 
            -
                  assert_equal({"o" => ["hello","world"], "I"=>true}, Std.getopts("o:ID"))
         | 
| 79 | 
            -
               end
         | 
| 80 | 
            -
             | 
| 81 | 
            -
               # EXPECTED ERRORS
         | 
| 82 | 
            -
             | 
| 83 | 
            -
               def test_getopts_expected_errors_passing_switch_to_another_switch
         | 
| 84 | 
            -
                  ARGV.push("-d", "-d")
         | 
| 85 | 
            -
                  assert_raise(Getopt::Std::Error){ Std.getopts("d:a:") }
         | 
| 86 | 
            -
             | 
| 87 | 
            -
                  ARGV.push("-d", "-a")
         | 
| 88 | 
            -
                  assert_raise(Getopt::Std::Error){ Std.getopts("d:a:") }
         | 
| 89 | 
            -
             | 
| 90 | 
            -
                  ARGV.push("-a", "-d")
         | 
| 91 | 
            -
                  assert_raise(Getopt::Std::Error){ Std.getopts("d:a:") }
         | 
| 92 | 
            -
             | 
| 93 | 
            -
                  ARGV.push("-d", "-d")
         | 
| 94 | 
            -
                  assert_raise_message("cannot use switch '-d' as argument to another switch"){ Std.getopts("d:a:") }
         | 
| 95 | 
            -
               end
         | 
| 96 | 
            -
             | 
| 97 | 
            -
               def test_getopts_expected_errors_missing_arg
         | 
| 98 | 
            -
                  ARGV.push("-ID")
         | 
| 99 | 
            -
                  assert_raises(Std::Error){ Std.getopts("I:D") }
         | 
| 100 | 
            -
             | 
| 101 | 
            -
                  ARGV.push("-ID")
         | 
| 102 | 
            -
                  assert_raises(Std::Error){ Std.getopts("ID:") }
         | 
| 103 | 
            -
               end
         | 
| 104 | 
            -
             | 
| 105 | 
            -
               def test_getopts_expected_errors_extra_arg
         | 
| 106 | 
            -
                  ARGV.push("-I", "-D", "-X")
         | 
| 107 | 
            -
                  assert_raises(Std::Error){ Std.getopts("ID") }
         | 
| 108 | 
            -
             | 
| 109 | 
            -
                  ARGV.push("-IDX")
         | 
| 110 | 
            -
                  assert_raises(Std::Error){ Std.getopts("ID") }
         | 
| 111 | 
            -
             | 
| 112 | 
            -
                  ARGV.push("-IDX")
         | 
| 113 | 
            -
                  assert_raise_message("invalid option 'X'"){ Std.getopts("ID") }
         | 
| 114 | 
            -
               end
         | 
| 115 | 
            -
             | 
| 116 | 
            -
               def test_getopts_expected_errors_basic
         | 
| 117 | 
            -
                  assert_raises(ArgumentError){ Std.getopts }
         | 
| 118 | 
            -
                  assert_raises(NoMethodError){ Std.getopts(0) }
         | 
| 119 | 
            -
                  assert_raises(NoMethodError){ Std.getopts(nil) }
         | 
| 120 | 
            -
               end
         | 
| 121 | 
            -
             | 
| 122 | 
            -
               def teardown
         | 
| 123 | 
            -
                  ARGV.clear
         | 
| 124 | 
            -
               end
         | 
| 125 | 
            -
            end
         |