@@ -74,24 +74,40 @@ def test_shared_library
7474 config . stubs ( :library_name ) . returns ( 'foobar' )
7575 config . stubs ( :shared_ext ) . returns ( 'ext' )
7676 Gem . stubs ( :win_platform? ) . returns ( false )
77- assert_equal 'libfoobar.ext ' , config . shared_library
77+ assert_equal 'foobar.so ' , config . shared_library
7878 end
7979
8080 def test_shared_library_windows
8181 config . stubs ( :library_name ) . returns ( 'foobar' )
8282 config . stubs ( :shared_ext ) . returns ( 'ext' )
8383 Gem . stubs ( :win_platform? ) . returns ( true )
84- assert_equal 'foobar.ext ' , config . shared_library
84+ assert_equal 'foobar.so ' , config . shared_library
8585 end
8686
87- def test_tarball_filename
87+ def test_cargo_shared_library
8888 config . stubs ( :library_name ) . returns ( 'foobar' )
89- config . stubs ( :ruby_version ) . returns ( 'ruby12' )
90- config . stubs ( :target_os ) . returns ( 'c64' )
91- config . stubs ( :target_arch ) . returns ( 'z80' )
89+ config . stubs ( :shared_ext ) . returns ( 'ext' )
90+ Gem . stubs ( :win_platform? ) . returns ( false )
91+ assert_equal 'libfoobar.ext' , config . cargo_shared_library
92+ end
93+
94+ def test_cargo_shared_library_windows
95+ config . stubs ( :library_name ) . returns ( 'foobar' )
96+ config . stubs ( :shared_ext ) . returns ( 'ext' )
97+ Gem . stubs ( :win_platform? ) . returns ( true )
98+ assert_equal 'foobar.ext' , config . cargo_shared_library
99+ end
100+
101+ def test_tarball_filename
102+ stub_tarball_filename_params ( false )
92103 assert_equal 'foobar-0.1.2-ruby12-c64-z80.tar.gz' , config . tarball_filename ( '0.1.2' )
93104 end
94105
106+ def test_tarball_filename_with_static_extension
107+ stub_tarball_filename_params ( true )
108+ assert_equal 'foobar-0.1.2-ruby12-c64-z80-static.tar.gz' , config . tarball_filename ( '0.1.2' )
109+ end
110+
95111 def test_default_ruby_toplevel_dir
96112 FileUtils . stubs ( :pwd ) . returns ( '/tmp/foobar' )
97113 assert_equal '/tmp/foobar' , config . ruby_toplevel_dir
@@ -180,6 +196,21 @@ def test_toml_config
180196 assert_equal expected , config ( cargo_project_path : fixtures_path ( 'config' ) ) . toml_config
181197 end
182198
199+ def test_static_extension_sans_env_var
200+ ENV . stubs ( :key? ) . with ( 'RUBY_STATIC' ) . returns ( false )
201+ RbConfig ::CONFIG . stubs ( :[] ) . with ( 'ENABLE_SHARED' ) . returns ( 'yes' )
202+ refute config . static_extension?
203+
204+ RbConfig ::CONFIG . stubs ( :[] ) . with ( 'ENABLE_SHARED' ) . returns ( 'no' )
205+ assert config . static_extension?
206+ end
207+
208+ def test_static_extension_with_env_var
209+ ENV . stubs ( :key? ) . with ( 'RUBY_STATIC' ) . returns ( true )
210+ RbConfig ::CONFIG . stubs ( :[] ) . with ( 'ENABLE_SHARED' ) . returns ( 'yes' )
211+ assert config . static_extension?
212+ end
213+
183214 private
184215
185216 def config ( options = { } )
@@ -189,5 +220,13 @@ def config(options = {})
189220 def described_class
190221 Thermite ::Config
191222 end
223+
224+ def stub_tarball_filename_params ( static_extension )
225+ config . stubs ( :library_name ) . returns ( 'foobar' )
226+ config . stubs ( :ruby_version ) . returns ( 'ruby12' )
227+ config . stubs ( :target_os ) . returns ( 'c64' )
228+ config . stubs ( :target_arch ) . returns ( 'z80' )
229+ config . stubs ( :static_extension? ) . returns ( static_extension )
230+ end
192231 end
193232end
0 commit comments