1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/test/mkmf/test_flags.rb
nagachika 8aca3e79ee merge revision(s) r49482,r49487: [Backport #10821]
* lib/mkmf.rb (try_cppflags, try_cflags, try_ldflags): get rid of
	  interference by modifying global variables in have_devel? method.
	  [ruby-core:67962] [Bug #10821]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@49993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-17 16:56:55 +00:00

56 lines
1.7 KiB
Ruby

require_relative 'base'
class TestMkmf
class TestFlags < TestMkmf
def test_valid_warnflags
val = $extmk
warnflags = $warnflags
makefile = mkmf do
$extmk = false
self.class::CONFIG['warnflags'] = %w"-Wextra
-Wno-unused-parameter -Wno-parentheses -Wno-long-long
-Wno-missing-field-initializers -Werror=pointer-arith
-Werror=write-strings -Werror=declaration-after-statement
-Werror=shorten-64-to-32
-Werror-implicit-function-declaration
".join(' ')
self.class::CONFIG['GCC'] = 'yes'
init_mkmf(self.class::CONFIG)
configuration '.'
end
generated_flags = makefile.grep(/warnflags/).first[/^warnflags = (.*)$/, 1].split
assert_equal %w"
-Wextra -Wno-unused-parameter -Wno-parentheses
-Wno-long-long -Wno-missing-field-initializers -Wpointer-arith
-Wwrite-strings -Wdeclaration-after-statement
-Wshorten-64-to-32 -Wimplicit-function-declaration
", generated_flags
ensure
$warnflags = warnflags
$extmk = val
end
def test_try_ldflag_invalid_opt
assert_separately([], <<-'end;') #do
assert(!try_ldflags("nosuch.c"), TestMkmf::MKMFLOG)
assert(have_devel?, TestMkmf::MKMFLOG)
end;
end
def test_try_cflag_invalid_opt
assert_separately([], <<-'end;') #do
assert(!try_cflags("nosuch.c"), TestMkmf::MKMFLOG)
assert(have_devel?, TestMkmf::MKMFLOG)
end;
end
def test_try_cppflag_invalid_opt
assert_separately([], <<-'end;') #do
assert(!try_cppflags("nosuch.c"), TestMkmf::MKMFLOG)
assert(have_devel?, TestMkmf::MKMFLOG)
end;
end
end
end