boostorg / boostorg/gil

Image checksum tests failing for variant=release and x64 arch

未关闭
#49 19 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
cat/bug ext/io
主要语言
C++
星标
199
派生
171
平均合并
1 天 14 小时
30 天内合并 PR
10

描述

Adding `b2 variant=release` build jobs to AppVeyor in #46 which revealed that `test/image.cpp` is failing on **optimised x64 only** builds:

```
Checksum error in bgr121_basic_red_x (crc=2009802095 != 2137924839)
```

Here is the build https://ci.appveyor.com/project/stefanseefeld/gil/build/1.0.182-develop

This issue does not occur on Travis using GCC 5.4.1 and clang 4.2.1.
I also was not able to reproduce it locally, on Ubuntu with GCC 5.4.0.

## Failing checksum test cases

Modifying `test/image.cpp` to skip cases with missing CRC-s:

```
// Create a checksum for the given view and compare it with the reference checksum. Throw exception if different
void checksum_image_test::check_view_impl(const rgb8c_view_t& img_view, const string& name) {
+ if (_crc_map[name] == 0)
+ {
+ cerr << "no checksum, skipping " << name << endl;
+ return;
+ }
+
boost::crc_32_type checksum_acumulator;
checksum_acumulator.process_bytes(img_view.row_begin(0),img_view.size()*3);
```

allowed to iterate over the test cases in `test/gil_reference_checksums.txt` (remove failing entry, run the test, repeat until all remaining cases pass) and identify the failing ones:

```
bgr121_basic_red_x 7f6e24e7
bgr121_basic_white_x e4aaa1d3
bgr121_views_90cw 8565efd8
bgr121_views_flipped_ud 8f7f7d00
```

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。