summaryrefslogtreecommitdiff
path: root/spec/ruby/command_line/dash_upper_w_spec.rb
blob: b705638606924dbf8338c2ec533b4fee7f661913 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
require_relative '../spec_helper'
require_relative 'shared/verbose'

describe "The -W command line option" do
  before :each do
    @script = fixture __FILE__, "verbose.rb"
  end

  it "with 0 sets $VERBOSE to nil" do
    ruby_exe(@script, options: "-W0").chomp.should == "nil"
  end

  it "with 1 sets $VERBOSE to false" do
    ruby_exe(@script, options: "-W1").chomp.should == "false"
  end
end

describe "The -W command line option with 2" do
  it_behaves_like :command_line_verbose, "-W2"
end

ruby_version_is "2.7" do
  describe "The -W command line option with :no-deprecated" do
    it "suppresses deprecation warnings" do
      result = ruby_exe('$; = ""', options: '-w', args: '2>&1')
      result.should =~ /is deprecated/

      result = ruby_exe('$; = ""', options: '-w -W:no-deprecated', args: '2>&1')
      result.should == ""
    end
  end

  describe "The -W command line option with :no-experimental" do
    before do
      ruby_version_is ""..."3.0" do
        @src = 'case [0, 1]; in [a, b]; end'
      end

      ruby_version_is "3.0" do
        @src = '[0, 1] => [a, b]'
      end
    end

    it "suppresses experimental warnings" do
      result = ruby_exe(@src, args: '2>&1')
      result.should =~ /is experimental/

      result = ruby_exe(@src, options: '-W:no-experimental', args: '2>&1')
      result.should == ""
    end
  end
end