Modify

Ticket #4776 (closed Patches: fixed)

Opened 7 years ago

Last modified 6 years ago

Mods to search_n test to show msvc failure

Reported by: Jim Bell <jim@…> Owned by: neilgroves
Milestone: Boost 1.46.0 Component: range
Version: Boost Development Trunk Severity: Problem
Keywords: Cc:

Description

The range trunk test matrix shows a couple stray failures for msvc tests. As you probably suspect, the problem seems to be in msvc's std lib.

These mods to the test prove it. (See attached patch.)

Attachments

test_range_search_n.patch (795 bytes) - added by Jim Bell <jim@…> 7 years ago.
test_range_search_n_v2.patch (810 bytes) - added by Jim Bell <jim@…> 7 years ago.

Change History

Changed 7 years ago by Jim Bell <jim@…>

comment:1 Changed 7 years ago by Jim Bell <jim@…>

Here's what it generates...

Running 1 test case...
unknown location(0): fatal error in "test_search_n": C:\Program Files\VS8\VC\INCLUDE\list(213) : Assertion failed: list iterator not dereferencable

..\libs\range\test\algorithm_test\search_n.cpp(34): last checkpoint: Pre-std: value: 9; n:2

*** 1 failure detected in test suite "Master Test Suite"

comment:2 Changed 7 years ago by Jim Bell <jim@…>

A more complete patch & results...

Running 1 test case...
unknown location(0): fatal error in "test_search_n": C:\Program Files\VS8\VC\INCLUDE\list(213) : Assertion failed: list iterator not dereferencable

..\libs\range\test\algorithm_test\search_n.cpp(34): last checkpoint: Pre-std: class std::list<int,class std::allocator<int> >; value: 9; n:2; size:9

*** 1 failure detected in test suite "Master Test Suite"

Changed 7 years ago by Jim Bell <jim@…>

comment:3 Changed 7 years ago by Jim Bell <jim@…>

Also, can this mode of failure for relevant platforms be marked as an "expected" failure, allowing the entire range library to not be marked as fail/yellow on the main matrix?

comment:4 Changed 7 years ago by Jim Bell <jim@…>

  • Severity changed from Optimization to Regression

comment:5 Changed 7 years ago by neilgroves

  • Status changed from new to assigned
  • Severity changed from Regression to Problem

I'm going to tackle this slightly differently. There isn't an "expected" failure of Boost.Range this is unfortunately an expected failure of the Visual C++ standard library as you have described. Hence it is misleading to make my Boost.Range test fail since the algorithm actually works. This test result should pass. I shall modify the test to check for the correct result rather than test for equivalence to the standard library implementation.

comment:6 Changed 7 years ago by Jim Bell <jim@…>

Excellent. A passing test is much more valuable than an explained failure.

I think it's very useful/helpful (and interesting) to see the standard library failure as my patch shows, and would love it to be kept around for the record, but if you can't find a place for it, I understand.

comment:7 Changed 6 years ago by neilgroves

I have altered the implementation as proposed earlier. It no longer uses the standard library implementation in either the core implementation or in the test. I shall monitor the progress on the trunk regression tests before a subsequent merge to the release branch.

comment:8 Changed 6 years ago by neilgroves

  • Status changed from assigned to closed
  • Resolution set to fixed
  • Milestone changed from To Be Determined to Boost 1.46.0
View

Add a comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
The resolution will be deleted. Next status will be 'reopened'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.