#222 Test failures on non-i386 architectures

release_4.3.x
accepted
None
1
2013-12-01
2013-05-29
No

Hi.

It turns out that IT++ fails to build on several architectures other than i386 and amd64. Some build logs are:

https://buildd.debian.org/status/fetch.php?pkg=libitpp&arch=hurd-i386&ver=4.3.0-1&stamp=1369787672
https://buildd.debian.org/status/fetch.php?pkg=libitpp&arch=i386&ver=4.3.0-1&stamp=1369788407
https://buildd.debian.org/status/fetch.php?pkg=libitpp&arch=powerpc&ver=4.3.0-1&stamp=1369787623
https://buildd.debian.org/status/fetch.php?pkg=libitpp&arch=s390&ver=4.3.0-1&stamp=1369788761

It used to pass tests on these architectures, so there is some problem. I will investigate this further and report my observations.

Thanks.

Discussion

1 2 > >> (Page 1 of 2)
  • Kumar Appaiah

    Kumar Appaiah - 2013-05-29

    Oh, there's a failure on i386 as well! So this is a big problem. I'll try to find out why.

     
  • Kumar Appaiah

    Kumar Appaiah - 2013-05-29

    I investigated the blas test on s390. Sure enough, the blas dot product operation results in a result whose gap is 1.7763568394002505e-15, while the epsilon in the test code expects half of that, viz. 8.8817841970012523e-16. The previous IT++ versions used only the first four decimal points, so I am guessing that relaxing the accuracy for these architectures might be prudent.

    I will investigate other failures now.

     
  • Kumar Appaiah

    Kumar Appaiah - 2013-05-29

    I have been digging into the turbo decoder, and I haven't been able to figure out why this is happening. Here is what I have so far:

    On i386, for the turbo_test.cpp, after line 240, for i == 1, decoded_bits[9690] is 1 while input_bits is also 1. However, on amd64, decoded_bits[9690] is 0, and the test passes on amd64.

    I've tried to trace to see where this bug happens, but haven't had success.

     
  • Kumar Appaiah

    Kumar Appaiah - 2013-05-29

    Hi.

    I managed to get the tests to pass on i386 by using -O0 (no optimization). I have verified that both with g++-4.6 and g++-4.7 on i386, with -O1 or more, the Turbo test fails. This is strongly indicative of a compiler issue, but I can't proceed further. I will investigate the other architectures in the mean while.

     
  • Kumar Appaiah

    Kumar Appaiah - 2013-05-29

    I've checked powerpc as well. Again, -O0 works for the Multilateration test, and increasing the epsilon passes the blas_test as well.

    For Debian, I plan to fall back to -O0 on non-amd64 architectures, but I don't know whether to patch the BLAS test to use 8epsilon rather than the 4epsilon that is currently present.

    Advice would be welcome. Thanks!

     
  • Bogdan Cristea

    Bogdan Cristea - 2013-05-30

    Hi

    Turbo test failure could be handled by increasing the tol to 2 for those specific tests. Similarly for blas test, while for multilateration I have used instead a random generator with a fixed seed. Please check the version from master branch.

    thanks
    Bogdan

     
  • Bogdan Cristea

    Bogdan Cristea - 2013-05-30
    • assigned_to: Bogdan Cristea
    • Group: release_2.3.x --> release_4.3.x
     
  • Bogdan Cristea

    Bogdan Cristea - 2013-05-30

    Could you also enable the old tests (assuming that you are in the build folder, just below the sources root folder):

    cmake .. -DOLD_TESTS=on

    and run them (python is needed)

    ../extras/check_tests.py -r ../tests/ -w tests/

     
  • Kumar Appaiah

    Kumar Appaiah - 2013-05-30

    Thanks for doing this, Bogdan. I have tried the new version on s390, and Blas passes, but Multilateration still fails like this:

    [----------] 2 tests from Multilateration
    [ RUN      ] Multilateration.get_pos
    expect [-146.131 27.9231 155.39]
    actual [-207.451 -82.8256 115.453]
    /home/akumar/libitpp-4.3.0/gtests/multilateration_test.cpp:256: Failure
    Value of: point_eq(ms_pos, actual_ms_pos, eps)
      Actual: false
    Expected: true
    expect [247.147 195.538 45.9422]
    actual [87.2641 433.007 -125.462]
    /home/akumar/libitpp-4.3.0/gtests/multilateration_test.cpp:256: Failure
    Value of: point_eq(ms_pos, actual_ms_pos, eps)
      Actual: false
    Expected: true
    [  FAILED  ] Multilateration.get_pos (0 ms)
    

    All old tests pass on s390.

    I will now retry this on powerpc.

     
    Last edit: Kumar Appaiah 2013-05-30
  • Kumar Appaiah

    Kumar Appaiah - 2013-05-30

    On powerpc:

    [----------] 2 tests from Multilateration
    [ RUN      ] Multilateration.get_pos
    expect [-146.131 27.9231 155.39]
    actual [-207.451 -82.8256 115.453]
    /home/akumar/libitpp-4.3.0/gtests/multilateration_test.cpp:256: Failure
    Value of: point_eq(ms_pos, actual_ms_pos, eps)
      Actual: false
    Expected: true
    expect [247.147 195.538 45.9422]
    actual [87.2641 433.007 -125.462]
    /home/akumar/libitpp-4.3.0/gtests/multilateration_test.cpp:256: Failure
    Value of: point_eq(ms_pos, actual_ms_pos, eps)
      Actual: false
    Expected: true
    

    Again, all old tests pass successfully.

    I will finally try i386 and let you know.

     
  • Kumar Appaiah

    Kumar Appaiah - 2013-05-30

    With i386, all the new tests pass. However, the OLD turbo_test fails.

    Please let me know if there is something else I can do.

     
  • Bogdan Cristea

    Bogdan Cristea - 2013-05-30

    Hi
    Could you show me the build log in order to see the full error messages ?
    thanks
    Bogdan

     
  • Kumar Appaiah

    Kumar Appaiah - 2013-05-30

    Sure. I will regenerate and send the s390 and powerpc ones and send them in the next day.

     
  • Kumar Appaiah

    Kumar Appaiah - 2013-05-30

    Sure. I'll attach it to the bug report momentarily.

     
    Last edit: Kumar Appaiah 2013-05-31
  • Bogdan Cristea

    Bogdan Cristea - 2013-06-01

    Multilateration test failure could be safely ignored. I have corrected anyway this test and the changes are in master branch. Please let me know if now the tests pass.

     
  • Kumar Appaiah

    Kumar Appaiah - 2013-06-01

    Hi.

    The Multilateration test still fails. Attached are failed build logs. The tests pass if I comment out line 257 in the multilateration_test.cpp.

    Attached is the powerpc build log.

     
  • Bogdan Cristea

    Bogdan Cristea - 2013-06-02

    I have added a precompiller variable to remove those tests by default.

     
  • Kumar Appaiah

    Kumar Appaiah - 2013-06-02

    The build is now successful, so this bug has been fixed in the repository. Could you please let me know whether you can make a point release that fixes these bugs? If so, I can upload it to Debian.

    If a point release will take time, I can backport the fixes to make a release as well, so that shouldn't be a problem.

    Thanks.

     
    • Kumar Appaiah

      Kumar Appaiah - 2013-06-02

      Naturally, I meant that I can make a Debian-specific upload, if an official IT++ point release will take time.

       
  • Bogdan Cristea

    Bogdan Cristea - 2013-06-02

    Hi
    Making a release is not a difficult process, but I am willing to wait some time in order to obtain more feedback. You could generate a tar ball from master branch using the approach explained in IT++ wiki: https://sourceforge.net/p/itpp/wiki/Making%20an%20IT%2B%2B%20Release/

    regards
    Bogdan

     
    • Kumar Appaiah

      Kumar Appaiah - 2013-06-02

      Thanks Bogdan. For the purposes of Debian, I'll use your changes to make a Debian-specific release. Naturally, after your next release, I will be back in sync.

       
  • Bogdan Cristea

    Bogdan Cristea - 2013-06-02
    • status: open --> accepted
     
1 2 > >> (Page 1 of 2)

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks