-
-
Notifications
You must be signed in to change notification settings - Fork 389
/
Copy pathdash_r_spec.rb
31 lines (26 loc) · 1.12 KB
/
dash_r_spec.rb
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
require_relative '../spec_helper'
describe "The -r command line option" do
before :each do
@script = fixture __FILE__, "require.rb"
@test_file = fixture __FILE__, "test_file"
end
it "requires the specified file" do
out = ruby_exe(@script, options: "-r #{@test_file}")
out.should include("REQUIRED")
out.should include(@test_file + ".rb")
end
it "requires the file before parsing the main script" do
out = ruby_exe(fixture(__FILE__, "bad_syntax.rb"), options: "-r #{@test_file}", args: "2>&1", exit_status: 1)
$?.should_not.success?
out.should include("REQUIRED")
# it's tempting not to rely on error message and rely only on exception class name,
# but CRuby before 3.2 doesn't print class name for syntax error
out.should include_any_of("syntax error", "SyntaxError")
end
it "does not require the file if the main script file does not exist" do
out = `#{ruby_exe.to_a.join(' ')} -r #{@test_file} #{fixture(__FILE__, "does_not_exist.rb")} 2>&1`
$?.should_not.success?
out.should_not.include?("REQUIRED")
out.should.include?("No such file or directory")
end
end