Issue #13542 has been updated by MSP-Greg (Greg L).


Saturday, I ran spec/mspec for the first time in a while, and today it was added to the ruby repo.  I'm having some issues integrating it into the build environment, but the following is the output from running `mspec :core` and `mspec :library`.  Since the tests use non-native windows commands, one must have the msys2 usr/bin folder in one's path.

Results have one failure.

```
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - :core
E:\GitHub\spec>..\mspec\bin\mspec :core
$ ruby E:/GitHub/mspec/bin/mspec-run :core
ruby 2.5.0dev (2017-05-07 trunk 58602) [x64-mingw32]

1)
Time#zone defaults to UTC when bad zones given FAILED
Expected 3600
 to equal 0

E:/GitHub/spec/core/time/zone_spec.rb:68:in `block (4 levels) in <top (required)>'
E:/GitHub/spec/core/time/zone_spec.rb:67:in `block (3 levels) in <top (required)>'
E:/GitHub/spec/core/time/zone_spec.rb:3:in `<top (required)>'
[| | ==================100%================== | 00:00:00]      1F      0E

1765 files, 17602 examples, 178151 expectations, 1 failure, 0 errors, 0 tagged


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - :library
E:\GitHub\spec>..\mspec\bin\mspec :library
$ ruby E:/GitHub/mspec/bin/mspec-run :library
ruby 2.5.0dev (2017-05-07 trunk 58602) [x64-mingw32]
[/ | ==================100%================== | 00:00:00]      0F      0E

1675 files, 4963 examples, 17447 expectations, 0 failures, 0 errors, 0 tagged
```

Also, for the last build (2017-05-07 trunk 58602), I was able to use `make -j3` instead of `make -j1`.


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

* 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>