add specs testing construction variable overrides for built-in builders
This commit is contained in:
parent
08f2248ed7
commit
ab1ea34941
@ -15,6 +15,11 @@ module Rscons
|
||||
subject.run("lexer.cc", ["parser.ll"], :cache, env, {})
|
||||
end
|
||||
|
||||
it "supports overriding construction variables" do
|
||||
subject.should_receive(:standard_build).with("LEX lexer.c", "lexer.c", ["hi", "parser.l"], ["parser.l"], env, :cache)
|
||||
subject.run("lexer.c", ["parser.l"], :cache, env, "LEX_CMD" => ["hi", "${_SOURCES}"])
|
||||
end
|
||||
|
||||
it "raises an error when an unknown source file is specified" do
|
||||
expect {subject.run("file.c", ["foo.bar"], :cache, env, {})}.to raise_error /Unknown source file .foo.bar. for CFile builder/
|
||||
end
|
||||
|
17
spec/rscons/builders/disassemble_spec.rb
Normal file
17
spec/rscons/builders/disassemble_spec.rb
Normal file
@ -0,0 +1,17 @@
|
||||
module Rscons
|
||||
module Builders
|
||||
describe Disassemble do
|
||||
let(:env) {Environment.new}
|
||||
subject {Disassemble.new}
|
||||
|
||||
it "supports overriding DISASM_CMD construction variable" do
|
||||
cache = "cache"
|
||||
cache.stub(:up_to_date?) { false }
|
||||
cache.stub(:mkdir_p) { }
|
||||
cache.stub(:register_build) { }
|
||||
env.should_receive(:execute).with("Disassemble a_file.txt", ["my_disasm", "a_file.exe"], anything).and_return(true)
|
||||
subject.run("a_file.txt", ["a_file.exe"], cache, env, "DISASM_CMD" => ["my_disasm", "${_SOURCES}"])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
18
spec/rscons/builders/library_spec.rb
Normal file
18
spec/rscons/builders/library_spec.rb
Normal file
@ -0,0 +1,18 @@
|
||||
module Rscons
|
||||
module Builders
|
||||
describe Library do
|
||||
let(:env) {Environment.new}
|
||||
subject {Library.new}
|
||||
|
||||
it "supports overriding AR construction variable" do
|
||||
subject.should_receive(:standard_build).with("AR prog.a", "prog.a", ["sp-ar", "rcs", "prog.a", "prog.o"], ["prog.o"], env, :cache)
|
||||
subject.run("prog.a", ["prog.o"], :cache, env, "AR" => "sp-ar")
|
||||
end
|
||||
|
||||
it "supports overriding ARCMD construction variable" do
|
||||
subject.should_receive(:standard_build).with("AR prog.a", "prog.a", ["special", "AR!", "prog.o"], ["prog.o"], env, :cache)
|
||||
subject.run("prog.a", ["prog.o"], :cache, env, "ARCMD" => ["special", "AR!", "${_SOURCES}"])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
23
spec/rscons/builders/object_spec.rb
Normal file
23
spec/rscons/builders/object_spec.rb
Normal file
@ -0,0 +1,23 @@
|
||||
module Rscons
|
||||
module Builders
|
||||
describe Object do
|
||||
let(:env) {Environment.new}
|
||||
subject {Object.new}
|
||||
|
||||
it "supports overriding CCCMD construction variable" do
|
||||
cache = "cache"
|
||||
cache.stub(:up_to_date?) { false }
|
||||
cache.stub(:mkdir_p) { }
|
||||
cache.stub(:register_build) { }
|
||||
FileUtils.stub(:rm_f) { }
|
||||
File.stub(:exists?) { false }
|
||||
env.should_receive(:execute).with("CC mod.o", ["llc", "mod.c"]).and_return(true)
|
||||
subject.run("mod.o", ["mod.c"], cache, env, "CCCMD" => ["llc", "${_SOURCES}"])
|
||||
end
|
||||
|
||||
it "raises an error when given a source file with an unknown suffix" do
|
||||
expect { subject.run("mod.o", ["mod.xyz"], :cache, env, {}) }.to raise_error /unknown input file type: "mod.xyz"/
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
18
spec/rscons/builders/preprocess_spec.rb
Normal file
18
spec/rscons/builders/preprocess_spec.rb
Normal file
@ -0,0 +1,18 @@
|
||||
module Rscons
|
||||
module Builders
|
||||
describe Preprocess do
|
||||
let(:env) {Environment.new}
|
||||
subject {Preprocess.new}
|
||||
|
||||
it "supports overriding CC construction variable" do
|
||||
subject.should_receive(:standard_build).with("Preprocess module.pp", "module.pp", ["my_cpp", "-E", "-o", "module.pp", "module.c"], ["module.c"], env, :cache)
|
||||
subject.run("module.pp", ["module.c"], :cache, env, "CC" => "my_cpp")
|
||||
end
|
||||
|
||||
it "supports overriding CPP_CMD construction variable" do
|
||||
subject.should_receive(:standard_build).with("Preprocess module.pp", "module.pp", ["my_cpp", "module.c"], ["module.c"], env, :cache)
|
||||
subject.run("module.pp", ["module.c"], :cache, env, "CPP_CMD" => ["my_cpp", "${_SOURCES}"])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
18
spec/rscons/builders/program_spec.rb
Normal file
18
spec/rscons/builders/program_spec.rb
Normal file
@ -0,0 +1,18 @@
|
||||
module Rscons
|
||||
module Builders
|
||||
describe Program do
|
||||
let(:env) {Environment.new}
|
||||
subject {Program.new}
|
||||
|
||||
it "supports overriding CC construction variable" do
|
||||
subject.should_receive(:standard_build).with("LD prog", "prog", ["sp-c++", "-o", "prog", "prog.o"], ["prog.o"], env, :cache)
|
||||
subject.run("prog", ["prog.o"], :cache, env, "CC" => "sp-c++")
|
||||
end
|
||||
|
||||
it "supports overriding LDCMD construction variable" do
|
||||
subject.should_receive(:standard_build).with("LD prog", "prog", ["special", "LD!", "prog.o"], ["prog.o"], env, :cache)
|
||||
subject.run("prog", ["prog.o"], :cache, env, "LDCMD" => ["special", "LD!", "${_SOURCES}"])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user