summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorLuis Lavena <luislavena@gmail.com>2008-11-25 15:14:24 -0200
committerLuis Lavena <luislavena@gmail.com>2008-11-25 15:14:24 -0200
commit58713f2b396435e1d48aa2e7fbd8b684feb0ef58 (patch)
tree2e1dbde21d94a2fec7d136a46ecf93f53a4d1a5a /spec
parent39ff6e444cdbb530d2b79d241680a304c43a92b4 (diff)
downloadrake-compiler-58713f2b396435e1d48aa2e7fbd8b684feb0ef58.tar.gz
Allow forced platforms for native gems.
This ease the integration path with CrossCompileTask.
Diffstat (limited to 'spec')
-rw-r--r--spec/lib/rake/extensiontask_spec.rb37
1 files changed, 25 insertions, 12 deletions
diff --git a/spec/lib/rake/extensiontask_spec.rb b/spec/lib/rake/extensiontask_spec.rb
index 082018a..a9fc8b2 100644
--- a/spec/lib/rake/extensiontask_spec.rb
+++ b/spec/lib/rake/extensiontask_spec.rb
@@ -45,6 +45,13 @@ describe Rake::ExtensionTask do
end
ext.gem_spec.should == spec
end
+
+ it 'should allow forcing of platform' do
+ ext = Rake::ExtensionTask.new('weird_extension') do |ext|
+ ext.platform = 'universal-foo-bar-10.5'
+ end
+ ext.platform.should == 'universal-foo-bar-10.5'
+ end
end
end
@@ -72,6 +79,10 @@ describe Rake::ExtensionTask do
it 'should look for C files pattern (.c)' do
@ext.source_pattern.should == "*.c"
end
+
+ it 'should default to current platform' do
+ @ext.platform.should == RUBY_PLATFORM
+ end
end
describe '(tasks)' do
@@ -84,6 +95,7 @@ describe Rake::ExtensionTask do
Rake::FileList.stub!(:[]).and_return(["ext/extension_one/source.c"])
@ext = Rake::ExtensionTask.new('extension_one')
@ext_bin = ext_bin('extension_one')
+ @platform = RUBY_PLATFORM
end
describe 'compile' do
@@ -116,39 +128,40 @@ describe Rake::ExtensionTask do
end
it "should depend on 'tmp/extension_one.{so,bundle}'" do
- Rake::Task["lib/#{@ext_bin}"].prerequisites.should include("tmp/extension_one/#{@ext_bin}")
+ Rake::Task["lib/#{@ext_bin}"].prerequisites.should include("tmp/#{@platform}/extension_one/#{@ext_bin}")
end
end
- describe 'tmp/extension_one/extension_one.{so,bundle}' do
+ describe 'tmp/{platform}/extension_one/extension_one.{so,bundle}' do
it 'should define as task' do
- Rake::Task.task_defined?("tmp/extension_one/#{@ext_bin}").should be_true
+ Rake::Task.task_defined?("tmp/#{@platform}/extension_one/#{@ext_bin}").should be_true
end
- it "should depend on 'tmp/extension_one/Makefile'" do
- Rake::Task["tmp/extension_one/#{@ext_bin}"].prerequisites.should include("tmp/extension_one/Makefile")
+ it "should depend on 'tmp/{platform}/extension_one/Makefile'" do
+ Rake::Task["tmp/#{@platform}/extension_one/#{@ext_bin}"].prerequisites.should include("tmp/#{@platform}/extension_one/Makefile")
end
it "should depend on 'ext/extension_one/source.c'" do
- Rake::Task["tmp/extension_one/#{@ext_bin}"].prerequisites.should include("ext/extension_one/source.c")
+ Rake::Task["tmp/#{@platform}/extension_one/#{@ext_bin}"].prerequisites.should include("ext/extension_one/source.c")
end
it "should not depend on 'ext/extension_one/source.h'" do
- Rake::Task["tmp/extension_one/#{@ext_bin}"].prerequisites.should_not include("ext/extension_one/source.h")
+ Rake::Task["tmp/#{@platform}/extension_one/#{@ext_bin}"].prerequisites.should_not include("ext/extension_one/source.h")
end
end
- describe 'tmp/extension_one/Makefile' do
+ describe 'tmp/{platform}/extension_one/Makefile' do
it 'should define as task' do
- Rake::Task.task_defined?('tmp/extension_one/Makefile').should be_true
+ puts Rake.application.tasks.inspect
+ Rake::Task.task_defined?("tmp/#{@platform}/extension_one/Makefile").should be_true
end
- it "should depend on 'tmp/extension_one'" do
- Rake::Task["tmp/extension_one/Makefile"].prerequisites.should include("tmp/extension_one")
+ it "should depend on 'tmp/{platform}/extension_one'" do
+ Rake::Task["tmp/#{@platform}/extension_one/Makefile"].prerequisites.should include("tmp/#{@platform}/extension_one")
end
it "should depend on 'ext/extension_one/extconf.rb'" do
- Rake::Task["tmp/extension_one/Makefile"].prerequisites.should include("ext/extension_one/extconf.rb")
+ Rake::Task["tmp/#{@platform}/extension_one/Makefile"].prerequisites.should include("ext/extension_one/extconf.rb")
end
end