Граф коммитов

32 Коммитов

Автор SHA1 Сообщение Дата
Jun Aruga 57459b83a9
mkmf: Add the extra option `--with-verbose` to enable verbose mode. (#7863)
This commit is to add an extra option to enable verbose mode (V=1) in the
generated `Makefile` at runtime of the Ruby to print compiler command lines by
the commands below when building native extensions. It's possible to enable the
verbose mode by setting the environment variable `MAKEFLAGS="V=1"`[1]
implemented in GNU make. However, I wanted to make a consistent user-interface
not depending on the specific make's implementation.

```
$ ruby /path/to/extconf.rb -- --with-verbose
```

You can also add the extra option via rake-compiler gem.

```
$ rake compiler -- --with-verbose
```

If the extra option is not given, the value of the
`RbConfig::CONFIG["MKMF_VERBOSE"]` enabled by the configure option below is
used.

```
$ ./configure --enable-mkmf-verbose
```

For the unit tests, updated the following files.

* The `test/mkmf/test_configuration.rb` was created to test the cases with the
  `configuration` method and this implementation.
* Updated the `TestMkmf#assert_separately` to set the extra
  arguments in `test/mkmf/base.rb`. Updated tests using the `assert_separately`.
* Added tests for `MakeMakefile#with_config` in the `test/mkmf/test_config.rb`.

[1] https://www.gnu.org/software/make/manual/html_node/Variables_002fRecursion.html

Fixes [Bug #19695]

Co-authored-by: Nobuyoshi Nakada <nobu@ruby-lang.org>
2023-05-29 10:09:32 +02:00
Takashi Kokubun af9fa16c96
Make sure super is called and fix teardown 2022-08-25 11:31:16 -07:00
Jeremy Evans ab3cb29bd9 Avoid defining the same test class in multiple files
Should fix issues with parallel testing sometimes not running all
tests.

This should be viewed skipping whitespace changes.

Fixes [Bug #18731]
2022-04-22 15:00:16 -07:00
Jeremy Evans e0b4599bba Fix keyword argument separation warnings in test 2019-08-30 12:39:31 -07:00
Nobuyoshi Nakada 1f0762ad21
Suppress messages from mkmf 2019-06-20 20:51:33 +09:00
nobu 2b894084ef test/mkmf/base.rb: use CC_WRAPPER same as the toplevel
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65774 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-17 01:42:30 +00:00
nobu 30d23ec903 multiple arguments to write
Make write methods of IO-like objects accept multiple arguments,
as well as IO#write.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-10-23 14:05:07 +00:00
naruse 3e92b635fb Add frozen_string_literal: false for all files
When you change this to true, you may need to add more tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 05:07:31 +00:00
nobu 7995eb43cb mkmf/base.rb: capture output
* test/mkmf/base.rb (TestMkmf::Base::Capture#write): capture
  output inside mkmf method.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-04 01:31:15 +00:00
nobu f6ed283fd5 mkmf/base.rb: clean up tmpdir
* test/mkmf/base.rb (TestMkmf#assert_separately): call teardown to
  clean up temporary directory.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-03-03 17:01:13 +00:00
nobu bca963220a mkmf/base.rb: fix constant scope
* test/mkmf/base.rb (TestMkmf::Base): fix constant scope for
  r49482.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-05 04:50:18 +00:00
nobu af5b7053f1 mkmf.rb: avoid interference
* 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/trunk@49482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-02-03 08:15:47 +00:00
nobu 0eed101a54 test/mkmf: $extmk in parallel test
* test/mkmf/base.rb, test/mkmf/test_config.rb: needs to set $extmk
  since worker processes in parallel test mode.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-04 07:03:07 +00:00
nobu 79ea4d627f * test/mkmf/test_config.rb (TestMkmf): fix superclass mismatch.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-11 12:12:15 +00:00
usa 2f20defa7a * test/mkmf/base.rb: class name conflict.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-11 10:23:12 +00:00
nobu 3d88196632 assertions.rb: allow proc
* lib/test/unit/assertions.rb (Test::Unit::Assertions#message):
  convert msg by call if it is a proc, as well as assert.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-08 07:02:37 +00:00
nobu c45d780b83 test/mkmf/base.rb: hide compiler output
* test/mkmf/base.rb (TestMkmf::Capture#reopen): reopen replaced IO
  too, to hide compiler output.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35593 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-08 06:50:05 +00:00
nobu d7655cc292 * test/mkmf/base.rb (TestMkmf#setup): remove uninitialized global variable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-03 14:30:08 +00:00
nobu 5c67392c95 * test/mkmf/base.rb (TestMkmf#teardown): remove meaningless assertion.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-03 14:30:05 +00:00
nobu 9102ee7be2 * test/mkmf: remove generated files and ensure nothing left.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-03 09:41:14 +00:00
drbrain 8b7ecdc11e * lib/mkmf.rb: Use MakeMakefile's rm_f to avoid conflict with Rake or
FileUtils.
* test/ruby/test_module.rb:  Hide MakeMakefile's inclusion in Object


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-30 00:57:24 +00:00
naruse 302b6f6e02 Don't break tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-29 08:42:13 +00:00
drbrain 194882cc40 * lib/mkmf.rb: Wrap mkmf.rb in module MakeMakefile to clean up Object
documentation.  [Ruby 1.9 - Feature #5658]
* ext/extmk.rb:  Use MakeMakefile::CONFIG instead of Object::CONFIG
* test/mkmf/base.rb:  ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33890 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-28 21:54:33 +00:00
nobu b794a2bd8c * configure.in (warnflags): add -Werror=implicit-function-declaration
if available.
* lib/mkmf.rb (init_mkmf): ignore warnings in mkmf tests.
* test/mkmf/base.rb (setup, teardown): restore config values.
* test/mkmf/test_flags.rb: split from test_find_executable.rb.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-01-15 02:57:36 +00:00
nobu 5cb9711323 * test/mkmf/base.rb (TestMkmf::FakeLog): capture output from mkmf.
* test/mkmf/test_find_executable.rb (test_find_executable):
  suppress meaningless diffrences for chkbuild.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30239 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-17 10:35:20 +00:00
nobu 61d197a62d * test/mkmf/base.rb (TestMkmf#config_value): extract macro value from
config.h.
* test/mkmf/test_sizeof.rb (TestMkmf::TestSizeof#test_sizeof_builtin),
 (TestMkmf::TestSizeof#test_sizeof_struct): more tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30161 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-10 09:12:33 +00:00
nobu 30e0f51a5d * lib/mkmf.rb (check_signedness): should use the prelude code.
[ruby-dev:42731]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-10 09:11:48 +00:00
nobu b38cc52c13 * lib/mkmf.rb (Logging.log_close): separate from Logging.logfile.
* test/mkmf/base.rb (TestMkmf::MKMFLOG): show mkmf.log at failures.
* test/mkmf/base.rb (TestMkmf#teardown): close log file for each tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30159 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-10 09:11:10 +00:00
nobu 5d8fd7f1ba * test/mkmf/base.rb (TestMkmf#setup): run quietly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30101 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-06 14:18:26 +00:00
nobu f1be083f09 * test/mkmf/base.rb: use $INCFLAGS to add -I option. [Bug#2387]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-26 02:42:24 +00:00
nobu f86f669cf3 * test/mkmf/base.rb (TestMkmf): was turned into a class, because
MiniUnit doesn't complain even if a testcase has no tests.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-06 04:30:15 +00:00
nobu a032b1bdb8 * test/mkmf/base.rb: split from test_sizeof.rb.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-06 04:14:50 +00:00