testSpirit test failure with GCC 5.4

Issue #287 resolved
Carl Morgan created an issue

Using GTSAM 4.0 ( c21186c6212798e665da6b5015296713ddfe8c1d ) on Ubuntu Xenial 16.04 64-bit.

#!
Test project /home/cmorgan/projects/git/ext/gtsam-develop_upstream/build
        Start   1: testGlobalFunction
  1/230 Test   #1: testGlobalFunction .....................   Passed    0.00 sec
        Start   2: testSpirit
  2/230 Test   #2: testSpirit .............................***Failed    0.00 sec
/export/bulk/local-home/cmorgan/projects/git/ext/gtsam-develop_upstream/wrap/tests/testSpirit.cpp:129: Failure: "!isEigen" 
There were 1 failures

        Start   3: testClass
  3/230 Test   #3: testClass ..............................   Passed    0.00 sec
        Start   4: testMethod
  4/230 Test   #4: testMethod .............................   Passed    0.00 sec
.....
228/230 Test #228: testBetweenFactorEM ....................   Passed    0.00 sec
        Start 229: testTSAMFactors
229/230 Test #229: testTSAMFactors ........................   Passed    0.00 sec
        Start 230: testBiasedGPSFactor
230/230 Test #230: testBiasedGPSFactor ....................   Passed    0.00 sec

99% tests passed, 1 tests failed out of 230

Total Test time (real) =   3.18 sec

The following tests FAILED:
      2 - testSpirit (Failed)
Errors while running CTest

Comments (4)

  1. Carl Morgan reporter

    My belief is this is due to GCC w/ Boost Spirit and literal values.

    Line 121: wrap/tests/testSpirit.cpp

      Rule returnType_p =
          (basisType_p[assign_a(actual_return_type)][assign_a(isEigen, true)]) |
          (className_p[assign_a(actual_return_type)][assign_a(isEigen,false)]) |
          (eigenType_p[assign_a(actual_return_type)][assign_a(isEigen, true)]);
    

    I've ran various tests using non literals and the tests complete correctly.

    The only place that I can see in the non-test code base is Line 154: wrap/Module.cpp

      Rule forward_declaration_p =
          !(str_p("virtual")[assign_a(fwDec.isVirtual, true)])
          >> str_p("class")
          >> (*(basic.namespace_p >> str_p("::")) >> basic.className_p)[assign_a(fwDec.name)]
          >> ch_p(';')
    
  2. Log in to comment