[ruby-core:81176] [Ruby trunk Bug#13542] MinGW trunk Builds - Summary of Issues

From: Greg.mpls@...
Date: 2017-05-15 14:41:48 UTC
List: ruby-core #81176
Issue #13542 has been updated by MSP-Greg (Greg L).


I'm now running both of the following with my daily builds:
```
make -ij1 "MSPECOPT=-Vfs command_line language library core optional/capi" test-rubyspec
```

and
```
..\mspec\bin\mspec -Vfs :command_line :language :library :core
```

I've added a results table to [Ruby MinGW Test Results](https://msp-greg.github.io/file.mingw_test-all.html)

Thanks to nobu and everyone for the MinGW / Windows fixes.


----------------------------------------
Bug #13542: MinGW trunk Builds - Summary of Issues
https://bugs.ruby-lang.org/issues/13542#change-64830

* Author: MSP-Greg (Greg L)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.5.0dev (2017-05-04 trunk 58568) [x64-mingw32]
* Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN
----------------------------------------
It appears that 64 bit MinGW trunk build results in `test-all` are stable .  The only inconsistent item is the number of reported assertions.  See [Ruby MinGW 'test-all' Results](https://msp-greg.github.io/file.mingw_test-all.html) for details.  The build system I use is available at [MSP-Greg / ruby-loco](https://github.com/MSP-Greg/ruby-loco).

Build & test-all Info / Issues:

Two patches are applied for building - [configure.in](https://github.com/MSP-Greg/ruby-loco/blob/master/patches/configure.in.patch) and [include/ruby/defines.h](https://github.com/MSP-Greg/ruby-loco/blob/master/patches/include_ruby_defines.h.patch).



Four items related to `test-all`, which are also detailed on the web page.

1. `test-all` SEGV - [`TestEnumerable#test_callcc`](https://github.com/ruby/ruby/blob/93a6178f5694fbd44afa1d65fd9491b861dde218/test/ruby/test_enum.rb#L559) - This causes a 'logged' segv, which is attached and listed [here](https://msp-greg.github.io/file.mingw_test-all.html#Seg-fault-TestEnumerable-test-callcc).  Note that the only difference between this assert and the next one is the array length, `[o, o].sort_by {|x| x }` vs `[o, o, o].sort_by {|x| x }`.  Checking blame, it was added for code coverage.  See [patch](https://github.com/MSP-Greg/ruby-loco/blob/master/patches/64/segv64-test-ruby-test_enum.patch).  I believe a 32 bit build requires a more extensive patch.

2. `test-all` 'silent' stop - [`TestSocket#test_closed_read`](https://github.com/ruby/ruby/blob/93a6178f5694fbd44afa1d65fd9491b861dde218/test/socket/test_socket.rb#L528), see [patch](https://github.com/MSP-Greg/ruby-loco/blob/master/patches/segv-test-socket-test_socket.patch).

3. Failures / Errors - 8 failures and 1 error are consistently generated.  Listed on [web page](https://msp-greg.github.io/file.mingw_test-all.html#Typical-Test-Results).

4. Readline & temp files - there may be issues with using [GNU Readline](https://cnswww.cns.cwru.edu/php/chet/readline/rltop.html) on Windows, but it passes all tests except [`TestReadline#test_input_metachar`](https://github.com/ruby/ruby/blob/93a6178f5694fbd44afa1d65fd9491b861dde218/test/readline/test_readline.rb#L420).  A [patch](https://github.com/MSP-Greg/ruby-loco/blob/master/patches/test-readline-test_readline.patch) is used for temp files, otherwise failures occur on Windows.

I realize that MinGW is considered a [Tier 2](https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/SupportedPlatforms) platform, and that these issues may have existed for quite some time.

Given that most mentions of Ruby and Windows also mention MinGW builds, I hope that, in time, these issues can be addressed.  Hopefully, consideration can be given to moving MinGW to a Tier 1 platform, along with appveyor testing of it, instead of mswin64.

Thanks for everyone's help. If there is anything else I can do, please let me know.

 
 

Since I've only identified issues, but not their causes, please close the following issues:

[13500 MinGW TestArity#test_proc_err_mess stops testing](https://bugs.ruby-lang.org/issues/13500)  - not an issue in current builds

[13496 Patches for MinGW builds](https://bugs.ruby-lang.org/issues/13496) - addressed here

[13485 MinGW TestEnumerable#test_callcc SEGV info](https://bugs.ruby-lang.org/issues/13485) - addressed here

[13441 building - GIT variable, ruby, rubygems tests](https://bugs.ruby-lang.org/issues/13441) - not an issue in current builds, commits in RubyGems

[13390 MinGW build test-all SEGV, issue in test framework or err](https://bugs.ruby-lang.org/issues/13390) - not an issue in current builds

[13298 mingw SEGV TestEnumerable#test_callcc (Assigned)](https://bugs.ruby-lang.org/issues/13298) - `Continuation` is sort of deprecated, addressed here

[13269 test/readline/test_readline.rb and mingw](https://bugs.ruby-lang.org/issues/13269) - addressed here, more an issue with Windows and temp files

[12595 Documentation](https://bugs.ruby-lang.org/issues/12595) - needn't be on the list...

---Files--------------------------------
segv_test_enum.txt (8.71 KB)


-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>

In This Thread

Prev Next