summaryrefslogtreecommitdiff
path: root/test/mkmf/test_flags.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/mkmf/test_flags.rb')
-rw-r--r--test/mkmf/test_flags.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/mkmf/test_flags.rb b/test/mkmf/test_flags.rb
new file mode 100644
index 0000000000..3bb278071a
--- /dev/null
+++ b/test/mkmf/test_flags.rb
@@ -0,0 +1,35 @@
+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
+ end
+end