Some test cases fail for Orocos 2.1.0 RTT built with MinGW

Hi,

I just downloaded and Orocos 2.1.0 RTT and compiled it with MinGW GCC4.4.0 and boost 1.43. Compilation ran to completion without any errors (only some warnings because of missing -enable-auto-import flag) - great :O)

Then I tried to run all test cases from the tests folders and some of the tests failed. The following test failed:

enum_type_test function_test marshalling_test program_test property_loader_test property_marsh_test property_test scripting_test state_test types_test

I attached the console output of all tests that failed. Does this indicated that a MinGW built Orocos 2.1.0 does not work properly or does it indicate that I missed a configuration step before running the test cases?

Test output:

enum_type_test
Running 4 test cases...
rtt/tests/enum_type_test.cpp(83): fatal error in "testEnumIntConversion": critical check Types()->type("int") failed
rtt/tests/enum_type_test.cpp(121): fatal error in "testEnumStringConversion": critical check ts failed
 
 
function_test
Running 11 test cases...
rtt/tests/function_test.cpp(460): fatal error in "testSimpleReturnFunction": Parse error at line 1: Semantic error: Return type 'int' for function 'f
oo' is an unknown type.
rtt/tests/function_test.cpp(460): fatal error in "testOnlyExportFunction": Parse error at line 4: Semantic error: Return type 'int' for function 'foo
_ret' is an unknown type.
rtt/tests/function_test.cpp(460): fatal error in "testReturnExportFunction": Parse error at line 4: Semantic error: Return type 'int' for function 'f
oo_ret' is an unknown type.
rtt/tests/function_test.cpp(460): fatal error in "testCallFunction": Parse error at line 1: Semantic error: "int" is an unknown type...
rtt/tests/function_test.cpp(460): fatal error in "testFunctionStack": Parse error at line 2: Semantic error: "double" is an unknown type...
rtt/tests/function_test.cpp(460): fatal error in "testFunctionExportArgs": Parse error at line 1: Semantic error: "int" is an unknown type...
rtt/tests/function_test.cpp(460): fatal error in "testFunctionCallArgs": Parse error at line 1: Semantic error: "int" is an unknown type...
rtt/tests/function_test.cpp(460): fatal error in "testFunctionFail": Parse error at line 8: Semantic error: "bool" is an unknown type...
 
*** 8 failures detected in test suite "Master Test Suite"
 
main-test
does not produce any output
 
marshalling_test
Running 1 test case...
rtt/tests/marshalling_test.cpp(43): fatal error in "TestGetProvider": critical check sc failed
 
*** 1 failure detected in test suite "Master Test Suite"
 
program_test
Running 12 test cases...
rtt/tests/program_test.cpp(405): fatal error in "testParseProgram": Parse error at line 7: Fatal Semantic error: Cannot apply binary operation unknow
n_t == unknown_t.
rtt/tests/program_test.cpp(405): fatal error in "testProgramCondition": Parse error at line 23: Semantic error: "bool" is an unknown type...
rtt/tests/program_test.cpp(405): fatal error in "testProgramBreak": Parse error at line 3: Fatal Semantic error: Cannot apply binary operation unknow
n_t != unknown_t.
rtt/tests/program_test.cpp(405): fatal error in "testProgramAnd": Parse error at line 2: Fatal Semantic error: Cannot apply binary operation unknown_
t && unknown_t.
rtt/tests/program_test.cpp(405): fatal error in "testProgramTry": Parse error at line 3: Fatal Semantic error: Cannot apply binary operation unknown_
t && unknown_t.
rtt/tests/program_test.cpp(405): fatal error in "testProgramToProgram": Parse error at line 3: Fatal Semantic error: Cannot apply binary operation un
known_t == unknown_t.
rtt/tests/program_test.cpp(405): fatal error in "testProgramCallFoo": Parse error at line 2: Fatal Semantic error: Cannot apply unary operator "+" to
 unknown_t.
rtt/tests/program_test.cpp(405): fatal error in "testProgramDoFoo": Parse error at line 2: Fatal Semantic error: Cannot apply unary operator "+" to u
nknown_t.
rtt/tests/program_test.cpp(405): fatal error in "testSend": Parse error at line 6: Semantic error: "SendHandle" is an unknown type...
 
*** 9 failures detected in test suite "Master Test Suite"
 
property_loader_test
Running 4 test cases...
rtt/tests/property_loader_test.cpp(69): error in "testPropSaveLoad": check pl.configure(filename, &tc, true) failed
rtt/tests/property_loader_test.cpp(88): error in "testPropSaveLoad": check pl.configure(filename, &tc, true) failed
rtt/tests/property_loader_test.cpp(162): error in "testPropStoring": check tc.provides()->hasProperty("pdoubles") failed
rtt/tests/property_loader_test.cpp(168): error in "testPropStoring": check bag.size() == 3 failed [2 != 3]
rtt/tests/property_loader_test.cpp(170): error in "testPropStoring": check bag.find("pdoubles") failed
rtt/tests/property_loader_test.cpp(177): fatal error in "testPropStoring": critical check bagvector.ready() failed
 
*** 6 failures detected in test suite "Master Test Suite"
 
 
property_marsh_test
Running 3 test cases...
rtt/tests/property_marsh_test.cpp(114): fatal error in "testPropMarshVect": critical check bag.ready() failed
target: [[driveLimits='(unknown_t)'
]]
source: [[driveLimits='(unknown_t)'
]]
/rtt/tests/property_marsh_test.cpp(154): error in "testPropMarshVectLegacy": check refreshProperties( target, source) failed
rtt/tests/property_marsh_test.cpp(160): error in "testPropMarshVectLegacy": check p1->rvalue().size() == 6 failed [7 != 6]
rtt/tests/property_marsh_test.cpp(161): error in "testPropMarshVectLegacy": check p1->rvalue()[0] == 1 failed [1.234 != 1]
 
*** 4 failures detected in test suite "Master Test Suite"
 
 
property_test
Running 12 test cases...
rtt/tests/property_test.cpp(315): error in "testComposition": check pvd.getTypeInfo() != RTT::detail::DataSourceTypeInfo<RTT::detail::UnknownType>::g
etTypeInfo() failed
rtt/tests/property_test.cpp(318): error in "testComposition": check pvd.getTypeInfo()->composeType( pvd.getDataSource(), pvd2.getDataSource() ) faile
d
rtt/tests/property_test.cpp(322): error in "testComposition": check typeDecomposition( pvd.getDataSource(), bag.value() ) failed
rtt/tests/property_test.cpp(323): error in "testComposition": check pvd.getTypeInfo()->composeType( bag.getDataSource(), pvd2.getDataSource() ) faile
d
rtt/tests/property_test.cpp(324): error in "testComposition": check pvd == pvd2 failed
rtt/tests/property_test.cpp(343): error in "testNewDecomposition": check pvd.getTypeInfo() != RTT::detail::DataSourceTypeInfo<RTT::detail::UnknownTyp
e>::getTypeInfo() failed
rtt/tests/property_test.cpp(347): error in "testNewDecomposition": check propertyDecomposition( &pvd, bag.value() ) failed
rtt/tests/property_test.cpp(350): fatal error in "testNewDecomposition": critical check pvalue.ready() failed
 
*** 8 failures detected in test suite "Master Test Suite"
 
 
scripting_test
Running 1 test case...
rtt/tests/scripting_test.cpp(53): fatal error in "TestGetProvider": critical check sc failed
 
*** 1 failure detected in test suite "Master Test Suite"
 
state_test
Running 14 test cases...
rtt/tests/state_test.cpp(955): fatal error in "testParseState": Parse error at line 2: Semantic error: "int" is an unknown type...
rtt/tests/state_test.cpp(974): fatal error in "testStateFailure": critical check sm failed
rtt/tests/state_test.cpp(955): fatal error in "testStateChildren": Parse error at line 2: Semantic error: "double" is an unknown type...
rtt/tests/state_test.cpp(955): fatal error in "testStateTransitions": Parse error at line 3: Semantic error: "int" is an unknown type...
rtt/tests/state_test.cpp(955): fatal error in "testStateTransitionStop": Parse error at line 4: Fatal Semantic error: Cannot apply binary operation u
nknown_t == unknown_t.
rtt/tests/state_test.cpp(955): fatal error in "testStateGlobalTransitions": Parse error at line 2: Semantic error: "int" is an unknown type...
rtt/tests/state_test.cpp(955): fatal error in "testStateSubStateVars": Parse error at line 2: Semantic error: "double" is an unknown type...
rtt/tests/state_test.cpp(955): fatal error in "testStateSubStateCommands": Parse error at line 2: Semantic error: "double" is an unknown type...
rtt/tests/state_test.cpp(955): fatal error in "testStateOperationSignalTransition": Parse error at line 2: Semantic error: "double" is an unknown typ
e...
rtt/tests/state_test.cpp(955): fatal error in "testStateOperationSignalTransitionProgram": Parse error at line 2: Semantic error: "double" is an unkn
own type...
rtt/tests/state_test.cpp(955): fatal error in "testStateOperationSignalGuard": Parse error at line 2: Semantic error: "double" is an unknown type...
rtt/tests/state_test.cpp(955): fatal error in "testStateEvents": Parse error at line 2: Semantic error: "int" is an unknown type...
 
*** 12 failures detected in test suite "Master Test Suite"
 
types_test
crashes

Ruben Smits's picture

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

On Sunday 14 November 2010 17:22:55 uwe_kindler [..] ... wrote:
> Hi,
>
> I just downloaded and Orocos 2.1.0 RTT and compiled it with MinGW GCC4.4.0
> and boost 1.43. Compilation ran to completion without any errors (only
> some warnings because of missing -enable-auto-import flag) - great :O)
>
> Then I tried to run all test cases from the tests folders and some of the
> tests failed. The following test failed:
>
> enum_type_test
> function_test
> marshalling_test
> program_test
> property_loader_test
> property_marsh_test
> property_test
> scripting_test
> state_test
> types_test
>
> I attached the console output of all tests that failed. Does this indicated
> that a MinGW built Orocos 2.1.0 does not work properly or does it indicate
> that I missed a configuration step before running the test cases?

The test output suggests that the rtt-typekit is not loaded in the tests. Can
you run the tests seperately after increasing the orocos loglevel: export
ORO_LOGLEVEL=7, and check whether the basic types and operations are loaded
into the tests?

Ruben

> Test output:
>
>

> enum_type_test
> Running 4 test cases...
> rtt/tests/enum_type_test.cpp(83): fatal error in "testEnumIntConversion":
> critical check Types()->type("int") failed
> rtt/tests/enum_type_test.cpp(121): fatal error in
> "testEnumStringConversion": critical check ts failed
> 
> 
> function_test
> Running 11 test cases...
> rtt/tests/function_test.cpp(460): fatal error in
> "testSimpleReturnFunction": Parse error at line 1: Semantic error: Return
> type 'int' for function 'f oo' is an unknown type.
> rtt/tests/function_test.cpp(460): fatal error in "testOnlyExportFunction":
> Parse error at line 4: Semantic error: Return type 'int' for function 'foo
> _ret' is an unknown type.
> rtt/tests/function_test.cpp(460): fatal error in
> "testReturnExportFunction": Parse error at line 4: Semantic error: Return
> type 'int' for function 'f oo_ret' is an unknown type.
> rtt/tests/function_test.cpp(460): fatal error in "testCallFunction": Parse
> error at line 1: Semantic error: "int" is an unknown type...
> rtt/tests/function_test.cpp(460): fatal error in "testFunctionStack":
> Parse error at line 2: Semantic error: "double" is an unknown type...
> rtt/tests/function_test.cpp(460): fatal error in "testFunctionExportArgs":
> Parse error at line 1: Semantic error: "int" is an unknown type...
> rtt/tests/function_test.cpp(460): fatal error in "testFunctionCallArgs":
> Parse error at line 1: Semantic error: "int" is an unknown type...
> rtt/tests/function_test.cpp(460): fatal error in "testFunctionFail": Parse
> error at line 8: Semantic error: "bool" is an unknown type...
> 
> *** 8 failures detected in test suite "Master Test Suite"
> 
> main-test
> does not produce any output
> 
> marshalling_test
> Running 1 test case...
> rtt/tests/marshalling_test.cpp(43): fatal error in "TestGetProvider":
> critical check sc failed
> 
> *** 1 failure detected in test suite "Master Test Suite"
> 
> program_test
> Running 12 test cases...
> rtt/tests/program_test.cpp(405): fatal error in "testParseProgram": Parse
> error at line 7: Fatal Semantic error: Cannot apply binary operation
> unknow n_t == unknown_t.
> rtt/tests/program_test.cpp(405): fatal error in "testProgramCondition":
> Parse error at line 23: Semantic error: "bool" is an unknown type...
> rtt/tests/program_test.cpp(405): fatal error in "testProgramBreak": Parse
> error at line 3: Fatal Semantic error: Cannot apply binary operation
> unknow n_t != unknown_t.
> rtt/tests/program_test.cpp(405): fatal error in "testProgramAnd": Parse
> error at line 2: Fatal Semantic error: Cannot apply binary operation
> unknown_ t && unknown_t.
> rtt/tests/program_test.cpp(405): fatal error in "testProgramTry": Parse
> error at line 3: Fatal Semantic error: Cannot apply binary operation
> unknown_ t && unknown_t.
> rtt/tests/program_test.cpp(405): fatal error in "testProgramToProgram":
> Parse error at line 3: Fatal Semantic error: Cannot apply binary operation
> un known_t == unknown_t.
> rtt/tests/program_test.cpp(405): fatal error in "testProgramCallFoo": Parse
> error at line 2: Fatal Semantic error: Cannot apply unary operator "+" to
> unknown_t.
> rtt/tests/program_test.cpp(405): fatal error in "testProgramDoFoo": Parse
> error at line 2: Fatal Semantic error: Cannot apply unary operator "+" to
> u nknown_t.
> rtt/tests/program_test.cpp(405): fatal error in "testSend": Parse error at
> line 6: Semantic error: "SendHandle" is an unknown type...
> 
> *** 9 failures detected in test suite "Master Test Suite"
> 
> property_loader_test
> Running 4 test cases...
> rtt/tests/property_loader_test.cpp(69): error in "testPropSaveLoad": check
> pl.configure(filename, &tc, true) failed
> rtt/tests/property_loader_test.cpp(88): error in "testPropSaveLoad": check
> pl.configure(filename, &tc, true) failed
> rtt/tests/property_loader_test.cpp(162): error in "testPropStoring": check
> tc.provides()->hasProperty("pdoubles") failed
> rtt/tests/property_loader_test.cpp(168): error in "testPropStoring": check
> bag.size() == 3 failed [2 != 3] rtt/tests/property_loader_test.cpp(170):
> error in "testPropStoring": check bag.find("pdoubles") failed
> rtt/tests/property_loader_test.cpp(177): fatal error in "testPropStoring":
> critical check bagvector.ready() failed
> 
> *** 6 failures detected in test suite "Master Test Suite"
> 
> 
> property_marsh_test
> Running 3 test cases...
> rtt/tests/property_marsh_test.cpp(114): fatal error in "testPropMarshVect":
> critical check bag.ready() failed target: [[driveLimits='(unknown_t)'
> ]]
> source: [[driveLimits='(unknown_t)'
> ]]
> /rtt/tests/property_marsh_test.cpp(154): error in
> "testPropMarshVectLegacy": check refreshProperties( target, source) failed
> rtt/tests/property_marsh_test.cpp(160): error in
> "testPropMarshVectLegacy": check p1->rvalue().size() == 6 failed [7 != 6]
> rtt/tests/property_marsh_test.cpp(161): error in
> "testPropMarshVectLegacy": check p1->rvalue()[0] == 1 failed [1.234 != 1]
> 
> *** 4 failures detected in test suite "Master Test Suite"
> 
> 
> property_test
> Running 12 test cases...
> rtt/tests/property_test.cpp(315): error in "testComposition": check
> pvd.getTypeInfo() !=
> RTT::detail::DataSourceTypeInfo<RTT::detail::UnknownType>::g etTypeInfo()
> failed
> rtt/tests/property_test.cpp(318): error in "testComposition": check
> pvd.getTypeInfo()->composeType( pvd.getDataSource(), pvd2.getDataSource()
> ) faile d
> rtt/tests/property_test.cpp(322): error in "testComposition": check
> typeDecomposition( pvd.getDataSource(), bag.value() ) failed
> rtt/tests/property_test.cpp(323): error in "testComposition": check
> pvd.getTypeInfo()->composeType( bag.getDataSource(), pvd2.getDataSource()
> ) faile d
> rtt/tests/property_test.cpp(324): error in "testComposition": check pvd ==
> pvd2 failed rtt/tests/property_test.cpp(343): error in
> "testNewDecomposition": check pvd.getTypeInfo() !=
> RTT::detail::DataSourceTypeInfo<RTT::detail::UnknownTyp e>::getTypeInfo()
> failed
> rtt/tests/property_test.cpp(347): error in "testNewDecomposition": check
> propertyDecomposition( &pvd, bag.value() ) failed
> rtt/tests/property_test.cpp(350): fatal error in "testNewDecomposition":
> critical check pvalue.ready() failed
> 
> *** 8 failures detected in test suite "Master Test Suite"
> 
> 
> scripting_test
> Running 1 test case...
> rtt/tests/scripting_test.cpp(53): fatal error in "TestGetProvider":
> critical check sc failed
> 
> *** 1 failure detected in test suite "Master Test Suite"
> 
> state_test
> Running 14 test cases...
> rtt/tests/state_test.cpp(955): fatal error in "testParseState": Parse error
> at line 2: Semantic error: "int" is an unknown type...
> rtt/tests/state_test.cpp(974): fatal error in "testStateFailure": critical
> check sm failed rtt/tests/state_test.cpp(955): fatal error in
> "testStateChildren": Parse error at line 2: Semantic error: "double" is an
> unknown type... rtt/tests/state_test.cpp(955): fatal error in
> "testStateTransitions": Parse error at line 3: Semantic error: "int" is an
> unknown type... rtt/tests/state_test.cpp(955): fatal error in
> "testStateTransitionStop": Parse error at line 4: Fatal Semantic error:
> Cannot apply binary operation u nknown_t == unknown_t.
> rtt/tests/state_test.cpp(955): fatal error in "testStateGlobalTransitions":
> Parse error at line 2: Semantic error: "int" is an unknown type...
> rtt/tests/state_test.cpp(955): fatal error in "testStateSubStateVars":
> Parse error at line 2: Semantic error: "double" is an unknown type...
> rtt/tests/state_test.cpp(955): fatal error in "testStateSubStateCommands":
> Parse error at line 2: Semantic error: "double" is an unknown type...
> rtt/tests/state_test.cpp(955): fatal error in
> "testStateOperationSignalTransition": Parse error at line 2: Semantic
> error: "double" is an unknown typ e...
> rtt/tests/state_test.cpp(955): fatal error in
> "testStateOperationSignalTransitionProgram": Parse error at line 2:
> Semantic error: "double" is an unkn own type...
> rtt/tests/state_test.cpp(955): fatal error in
> "testStateOperationSignalGuard": Parse error at line 2: Semantic error:
> "double" is an unknown type... rtt/tests/state_test.cpp(955): fatal error
> in "testStateEvents": Parse error at line 2: Semantic error: "int" is an
> unknown type...
> 
> *** 12 failures detected in test suite "Master Test Suite"
> 
> types_test
> crashes
> 

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

> The test output suggests that the rtt-typekit is not loaded in the tests. Can
> you run the tests seperately after increasing the orocos loglevel: export
> ORO_LOGLEVEL=7, and check whether the basic types and operations are loaded
> into the tests?

Hi Ruben,

this is the output of the enum_type_test with ORO_LOGLEVEL=7. Any idea
what is wrong here or what I can do to fix this?

c:\CodingXP\Sources & 
Projects\orocos\build_orocos-toolchain-2.1.0_mingw4.4.0\tests>enum_type_test
0.000 [ Info   ][Logger] Successfully extracted environment variable 
ORO_LOGLEVEL
0.001 [ Info   ][Logger]  OROCOS version '2.1.0' compiled with GCC 
4.4.0.Orocos Logging Activated at level : [ Debug  ] ( 6 )
0.001 [ Info   ][Logger] Reference System Time is : 312649883102740 
ticks ( 312650 seconds ).
0.002 [ Info   ][Logger] Logging is relative to this time.
0.002 [ Debug  ][Logger] MainThread started.
0.002 [ Debug  ][Logger] Starting StartStopManager.
0.002 [ Info   ][Logger] No RTT_COMPONENT_PATH set.
0.003 [ Info   ][Logger] Loading plugin libraries from directory 
./plugins ...
0.003 [ Debug  ][Logger] Scanning file ./plugins/CMakeFiles ...not a 
regular file: ignored.
0.004 [ Debug  ][Logger] Scanning file ./plugins/cmake_install.cmake 
...not a .dll library: ignored.
0.004 [ Debug  ][Logger] Scanning file ./plugins/CTestTestfile.cmake 
...not a .dll library: ignored.
0.044 [ Debug  ][Logger] Scanning file ./plugins/libservice_plugin.dll 
...Found library libservice_plugin.dll
0.044 [ Info   ][Logger] Loaded RTT Plugin 'serviceplugin' from 
'service_plugin'
0.045 [ Debug  ][Logger] Scanning file ./plugins/libservice_plugin.dll.a 
...not a .dll library: ignored.
0.045 [ Debug  ][Logger] Scanning file ./plugins/Makefile ...not a .dll 
library: ignored.
0.045 [ Debug  ][Logger] No such directory: ./plugins/win32
0.046 [ Info   ][Logger] Loading plugin libraries from directory ./types ...
0.046 [ Debug  ][Logger] Scanning file ./types/CMakeFiles ...not a 
regular file: ignored.
0.046 [ Debug  ][Logger] Scanning file ./types/cmake_install.cmake 
...not a .dll library: ignored.
0.046 [ Debug  ][Logger] Scanning file ./types/CTestTestfile.cmake 
...not a .dll library: ignored.
0.091 [ Debug  ][Logger] Scanning file ./types/libtypekit_plugin.dll 
...Found library libtypekit_plugin.dll
0.091 [ Info   ][TypekitRepository::Import] Loading Typekit TypesPluginTest.
0.091 [ Info   ][Logger] Loaded RTT TypeKit/Transport 'TypesPluginTest' 
from 'typekit_plugin'
0.092 [ Debug  ][Logger] Scanning file ./types/libtypekit_plugin.dll.a 
...not a .dll library: ignored.
0.092 [ Debug  ][Logger] Scanning file ./types/Makefile ...not a .dll 
library: ignored.
0.092 [ Debug  ][Logger] No such directory: ./types/win32
Running 4 test cases...
0.094 [ Debug  ][Logger] LogLevel unaltered by test-runner.
Failed to register enum<-> int conversion because type int is not known 
in type system.
Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & 
Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(83): 
fatal error in "testEnumIntConversion": critical check 
Types()->type("int") failed
0.148 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known 
in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.148 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type 
System.
C:/CodingXP/Sources & 
Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(121): fatal 
error in "testEnumStringConversion": critical check ts failed
0.150 [ Info   ][Thread] Creating Thread for scheduler: 1
0.150 [ Info   ][TC] Thread created with scheduler type '1', priority 0 
and period 0.
0.151 [ Info   ][Thread] Creating Thread for scheduler: 1
0.152 [ Info   ][GlobalEngine] Thread created with scheduler type '1', 
priority 0 and period 0.
0.152 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known 
in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.152 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type 
System.
0.179 [ ERROR  ][TypeInfoName] Creating enum_type_test_int_save.cpf
No enum-to-string mapping defined for enum TheEnum. Converting to int.
Can not build Property of unknown_t.

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

On Tuesday 16 November 2010 10:43:26 Uwe Kindler wrote:
> > The test output suggests that the rtt-typekit is not loaded in the tests.
> > Can you run the tests seperately after increasing the orocos loglevel:
> > export ORO_LOGLEVEL=7, and check whether the basic types and operations
> > are loaded into the tests?
>
> Hi Ruben,
>
> this is the output of the enum_type_test with ORO_LOGLEVEL=7. Any idea
> what is wrong here or what I can do to fix this?
>
>

> c:\CodingXP\Sources &
> Projects\orocos\build_orocos-toolchain-2.1.0_mingw4.4.0\tests>enum_type_tes
> t 0.000 [ Info   ][Logger] Successfully extracted environment variable
> ORO_LOGLEVEL
> 0.001 [ Info   ][Logger]  OROCOS version '2.1.0' compiled with GCC
> 4.4.0.Orocos Logging Activated at level : [ Debug  ] ( 6 )
> 0.001 [ Info   ][Logger] Reference System Time is : 312649883102740
> ticks ( 312650 seconds ).
> 0.002 [ Info   ][Logger] Logging is relative to this time.
> 0.002 [ Debug  ][Logger] MainThread started.
> 0.002 [ Debug  ][Logger] Starting StartStopManager.
> 0.002 [ Info   ][Logger] No RTT_COMPONENT_PATH set.
 
On Linux, this line reads as:
 
"RTT_COMPONENT_PATH was set to ../rtt"
 
So the 'setenv' implementation on windows/mingw is not working. It is located 
in test-runner.hpp and called from test-runner.cpp. Could you change the '0' 
of setenv in test-runner.cpp to '1' (just for testing)?
 
As I wrote before, the tests assume that the build directory is a subdirectory
of the source directory. We need a way to fix this.
 
Peter

Ruben Smits's picture

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

On Tuesday 16 November 2010 10:43:26 Uwe Kindler wrote:
> > The test output suggests that the rtt-typekit is not loaded in the tests.
> > Can you run the tests seperately after increasing the orocos loglevel:
> > export ORO_LOGLEVEL=7, and check whether the basic types and operations
> > are loaded into the tests?
>
> Hi Ruben,
>
> this is the output of the enum_type_test with ORO_LOGLEVEL=7. Any idea
> what is wrong here or what I can do to fix this?

The output clearly shows that the typekit for the basic types is not loaded:
int -> unknown type. This is normally automatically done by the
deployer/taskbrowser, I have no idea why this is not happening in the test,
maybe someone else can shed some light on this problem.

Ruben

>

> c:\CodingXP\Sources &
> Projects\orocos\build_orocos-toolchain-2.1.0_mingw4.4.0\tests>enum_type_tes
> t 0.000 [ Info   ][Logger] Successfully extracted environment variable
> ORO_LOGLEVEL
> 0.001 [ Info   ][Logger]  OROCOS version '2.1.0' compiled with GCC
> 4.4.0.Orocos Logging Activated at level : [ Debug  ] ( 6 )
> 0.001 [ Info   ][Logger] Reference System Time is : 312649883102740
> ticks ( 312650 seconds ).
> 0.002 [ Info   ][Logger] Logging is relative to this time.
> 0.002 [ Debug  ][Logger] MainThread started.
> 0.002 [ Debug  ][Logger] Starting StartStopManager.
> 0.002 [ Info   ][Logger] No RTT_COMPONENT_PATH set.
> 0.003 [ Info   ][Logger] Loading plugin libraries from directory
> ./plugins ...
> 0.003 [ Debug  ][Logger] Scanning file ./plugins/CMakeFiles ...not a
> regular file: ignored.
> 0.004 [ Debug  ][Logger] Scanning file ./plugins/cmake_install.cmake
> ...not a .dll library: ignored.
> 0.004 [ Debug  ][Logger] Scanning file ./plugins/CTestTestfile.cmake
> ...not a .dll library: ignored.
> 0.044 [ Debug  ][Logger] Scanning file ./plugins/libservice_plugin.dll
> ...Found library libservice_plugin.dll
> 0.044 [ Info   ][Logger] Loaded RTT Plugin 'serviceplugin' from
> 'service_plugin'
> 0.045 [ Debug  ][Logger] Scanning file ./plugins/libservice_plugin.dll.a
> ...not a .dll library: ignored.
> 0.045 [ Debug  ][Logger] Scanning file ./plugins/Makefile ...not a .dll
> library: ignored.
> 0.045 [ Debug  ][Logger] No such directory: ./plugins/win32
> 0.046 [ Info   ][Logger] Loading plugin libraries from directory ./types
> ... 0.046 [ Debug  ][Logger] Scanning file ./types/CMakeFiles ...not a
> regular file: ignored.
> 0.046 [ Debug  ][Logger] Scanning file ./types/cmake_install.cmake
> ...not a .dll library: ignored.
> 0.046 [ Debug  ][Logger] Scanning file ./types/CTestTestfile.cmake
> ...not a .dll library: ignored.
> 0.091 [ Debug  ][Logger] Scanning file ./types/libtypekit_plugin.dll
> ...Found library libtypekit_plugin.dll
> 0.091 [ Info   ][TypekitRepository::Import] Loading Typekit
> TypesPluginTest. 0.091 [ Info   ][Logger] Loaded RTT TypeKit/Transport
> 'TypesPluginTest' from 'typekit_plugin'
> 0.092 [ Debug  ][Logger] Scanning file ./types/libtypekit_plugin.dll.a
> ...not a .dll library: ignored.
> 0.092 [ Debug  ][Logger] Scanning file ./types/Makefile ...not a .dll
> library: ignored.
> 0.092 [ Debug  ][Logger] No such directory: ./types/win32
> Running 4 test cases...
> 0.094 [ Debug  ][Logger] LogLevel unaltered by test-runner.
> Failed to register enum<-> int conversion because type int is not known
> in type system.
> Registered Type 'TheEnum' to the Orocos Type System.
> C:/CodingXP/Sources &
> Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(83):
> fatal error in "testEnumIntConversion": critical check
> Types()->type("int") failed
> 0.148 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
> Failed to register enum<-> int conversion because type int is not known
> in type system.
> Attempt to register Type 'TheEnum' twice to the Orocos Type System.
> 0.148 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type
> System.
> C:/CodingXP/Sources &
> Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(121):
> fatal error in "testEnumStringConversion": critical check ts failed
> 0.150 [ Info   ][Thread] Creating Thread for scheduler: 1
> 0.150 [ Info   ][TC] Thread created with scheduler type '1', priority 0
> and period 0.
> 0.151 [ Info   ][Thread] Creating Thread for scheduler: 1
> 0.152 [ Info   ][GlobalEngine] Thread created with scheduler type '1',
> priority 0 and period 0.
> 0.152 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
> Failed to register enum<-> int conversion because type int is not known
> in type system.
> Attempt to register Type 'TheEnum' twice to the Orocos Type System.
> 0.152 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type
> System.
> 0.179 [ ERROR  ][TypeInfoName] Creating enum_type_test_int_save.cpf
> No enum-to-string mapping defined for enum TheEnum. Converting to int.
> Can not build Property of unknown_t.
> 

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

> The output clearly shows that the typekit for the basic types is not loaded:
> int -> unknown type. This is normally automatically done by the
> deployer/taskbrowser, I have no idea why this is not happening in the test,
> maybe someone else can shed some light on this problem.

Is the typekit for the basic types a certain file or shared library that
must be located somewhere?

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

On Tue, Nov 16, 2010 at 1:02 PM, Uwe Kindler <uwe_kindler [..] ...> wrote:
>
>> The output clearly shows that the typekit for the basic types is not loaded:
>> int ->  unknown type. This is normally automatically done by the
>> deployer/taskbrowser, I have no idea why this is not happening in the test,
>> maybe someone else can shed some light on this problem.
>
> Is the typekit for the basic types a certain file or shared library that
> must be located somewhere?

It must be located in the 'types' subdirectory of your RTT_COMPONENT_PATH
environment variable.
Try to set your RTT_COMPONENT_PATH to the orocos-toolchain/rtt/build/rtt
directory, or set it to your tests directory (where the build result is)
and copy the typekit into the 'types' subdirectory. When you run 'make check',
this environment variable is set automatically for you, but not when you run
the tests manually.

I urgently need to document this expected hierarchy.

Peter
--
Orocos-Users mailing list
Orocos-Users [..] ...
http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

On Tue, Nov 16, 2010 at 11:34 PM, Peter Soetens
<peter [..] ...> wrote:
> On Tue, Nov 16, 2010 at 1:02 PM, Uwe Kindler <uwe_kindler [..] ...> wrote:
>>
>>> The output clearly shows that the typekit for the basic types is not loaded:
>>> int ->  unknown type. This is normally automatically done by the
>>> deployer/taskbrowser, I have no idea why this is not happening in the test,
>>> maybe someone else can shed some light on this problem.
>>
>> Is the typekit for the basic types a certain file or shared library that
>> must be located somewhere?
>
> It must be located in the 'types' subdirectory of your RTT_COMPONENT_PATH
> environment variable.
> Try to set your RTT_COMPONENT_PATH to the orocos-toolchain/rtt/build/rtt
> directory, or set it to your tests directory (where the build result is)
> and copy the typekit into the 'types' subdirectory. When you run 'make check',
> this environment variable is set automatically for you, but not when you run
> the tests manually.
>
> I urgently need to document this expected hierarchy.

Actually, I did: See
http://www.orocos.org/stable/documentation/rtt/v2.x/doc-xml/orocos-rtt-p...

Peter
--
Orocos-Users mailing list
Orocos-Users [..] ...
http://lists.mech.kuleuven.be/mailman/listinfo/orocos-users

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

Hi Peter,

thank you for your help so far but I'dont get the tests to work properly. If I run mingw32-make check (see http://www.orocos.org/forum/orocos/orocos-users/orocos-toolchain-211-min...).

In the tests directory there are two subdirectories: plugins and types.
The plugins directory contains the file libservice_plugin.dll and the types subdirectory contains the file libtypekit_plugin.dll. Is the libtypekit_plugin.dll the required typekit or do I need to put any other file or dll into the typekit subfolder.

If I set the RTT_COMPONENT_PATH to the tests folder then I get the following output for the enum_type_test:

c:\temp\tests>enum_type_test
0.000 [ Info   ][Logger] Successfully extracted environment variable ORO_LOGLEVEL
0.002 [ Info   ][Logger]  OROCOS version '2.1.1' compiled with GCC 4.4.0.Orocos Logging Activated at level : [ Debug  ] ( 6 )
0.005 [ Info   ][Logger] Reference System Time is : 43382319233869 ticks ( 43382.3 seconds ).
0.007 [ Info   ][Logger] Logging is relative to this time.
0.009 [ Debug  ][Logger] MainThread started.
0.011 [ Debug  ][Logger] Starting StartStopManager.
0.013 [ Info   ][Logger] RTT_COMPONENT_PATH was set to C:/temp/tests
0.016 [ Info   ][Logger] Loading plugin libraries from directory C:/temp/tests/plugins ...
0.018 [ Debug  ][Logger] Scanning file C:/temp/tests/plugins/CMakeFiles ...not a regular file: ignored.
0.020 [ Debug  ][Logger] Scanning file C:/temp/tests/plugins/cmake_install.cmake ...not a .dll library: ignored.
0.022 [ Debug  ][Logger] Scanning file C:/temp/tests/plugins/CTestTestfile.cmake ...not a .dll library: ignored.
0.025 [ Debug  ][Logger] Scanning file C:/temp/tests/plugins/libservice_plugin.dll ...Found library libservice_plugin.dll
0.027 [ Info   ][Logger] Loaded RTT Plugin 'serviceplugin' from 'service_plugin'
0.030 [ Debug  ][Logger] Scanning file C:/temp/tests/plugins/libservice_plugin.dll.a ...not a .dll library: ignored.
0.032 [ Debug  ][Logger] Scanning file C:/temp/tests/plugins/Makefile ...not a .dll library: ignored.
0.034 [ Debug  ][Logger] No such directory: C:/temp/tests/plugins/win32
0.036 [ Info   ][Logger] Loading plugin libraries from directory C:/temp/tests/types ...
0.038 [ Debug  ][Logger] Scanning file C:/temp/tests/types/CMakeFiles ...not a regular file: ignored.
0.041 [ Debug  ][Logger] Scanning file C:/temp/tests/types/cmake_install.cmake ...not a .dll library: ignored.
0.043 [ Debug  ][Logger] Scanning file C:/temp/tests/types/CTestTestfile.cmake ...not a .dll library: ignored.
0.046 [ Debug  ][Logger] Scanning file C:/temp/tests/types/libtypekit_plugin.dll ...Found library libtypekit_plugin.dll
0.048 [ Info   ][TypekitRepository::Import] Loading Typekit TypesPluginTest.
0.050 [ Info   ][Logger] Loaded RTT TypeKit/Transport 'TypesPluginTest' from 'typekit_plugin'
0.052 [ Debug  ][Logger] Scanning file C:/temp/tests/types/libtypekit_plugin.dll.a ...not a .dll library: ignored.
0.054 [ Debug  ][Logger] Scanning file C:/temp/tests/types/Makefile ...not a .dll library: ignored.
0.057 [ Debug  ][Logger] No such directory: C:/temp/tests/types/win32
Running 4 test cases...
0.061 [ Debug  ][Logger] LogLevel unaltered by test-runner.
Failed to register enum<-> int conversion because type int is not known in type system.
Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/tests/enum_type_test.cpp(83): fatal error in "testEnumIntConversion": critical check Types()->type("int") failed
0.077 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.083 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/tests/enum_type_test.cpp(121): fatal error in "testEnumStringConversion": critical check ts failed
0.089 [ Info   ][Thread] Creating Thread for scheduler: 1
0.091 [ Info   ][TC] Thread created with scheduler type '1', priority 0 and period 0.
0.094 [ Info   ][Thread] Creating Thread for scheduler: 1
0.096 [ Info   ][GlobalEngine] Thread created with scheduler type '1', priority 0 and period 0.
0.098 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.104 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
0.107 [ ERROR  ][TypeInfoName] Creating enum_type_test_int_save.cpf
No enum-to-string mapping defined for enum TheEnum. Converting to int.
Can not build Property of unknown_t.

The output shows that the plugin libservice_plugin.dll and the typekit libtypekit_plugin.dll are properly loaded. So does this mean that another typekit plugin is missing or does it indicate that something is not working properly? Do I need to copy any other file to the typekit directory?

Uwe

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

Hi Peter,

thank you for your help so far but I'dont get the tests to work properly. If I run mingw32-make check (see http://www.orocos.org/forum/orocos/orocos-users/orocos-toolchain-211-mingw-test-output) the same tests fail.

In the tests directory there are two subdirectories: plugins and types. The plugins directory contains the file libservice_plugin.dll and the types subdirectory contains the file libtypekit_plugin.dll. Is the libtypekit_plugin.dll the required typekit or do I need to put any other file or dll into the typekit subfolder.

If I set the RTT_COMPONENT_PATH to the tests folder then I get the following output for the enum_type_test:

c:\temp\tests>enum_type_test
0.000 [ Info   ][Logger] Successfully extracted environment variable ORO_LOGLEVEL
0.002 [ Info   ][Logger]  OROCOS version '2.1.1' compiled with GCC 4.4.0.Orocos Logging Activated at level : [ Debug  ] ( 6 )
0.005 [ Info   ][Logger] Reference System Time is : 43382319233869 ticks ( 43382.3 seconds ).
0.007 [ Info   ][Logger] Logging is relative to this time.
0.009 [ Debug  ][Logger] MainThread started.
0.011 [ Debug  ][Logger] Starting StartStopManager.
0.013 [ Info   ][Logger] RTT_COMPONENT_PATH was set to C:/temp/tests
0.016 [ Info   ][Logger] Loading plugin libraries from directory C:/temp/tests/plugins ...
0.018 [ Debug  ][Logger] Scanning file C:/temp/tests/plugins/CMakeFiles ...not a regular file: ignored.
0.020 [ Debug  ][Logger] Scanning file C:/temp/tests/plugins/cmake_install.cmake ...not a .dll library: ignored.
0.022 [ Debug  ][Logger] Scanning file C:/temp/tests/plugins/CTestTestfile.cmake ...not a .dll library: ignored.
0.025 [ Debug  ][Logger] Scanning file C:/temp/tests/plugins/libservice_plugin.dll ...Found library libservice_plugin.dll
0.027 [ Info   ][Logger] Loaded RTT Plugin 'serviceplugin' from 'service_plugin'
0.030 [ Debug  ][Logger] Scanning file C:/temp/tests/plugins/libservice_plugin.dll.a ...not a .dll library: ignored.
0.032 [ Debug  ][Logger] Scanning file C:/temp/tests/plugins/Makefile ...not a .dll library: ignored.
0.034 [ Debug  ][Logger] No such directory: C:/temp/tests/plugins/win32
0.036 [ Info   ][Logger] Loading plugin libraries from directory C:/temp/tests/types ...
0.038 [ Debug  ][Logger] Scanning file C:/temp/tests/types/CMakeFiles ...not a regular file: ignored.
0.041 [ Debug  ][Logger] Scanning file C:/temp/tests/types/cmake_install.cmake ...not a .dll library: ignored.
0.043 [ Debug  ][Logger] Scanning file C:/temp/tests/types/CTestTestfile.cmake ...not a .dll library: ignored.
0.046 [ Debug  ][Logger] Scanning file C:/temp/tests/types/libtypekit_plugin.dll ...Found library libtypekit_plugin.dll
0.048 [ Info   ][TypekitRepository::Import] Loading Typekit TypesPluginTest.
0.050 [ Info   ][Logger] Loaded RTT TypeKit/Transport 'TypesPluginTest' from 'typekit_plugin'
0.052 [ Debug  ][Logger] Scanning file C:/temp/tests/types/libtypekit_plugin.dll.a ...not a .dll library: ignored.
0.054 [ Debug  ][Logger] Scanning file C:/temp/tests/types/Makefile ...not a .dll library: ignored.
0.057 [ Debug  ][Logger] No such directory: C:/temp/tests/types/win32
Running 4 test cases...
0.061 [ Debug  ][Logger] LogLevel unaltered by test-runner.
Failed to register enum<-> int conversion because type int is not known in type system.
Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/tests/enum_type_test.cpp(83): fatal error in "testEnumIntConversion": critical check Types()->type("int") failed
0.077 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.083 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/tests/enum_type_test.cpp(121): fatal error in "testEnumStringConversion": critical check ts failed
0.089 [ Info   ][Thread] Creating Thread for scheduler: 1
0.091 [ Info   ][TC] Thread created with scheduler type '1', priority 0 and period 0.
0.094 [ Info   ][Thread] Creating Thread for scheduler: 1
0.096 [ Info   ][GlobalEngine] Thread created with scheduler type '1', priority 0 and period 0.
0.098 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.104 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
0.107 [ ERROR  ][TypeInfoName] Creating enum_type_test_int_save.cpf
No enum-to-string mapping defined for enum TheEnum. Converting to int.
Can not build Property of unknown_t.

The output shows that the plugin libservice_plugin.dll and the typekit libtypekit_plugin.dll are properly loaded. So does this mean that another typekit plugin is missing or does it indicate that something is not working properly? Do I need to copy any other file to the typekit directory?

Uwe

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

On Wednesday 17 November 2010 08:03:37 uwe_kindler [..] ... wrote:
> Hi Peter,
>
> thank you for your help so far but I'dont get the tests to work properly.
> If I run mingw32-make check (see
> http://www.orocos.org/forum/orocos/orocos-users/orocos-toolchain-211-mingw
> -test-output).
>
> In the tests directory there are two subdirectories: plugins and types.
> The plugins directory contains the file libservice_plugin.dll and the types
> subdirectory contains the file libtypekit_plugin.dll. Is the
> libtypekit_plugin.dll the required typekit or do I need to put any other
> file or dll into the typekit subfolder.

The libtypekit_plugin.dll is a *test* plugin. The *real* one is named
librtt-typekit-win32.dll

Try to put that one in the build/tests/types directory, instead of in the
build/tests directory. I don't understand why the default is not working for
you. Maybe we assume a certain directory structure when running the tests,
like having the build directory as a subdir of the rtt directory.

Peter

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

Ah, we are getting closer to a solution.

This was also my first idea after running the tests for the first time. But the logoutput states that librtt-typekit-win32.dll is not a valid plugin - the 'loadRTTPlugin' function was not found in this dll. Here is the log output from enum_type_test with librtt-typekit-win32.dll copied into types folder:

0.244 [ Debug  ][Logger] Scanning file c:/temp/tests/types/librtt-typekit-win32.dll ...Found library librtt-typekit-win32.dll
0.245 [ ERROR  ][Logger] Not a plugin: "loadRTTPlugin": Die angegebene Prozedur wurde nicht gefunden.

Here is the complete log output:

c:\temp\tests>enum_type_test
0.000 [ Info   ][Logger] Successfully extracted environment variable ORO_LOGLEVEL
0.001 [ Info   ][Logger]  OROCOS version '2.1.1' compiled with GCC 4.4.0.Orocos Logging Activated at level : [ Debug  ] ( 6 )
0.002 [ Info   ][Logger] Reference System Time is : 49301586713953 ticks ( 49301.6 seconds ).
0.002 [ Info   ][Logger] Logging is relative to this time.
0.002 [ Debug  ][Logger] MainThread started.
0.003 [ Debug  ][Logger] Starting StartStopManager.
0.003 [ Info   ][Logger] RTT_COMPONENT_PATH was set to c:/temp/tests
0.003 [ Info   ][Logger] Loading plugin libraries from directory c:/temp/tests/plugins ...
0.004 [ Debug  ][Logger] Scanning file c:/temp/tests/plugins/CMakeFiles ...not a regular file: ignored.
0.004 [ Debug  ][Logger] Scanning file c:/temp/tests/plugins/cmake_install.cmake ...not a .dll library: ignored.
0.004 [ Debug  ][Logger] Scanning file c:/temp/tests/plugins/CTestTestfile.cmake ...not a .dll library: ignored.
0.083 [ Debug  ][Logger] Scanning file c:/temp/tests/plugins/libservice_plugin.dll ...Found library libservice_plugin.dll
0.083 [ Info   ][Logger] Loaded RTT Plugin 'serviceplugin' from 'service_plugin'
0.084 [ Debug  ][Logger] Scanning file c:/temp/tests/plugins/libservice_plugin.dll.a ...not a .dll library: ignored.
0.084 [ Debug  ][Logger] Scanning file c:/temp/tests/plugins/Makefile ...not a .dll library: ignored.
0.085 [ Debug  ][Logger] No such directory: c:/temp/tests/plugins/win32
0.085 [ Info   ][Logger] Loading plugin libraries from directory c:/temp/tests/types ...
0.085 [ Debug  ][Logger] Scanning file c:/temp/tests/types/CMakeFiles ...not a regular file: ignored.
0.086 [ Debug  ][Logger] Scanning file c:/temp/tests/types/cmake_install.cmake ...not a .dll library: ignored.
0.086 [ Debug  ][Logger] Scanning file c:/temp/tests/types/CTestTestfile.cmake ...not a .dll library: ignored.
0.244 [ Debug  ][Logger] Scanning file c:/temp/tests/types/librtt-typekit-win32.dll ...Found library librtt-typekit-win32.dll
0.245 [ ERROR  ][Logger] Not a plugin: "loadRTTPlugin": Die angegebene Prozedur wurde nicht gefunden.
0.280 [ Debug  ][Logger] Scanning file c:/temp/tests/types/libtypekit_plugin.dll ...Found library libtypekit_plugin.dll
0.280 [ Info   ][TypekitRepository::Import] Loading Typekit TypesPluginTest.
0.281 [ Info   ][Logger] Loaded RTT TypeKit/Transport 'TypesPluginTest' from 'typekit_plugin'
0.281 [ Debug  ][Logger] Scanning file c:/temp/tests/types/libtypekit_plugin.dll.a ...not a .dll library: ignored.
0.281 [ Debug  ][Logger] Scanning file c:/temp/tests/types/Makefile ...not a .dll library: ignored.
0.282 [ Debug  ][Logger] No such directory: c:/temp/tests/types/win32
Running 4 test cases...
0.283 [ Debug  ][Logger] LogLevel unaltered by test-runner.
Failed to register enum<-> int conversion because type int is not known in type system.
Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/tests/enum_type_test.cpp(83): fatal error in "testEnumIntConversion": critical check Types()->type("int") failed
0.345 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.346 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/tests/enum_type_test.cpp(121): fatal error in "testEnumStringConversion": critical check ts failed
0.380 [ Info   ][Thread] Creating Thread for scheduler: 1
0.380 [ Info   ][TC] Thread created with scheduler type '1', priority 0 and period 0.
0.382 [ Info   ][Thread] Creating Thread for scheduler: 1
0.382 [ Info   ][GlobalEngine] Thread created with scheduler type '1', priority 0 and period 0.
0.383 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.383 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
0.413 [ ERROR  ][TypeInfoName] Creating enum_type_test_int_save.cpf
No enum-to-string mapping defined for enum TheEnum. Converting to int.
Can not build Property of unknown_t.

So maybe the plugin function loadRTTPlugin is not exported properly for this DLL?

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

Ah, we are getting closer to a solution.

This was also my first idea after running the tests for the first time. But the logoutput states that librtt-typekit-win32.dll is not a valid plugin - the 'loadRTTPlugin' function was not found in this dll. Here is the log output from enum_type_test with librtt-typekit-win32.dll copied into types folder:

0.244 [ Debug  ][Logger] Scanning file c:/temp/tests/types/librtt-typekit-win32.dll ...Found library librtt-typekit-win32.dll
0.245 [ ERROR  ][Logger] Not a plugin: "loadRTTPlugin": Die angegebene Prozedur wurde nicht gefunden.

Here is the complete log output:

c:\temp\tests>enum_type_test
0.000 [ Info   ][Logger] Successfully extracted environment variable ORO_LOGLEVEL
0.001 [ Info   ][Logger]  OROCOS version '2.1.1' compiled with GCC 4.4.0.Orocos Logging Activated at level : [ Debug  ] ( 6 )
0.002 [ Info   ][Logger] Reference System Time is : 49301586713953 ticks ( 49301.6 seconds ).
0.002 [ Info   ][Logger] Logging is relative to this time.
0.002 [ Debug  ][Logger] MainThread started.
0.003 [ Debug  ][Logger] Starting StartStopManager.
0.003 [ Info   ][Logger] RTT_COMPONENT_PATH was set to c:/temp/tests
0.003 [ Info   ][Logger] Loading plugin libraries from directory c:/temp/tests/plugins ...
0.004 [ Debug  ][Logger] Scanning file c:/temp/tests/plugins/CMakeFiles ...not a regular file: ignored.
0.004 [ Debug  ][Logger] Scanning file c:/temp/tests/plugins/cmake_install.cmake ...not a .dll library: ignored.
0.004 [ Debug  ][Logger] Scanning file c:/temp/tests/plugins/CTestTestfile.cmake ...not a .dll library: ignored.
0.083 [ Debug  ][Logger] Scanning file c:/temp/tests/plugins/libservice_plugin.dll ...Found library libservice_plugin.dll
0.083 [ Info   ][Logger] Loaded RTT Plugin 'serviceplugin' from 'service_plugin'
0.084 [ Debug  ][Logger] Scanning file c:/temp/tests/plugins/libservice_plugin.dll.a ...not a .dll library: ignored.
0.084 [ Debug  ][Logger] Scanning file c:/temp/tests/plugins/Makefile ...not a .dll library: ignored.
0.085 [ Debug  ][Logger] No such directory: c:/temp/tests/plugins/win32
0.085 [ Info   ][Logger] Loading plugin libraries from directory c:/temp/tests/types ...
0.085 [ Debug  ][Logger] Scanning file c:/temp/tests/types/CMakeFiles ...not a regular file: ignored.
0.086 [ Debug  ][Logger] Scanning file c:/temp/tests/types/cmake_install.cmake ...not a .dll library: ignored.
0.086 [ Debug  ][Logger] Scanning file c:/temp/tests/types/CTestTestfile.cmake ...not a .dll library: ignored.
0.244 [ Debug  ][Logger] Scanning file c:/temp/tests/types/librtt-typekit-win32.dll ...Found library librtt-typekit-win32.dll
0.245 [ ERROR  ][Logger] Not a plugin: "loadRTTPlugin": Die angegebene Prozedur wurde nicht gefunden.
0.280 [ Debug  ][Logger] Scanning file c:/temp/tests/types/libtypekit_plugin.dll ...Found library libtypekit_plugin.dll
0.280 [ Info   ][TypekitRepository::Import] Loading Typekit TypesPluginTest.
0.281 [ Info   ][Logger] Loaded RTT TypeKit/Transport 'TypesPluginTest' from 'typekit_plugin'
0.281 [ Debug  ][Logger] Scanning file c:/temp/tests/types/libtypekit_plugin.dll.a ...not a .dll library: ignored.
0.281 [ Debug  ][Logger] Scanning file c:/temp/tests/types/Makefile ...not a .dll library: ignored.
0.282 [ Debug  ][Logger] No such directory: c:/temp/tests/types/win32
Running 4 test cases...
0.283 [ Debug  ][Logger] LogLevel unaltered by test-runner.
Failed to register enum<-> int conversion because type int is not known in type system.
Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/tests/enum_type_test.cpp(83): fatal error in "testEnumIntConversion": critical check Types()->type("int") failed
0.345 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.346 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/tests/enum_type_test.cpp(121): fatal error in "testEnumStringConversion": critical check ts failed
0.380 [ Info   ][Thread] Creating Thread for scheduler: 1
0.380 [ Info   ][TC] Thread created with scheduler type '1', priority 0 and period 0.
0.382 [ Info   ][Thread] Creating Thread for scheduler: 1
0.382 [ Info   ][GlobalEngine] Thread created with scheduler type '1', priority 0 and period 0.
0.383 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.383 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
0.413 [ ERROR  ][TypeInfoName] Creating enum_type_test_int_save.cpf
No enum-to-string mapping defined for enum TheEnum. Converting to int.
Can not build Property of unknown_t.

So maybe the plugin function loadRTTPlugin is not exported properly for this DLL?

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

On Wednesday 17 November 2010 09:58:40 uwe_kindler [..] ... wrote:
> Ah, we are getting closer to a solution.
>
> This was also my first idea after running the tests for the first time. But
> the logoutput states that librtt-typekit-win32.dll is not a valid plugin -
> the 'loadRTTPlugin' function was not found in this dll. Here is the log
> output from enum_type_test with librtt-typekit-win32.dll copied into types
> folder:
>
>

> 0.244 [ Debug  ][Logger] Scanning file
> c:/temp/tests/types/librtt-typekit-win32.dll ...Found library
> librtt-typekit-win32.dll 0.245 [ ERROR  ][Logger] Not a plugin:
> "loadRTTPlugin": Die angegebene Prozedur wurde nicht gefunden. 

That's a problem: See rtt-config.h

  // Win32 and NOT GNU
# if defined( WIN32 ) && !defined ( __MINGW32__ )
#  if defined(RTT_DLL_EXPORT)
#   define RTT_API    __declspec(dllexport)
#   define RTT_EXPORT __declspec(dllexport)
#   define RTT_HIDE   
#  else
#   define RTT_API	 __declspec(dllimport)
#   define RTT_EXPORT __declspec(dllexport)
#   define RTT_HIDE 
#  endif
# else
#  define RTT_API
#  define RTT_EXPORT
#  define RTT_HIDE
# endif
#endif

Why the !defined( __MINGW32__ ) ?? We drop the RTT_EXPORT decoration, which is
absolutely necessary for plugins to work (all/only plugin functions are
decorated with that). Not that this decoration is independent from the
RTT_DLL_EXPORT flag.

You could at least test with adding:

# if defined ( __MINGW32__ )
# define RTT_EXPORT __declspec(dllexport)
# endif

Peter

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

I think !defined( __MINGW32__ ) is based on Orocos 1x where I had some trouble with missing exports. The safest way for MinGW builts to export all symbols is the linker option -export-all-symbols. And this optin only works properly if __declspec(dllexport) is not used.

I did a quick search in all files of Orocos 2.1.1 for export-all-symbols and could not find anything. So it seems that this option is missing or was dropped for MinGW builds for some reason.

I will try to add export-all-symbols manually and rebuild everything.

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

I think !defined( __MINGW32__ ) is based on Orocos 1x where I had some trouble with missing exports. The safest way for MinGW builts to export all symbols is the linker option -export-all-symbols. And this optin only works properly if __declspec(dllexport) is not used.

I did a quick search in all files of Orocos 2.1.1 for export-all-symbols and could not find anything. So it seems that this option is missing or was dropped for MinGW builds for some reason.

I will try to add export-all-symbols manually and rebuild everything.

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

On Wednesday 17 November 2010 11:07:17 uwe_kindler [..] ... wrote:
> I think !defined( __MINGW32__ ) is based on Orocos 1x where I had some
> trouble with missing exports.

Since we're building fine on Visual Studio, maybe you should just drop the
!defined check ?

Peter

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

I dropped the !defined( __MINGW32__ ) in rtt-config.h and that is the result:

Linking CXX shared library librtt-scripting-win32.dll
Info: resolving vtable for RTT::internal::bad_assignment by linking to __imp___ZTVN3RTT8internal14bad_assignmentE (auto-import)
Info: resolving vtable for RTT::OperationInterfacePart by linking to __imp___ZTVN3RTT22OperationInterfacePartE (auto-import)
Creating library file: librtt-scripting-win32.dll.a
c:/codingxp/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line.
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.
CMakeFiles\rtt-scripting-win32_plugin.dir\Parser.cpp.obj:C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/rtt/scripting/Parser.cpp:60: undefined reference to `_imp___ZN3RTT9scripting12CommonPars
erC1Ev'
CMakeFiles\rtt-scripting-win32_plugin.dir\Parser.cpp.obj:C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/rtt/scripting/Parser.cpp:73: undefined reference to `_imp___ZN3RTT9scripting12CommonPars
erC1Ev'
CMakeFiles\rtt-scripting-win32_plugin.dir\Parser.cpp.obj:C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/rtt/scripting/Parser.cpp:110: undefined reference to `_imp___ZN3RTT9scripting12CommonPar
serC1Ev'
CMakeFiles\rtt-scripting-win32_plugin.dir\Parser.cpp.obj:C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/rtt/scripting/Parser.cpp:140: undefined reference to `_imp___ZN3RTT9scripting12CommonPar
serC1Ev'
CMakeFiles\rtt-scripting-win32_plugin.dir\Parser.cpp.obj:C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/rtt/scripting/Parser.cpp:177: undefined reference to `_imp___ZN3RTT9scripting12CommonPar
serC1Ev'
CMakeFiles\rtt-scripting-win32_plugin.dir\StateGraphParser.cpp.obj:C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/rtt/scripting/StateGraphParser.cpp:125: more undefined references to `_imp___Z
N3RTT9scripting12CommonParserC1Ev' follow
collect2: ld returned 1 exit status
mingw32-make[2]: *** [rtt/scripting/librtt-scripting-win32.dll] Error 1
mingw32-make[1]: *** [rtt/scripting/CMakeFiles/rtt-scripting-win32_plugin.dir/all] Error 2
mingw32-make: *** [all] Error 2

We had the same issues with MinGW in RTT 1.x. This was the reason to switch to --export-all-symbols and to introduce !defined( __MINGW32__ ).

In rtt/config/check_depend.cmake there are the following lines:

  if (MINGW)
    #--enable-all-export and --enable-auto-import are already set by cmake.
    #but we need it here for the unit tests as well.
    set(CMAKE_LD_FLAGS_ADD "-Wl,--enable-auto-import" CACHE INTERNAL "")
  ...

But the --enable-auto-import feature is not active. If I download the RTT 2.1.1 and build it with MinGW the following warnings appear for each library:

Linking CXX shared library librtt-scripting-win32.dll
Info: resolving vtable for RTT::base::ActionInterface by linking to __imp___ZTVN3RTT4base15ActionInterfaceE (auto-import)
Info: resolving vtable for RTT::internal::bad_assignment by linking to __imp___ZTVN3RTT8internal14bad_assignmentE (auto-import)
Info: resolving vtable for RTT::OperationInterfacePart by linking to __imp___ZTVN3RTT22OperationInterfacePartE (auto-import)
Info: resolving RTT::internal::DataSourceTypeInfo<RTT::internal::UnknownType>::ptrqual by linking to __imp___ZN3RTT8internal18DataSourceTypeInfoINS0_11UnknownTypeEE7ptrqualE (auto-import)
Info: resolving RTT::internal::DataSourceTypeInfo<RTT::internal::UnknownType>::refqual by linking to __imp___ZN3RTT8internal18DataSourceTypeInfoINS0_11UnknownTypeEE7refqualE (auto-import)
Info: resolving RTT::internal::DataSourceTypeInfo<RTT::internal::UnknownType>::crefqual by linking to __imp___ZN3RTT8internal18DataSourceTypeInfoINS0_11UnknownTypeEE8crefqualE (auto-import)
Creating library file: librtt-scripting-win32.dll.a
c:/codingxp/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line.
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.

I think we should try to enable the auto import feature via --enable-auto-import and enable the export of all symbols via --export-all-symbols. I would like to give it a try but dont not have any idea in which CMake file to place these linker flags.

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

I dropped the !defined( __MINGW32__ ) in rtt-config.h and that is the result:

Linking CXX shared library librtt-scripting-win32.dll
Info: resolving vtable for RTT::internal::bad_assignment by linking to __imp___ZTVN3RTT8internal14bad_assignmentE (auto-import)
Info: resolving vtable for RTT::OperationInterfacePart by linking to __imp___ZTVN3RTT22OperationInterfacePartE (auto-import)
Creating library file: librtt-scripting-win32.dll.a
c:/codingxp/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line.
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.
CMakeFiles\rtt-scripting-win32_plugin.dir\Parser.cpp.obj:C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/rtt/scripting/Parser.cpp:60: undefined reference to `_imp___ZN3RTT9scripting12CommonPars
erC1Ev'
CMakeFiles\rtt-scripting-win32_plugin.dir\Parser.cpp.obj:C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/rtt/scripting/Parser.cpp:73: undefined reference to `_imp___ZN3RTT9scripting12CommonPars
erC1Ev'
CMakeFiles\rtt-scripting-win32_plugin.dir\Parser.cpp.obj:C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/rtt/scripting/Parser.cpp:110: undefined reference to `_imp___ZN3RTT9scripting12CommonPar
serC1Ev'
CMakeFiles\rtt-scripting-win32_plugin.dir\Parser.cpp.obj:C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/rtt/scripting/Parser.cpp:140: undefined reference to `_imp___ZN3RTT9scripting12CommonPar
serC1Ev'
CMakeFiles\rtt-scripting-win32_plugin.dir\Parser.cpp.obj:C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/rtt/scripting/Parser.cpp:177: undefined reference to `_imp___ZN3RTT9scripting12CommonPar
serC1Ev'
CMakeFiles\rtt-scripting-win32_plugin.dir\StateGraphParser.cpp.obj:C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/rtt/scripting/StateGraphParser.cpp:125: more undefined references to `_imp___Z
N3RTT9scripting12CommonParserC1Ev' follow
collect2: ld returned 1 exit status
mingw32-make[2]: *** [rtt/scripting/librtt-scripting-win32.dll] Error 1
mingw32-make[1]: *** [rtt/scripting/CMakeFiles/rtt-scripting-win32_plugin.dir/all] Error 2
mingw32-make: *** [all] Error 2

We had the same issues with MinGW in RTT 1.x. This was the reason to switch to --export-all-symbols and to introduce !defined( __MINGW32__ ).

In rtt/config/check_depend.cmake there are the following lines:

  if (MINGW)
    #--enable-all-export and --enable-auto-import are already set by cmake.
    #but we need it here for the unit tests as well.
    set(CMAKE_LD_FLAGS_ADD "-Wl,--enable-auto-import" CACHE INTERNAL "")
  ...

But the --enable-auto-import feature is not active. If I download the RTT 2.1.1 and build it with MinGW the following warnings appear for each library:

Linking CXX shared library librtt-scripting-win32.dll
Info: resolving vtable for RTT::base::ActionInterface by linking to __imp___ZTVN3RTT4base15ActionInterfaceE (auto-import)
Info: resolving vtable for RTT::internal::bad_assignment by linking to __imp___ZTVN3RTT8internal14bad_assignmentE (auto-import)
Info: resolving vtable for RTT::OperationInterfacePart by linking to __imp___ZTVN3RTT22OperationInterfacePartE (auto-import)
Info: resolving RTT::internal::DataSourceTypeInfo<RTT::internal::UnknownType>::ptrqual by linking to __imp___ZN3RTT8internal18DataSourceTypeInfoINS0_11UnknownTypeEE7ptrqualE (auto-import)
Info: resolving RTT::internal::DataSourceTypeInfo<RTT::internal::UnknownType>::refqual by linking to __imp___ZN3RTT8internal18DataSourceTypeInfoINS0_11UnknownTypeEE7refqualE (auto-import)
Info: resolving RTT::internal::DataSourceTypeInfo<RTT::internal::UnknownType>::crefqual by linking to __imp___ZN3RTT8internal18DataSourceTypeInfoINS0_11UnknownTypeEE8crefqualE (auto-import)
Creating library file: librtt-scripting-win32.dll.a
c:/codingxp/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.exe: warning: auto-importing has been activated without --enable-auto-import specified on the command line.
This should work unless it involves constant data structures referencing symbols from auto-imported DLLs.

I think we should try to enable the auto import feature via --enable-auto-import and enable the export of all symbols via --export-all-symbols. I would like to give it a try but dont not have any idea in which CMake file to place these linker flags.

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

On Wednesday 17 November 2010 13:29:20 uwe_kindler [..] ... wrote:
> I dropped the !defined( __MINGW32__ ) in rtt-config.h and that is the
> result:

You need to drop it from all *-config.h files in the rtt. There's files for
scripting, marshalling, the transports etc.

...
>
> We had the same issues with MinGW in RTT 1.x. This was the reason to switch
> to --export-all-symbols and to introduce !defined( __MINGW32__ ).
>
> In rtt/config/check_depend.cmake there are the following lines:
>
>

>   if (MINGW)
>     #--enable-all-export and --enable-auto-import are already set by cmake.
>     #but we need it here for the unit tests as well.
>     set(CMAKE_LD_FLAGS_ADD "-Wl,--enable-auto-import" CACHE INTERNAL "")
>   ...
> 

So the CMAKE_LD_FLAGS_ADD flag is not picked up when building the libs...

>
> But the --enable-auto-import feature is not active. If I download the RTT
> 2.1.1 and build it with MinGW the following warnings appear for each
> library:
>
>

> Linking CXX shared library librtt-scripting-win32.dll
> Info: resolving vtable for RTT::base::ActionInterface by linking to
> __imp___ZTVN3RTT4base15ActionInterfaceE (auto-import) Info: resolving
> vtable for RTT::internal::bad_assignment by linking to
> __imp___ZTVN3RTT8internal14bad_assignmentE (auto-import) Info: resolving
> vtable for RTT::OperationInterfacePart by linking to
> __imp___ZTVN3RTT22OperationInterfacePartE (auto-import) Info: resolving
> RTT::internal::DataSourceTypeInfo<RTT::internal::UnknownType>::ptrqual by
> linking to
> __imp___ZN3RTT8internal18DataSourceTypeInfoINS0_11UnknownTypeEE7ptrqualE
> (auto-import) Info: resolving
> RTT::internal::DataSourceTypeInfo<RTT::internal::UnknownType>::refqual by
> linking to
> __imp___ZN3RTT8internal18DataSourceTypeInfoINS0_11UnknownTypeEE7refqualE
> (auto-import) Info: resolving
> RTT::internal::DataSourceTypeInfo<RTT::internal::UnknownType>::crefqual by
> linking to
> __imp___ZN3RTT8internal18DataSourceTypeInfoINS0_11UnknownTypeEE8crefqualE
> (auto-import) Creating library file: librtt-scripting-win32.dll.a
 
These are unexpected. I wonder why the import decorations aren't picked up 
here.
 
> c:/codingxp/mingw/bin/../lib/gcc/mingw32/4.4.0/../../../../mingw32/bin/ld.e
> xe: warning: auto-importing has been activated without --enable-auto-import
> specified on the command line. This should work unless it involves
> constant data structures referencing symbols from auto-imported DLLs.
> 

>
> I think we should try to enable the auto import feature via
> --enable-auto-import and enable the export of all symbols via
> --export-all-symbols. I would like to give it a try but dont not have any
> idea in which CMake file to place these linker flags.

We pass linker flags in the SET_TARGET_PROPERTIES macros for the libraries (see
config/rtt_macros.cmake) CMAKE_LD_FLAGS_ADD is invented by us to pass flags from
the config files to the libs. It looks like we just never pick them up
(anymore).

Peter

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

Ok, I left rtt-config.h unchanged (did not remove !defined( __MINGW32__ )) and manually added -Wl,--enable-auto-import -Wl,--export-all-symbols to the CMAKE_SHARED_LINKER_FLAGS in CMake GUI and rebuilt the whole stuff.

The result looks quite good:

c:\CodingXP\Sources & Projects\orocos\build_orocos-toolchain-2.1.1_mingw4.4.0\tests>mingw32-make test
Running tests...
Test project C:/CodingXP/Sources & Projects/orocos/build_orocos-toolchain-2.1.1_mingw4.4.0/tests
      Start  1: main-test
 1/32 Test  #1: main-test ........................   Passed    0.03 sec
      Start  2: list-test
 2/32 Test  #2: list-test ........................   Passed    0.03 sec
      Start  3: core-test
 3/32 Test  #3: core-test ........................   Passed    5.16 sec
      Start  4: task-test
 4/32 Test  #4: task-test ........................   Passed   20.11 sec
      Start  5: buffers_test
 5/32 Test  #5: buffers_test .....................   Passed    0.05 sec
      Start  6: method_test
 6/32 Test  #6: method_test ......................   Passed    0.06 sec
      Start  7: remote_method_test
 7/32 Test  #7: remote_method_test ...............   Passed    0.06 sec
      Start  8: functors_test
 8/32 Test  #8: functors_test ....................   Passed    0.05 sec
      Start  9: service_test
 9/32 Test  #9: service_test .....................   Passed    0.06 sec
      Start 10: service_port_test
10/32 Test #10: service_port_test ................   Passed    0.03 sec
      Start 11: event_test
11/32 Test #11: event_test .......................   Passed    0.14 sec
      Start 12: operation_test
12/32 Test #12: operation_test ...................   Passed    0.05 sec
      Start 13: taskstates_test
13/32 Test #13: taskstates_test ..................   Passed    0.88 sec
      Start 14: ports_test
14/32 Test #14: ports_test .......................   Passed    0.06 sec
      Start 15: attributes_test
15/32 Test #15: attributes_test ..................   Passed    0.05 sec
      Start 16: dev_test
16/32 Test #16: dev_test .........................   Passed    0.05 sec
      Start 17: scripting_test
17/32 Test #17: scripting_test ...................   Passed    0.09 sec
      Start 18: types_test
18/32 Test #18: types_test .......................***Failed    0.48 sec
      Start 19: program_test
19/32 Test #19: program_test .....................   Passed    0.33 sec
      Start 20: state_test
20/32 Test #20: state_test .......................   Passed    1.45 sec
      Start 21: function_test
21/32 Test #21: function_test ....................   Passed    0.27 sec
      Start 22: marshalling_test
22/32 Test #22: marshalling_test .................   Passed    0.05 sec
      Start 23: property_loader_test
23/32 Test #23: property_loader_test .............   Passed    0.08 sec
      Start 24: property_marsh_test
24/32 Test #24: property_marsh_test ..............   Passed    0.06 sec
      Start 25: property_test
25/32 Test #25: property_test ....................   Passed    0.06 sec
      Start 26: type_discovery_test
26/32 Test #26: type_discovery_test ..............   Passed    0.03 sec
      Start 27: type_discovery_struct_test
27/32 Test #27: type_discovery_struct_test .......   Passed    0.03 sec
      Start 28: type_discovery_container_test
28/32 Test #28: type_discovery_container_test ....   Passed    0.06 sec
      Start 29: enum_type_test
29/32 Test #29: enum_type_test ...................   Passed    0.05 sec
      Start 30: datasource_test
30/32 Test #30: datasource_test ..................   Passed    0.03 sec
      Start 31: typekit_test
31/32 Test #31: typekit_test .....................   Passed    0.05 sec
      Start 32: plugins_test
32/32 Test #32: plugins_test .....................   Passed    0.05 sec
 
97% tests passed, 1 tests failed out of 32
 
Total Test time (real) =  30.25 sec
 
The following tests FAILED:
         18 - types_test (Failed)
Errors while running CTest
mingw32-make: *** [test] Error 8

Here is the snippet of the log output (ORO_LOGLEVEL=7) of the types_test that failed

...
3.106 [ Debug  ][Logger] Successfully set up OperationCaller unloadStateMachine
3.108 [ Info   ][Logger] Found complete interface of requested service 'scripting'
3.111 [ Debug  ][~Thread] Terminating root
3.113 [ Debug  ][~Thread]  done
3.142 [ Info   ][SimulationThread] Building variable 'i' of type int
Building variable 'c' of type char
Building variable 'd' of type double
Building variable 'b' of type bool
Building variable 's' of type string
Conversion from int to string
Building variable 'a1' of type array
SimulationThread takes over system time.
3.158 [ Info   ][SimulationThread] System time will increase significantly faster.
Asserting failed with: '''Unexpected string:  string  '''
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/tests/types_test.cpp(70): error in "testOperators": check b failed
Asserting failed with: '''Unexpected string:  string   0'''
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/tests/types_test.cpp(70): error in "testOperators": check b failed
4.160 [ Info   ][SimulationThread] SimulationThread releases system time.
4.161 [ Info   ][Thread] Creating Thread for scheduler: 1
4.163 [ Info   ][root] Thread created with scheduler type '1', priority 0 and period 0.
4.166 [ Info   ][Logger] Loading Service scripting in TaskContext root
4.169 [ Debug  ][Logger] Successfully set up OperationCaller activateStateMachine
4.171 [ Debug  ][Logger] Successfully set up OperationCaller activateStateMachine
4.173 [ Debug  ][Logger] Successfully set up OperationCaller deactivateStateMachine

So I think the best method at the moment for MinGW builds is to use enable-auto-import and export-all-symbols.

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

Ok, I left rtt-config.h unchanged (did not remove !defined( __MINGW32__ )) and manually added -Wl,--enable-auto-import -Wl,--export-all-symbols to the CMAKE_SHARED_LINKER_FLAGS in CMake GUI and rebuilt the whole stuff.

The result looks quite good:

c:\CodingXP\Sources & Projects\orocos\build_orocos-toolchain-2.1.1_mingw4.4.0\tests>mingw32-make test
Running tests...
Test project C:/CodingXP/Sources & Projects/orocos/build_orocos-toolchain-2.1.1_mingw4.4.0/tests
      Start  1: main-test
 1/32 Test  #1: main-test ........................   Passed    0.03 sec
      Start  2: list-test
 2/32 Test  #2: list-test ........................   Passed    0.03 sec
      Start  3: core-test
 3/32 Test  #3: core-test ........................   Passed    5.16 sec
      Start  4: task-test
 4/32 Test  #4: task-test ........................   Passed   20.11 sec
      Start  5: buffers_test
 5/32 Test  #5: buffers_test .....................   Passed    0.05 sec
      Start  6: method_test
 6/32 Test  #6: method_test ......................   Passed    0.06 sec
      Start  7: remote_method_test
 7/32 Test  #7: remote_method_test ...............   Passed    0.06 sec
      Start  8: functors_test
 8/32 Test  #8: functors_test ....................   Passed    0.05 sec
      Start  9: service_test
 9/32 Test  #9: service_test .....................   Passed    0.06 sec
      Start 10: service_port_test
10/32 Test #10: service_port_test ................   Passed    0.03 sec
      Start 11: event_test
11/32 Test #11: event_test .......................   Passed    0.14 sec
      Start 12: operation_test
12/32 Test #12: operation_test ...................   Passed    0.05 sec
      Start 13: taskstates_test
13/32 Test #13: taskstates_test ..................   Passed    0.88 sec
      Start 14: ports_test
14/32 Test #14: ports_test .......................   Passed    0.06 sec
      Start 15: attributes_test
15/32 Test #15: attributes_test ..................   Passed    0.05 sec
      Start 16: dev_test
16/32 Test #16: dev_test .........................   Passed    0.05 sec
      Start 17: scripting_test
17/32 Test #17: scripting_test ...................   Passed    0.09 sec
      Start 18: types_test
18/32 Test #18: types_test .......................***Failed    0.48 sec
      Start 19: program_test
19/32 Test #19: program_test .....................   Passed    0.33 sec
      Start 20: state_test
20/32 Test #20: state_test .......................   Passed    1.45 sec
      Start 21: function_test
21/32 Test #21: function_test ....................   Passed    0.27 sec
      Start 22: marshalling_test
22/32 Test #22: marshalling_test .................   Passed    0.05 sec
      Start 23: property_loader_test
23/32 Test #23: property_loader_test .............   Passed    0.08 sec
      Start 24: property_marsh_test
24/32 Test #24: property_marsh_test ..............   Passed    0.06 sec
      Start 25: property_test
25/32 Test #25: property_test ....................   Passed    0.06 sec
      Start 26: type_discovery_test
26/32 Test #26: type_discovery_test ..............   Passed    0.03 sec
      Start 27: type_discovery_struct_test
27/32 Test #27: type_discovery_struct_test .......   Passed    0.03 sec
      Start 28: type_discovery_container_test
28/32 Test #28: type_discovery_container_test ....   Passed    0.06 sec
      Start 29: enum_type_test
29/32 Test #29: enum_type_test ...................   Passed    0.05 sec
      Start 30: datasource_test
30/32 Test #30: datasource_test ..................   Passed    0.03 sec
      Start 31: typekit_test
31/32 Test #31: typekit_test .....................   Passed    0.05 sec
      Start 32: plugins_test
32/32 Test #32: plugins_test .....................   Passed    0.05 sec
 
97% tests passed, 1 tests failed out of 32
 
Total Test time (real) =  30.25 sec
 
The following tests FAILED:
         18 - types_test (Failed)
Errors while running CTest
mingw32-make: *** [test] Error 8

Here is the snippet of the log output (ORO_LOGLEVEL=7) of the types_test that failed

...
3.106 [ Debug  ][Logger] Successfully set up OperationCaller unloadStateMachine
3.108 [ Info   ][Logger] Found complete interface of requested service 'scripting'
3.111 [ Debug  ][~Thread] Terminating root
3.113 [ Debug  ][~Thread]  done
3.142 [ Info   ][SimulationThread] Building variable 'i' of type int
Building variable 'c' of type char
Building variable 'd' of type double
Building variable 'b' of type bool
Building variable 's' of type string
Conversion from int to string
Building variable 'a1' of type array
SimulationThread takes over system time.
3.158 [ Info   ][SimulationThread] System time will increase significantly faster.
Asserting failed with: '''Unexpected string:  string  '''
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/tests/types_test.cpp(70): error in "testOperators": check b failed
Asserting failed with: '''Unexpected string:  string   0'''
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.1/rtt/tests/types_test.cpp(70): error in "testOperators": check b failed
4.160 [ Info   ][SimulationThread] SimulationThread releases system time.
4.161 [ Info   ][Thread] Creating Thread for scheduler: 1
4.163 [ Info   ][root] Thread created with scheduler type '1', priority 0 and period 0.
4.166 [ Info   ][Logger] Loading Service scripting in TaskContext root
4.169 [ Debug  ][Logger] Successfully set up OperationCaller activateStateMachine
4.171 [ Debug  ][Logger] Successfully set up OperationCaller activateStateMachine
4.173 [ Debug  ][Logger] Successfully set up OperationCaller deactivateStateMachine

So I think the best method at the moment for MinGW builds is to use enable-auto-import and export-all-symbols.

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

On Wednesday 17 November 2010 14:50:15 uwe_kindler [..] ... wrote:
> Ok, I left rtt-config.h unchanged (did not remove !defined( __MINGW32__ ))
> and manually added -Wl,--enable-auto-import -Wl,--export-all-symbols to
> the CMAKE_SHARED_LINKER_FLAGS in CMake GUI and rebuilt the whole stuff.
>
> The result looks quite good:
>

> c:\CodingXP\Sources &
> Projects\orocos\build_orocos-toolchain-2.1.1_mingw4.4.0\tests>mingw32-make
> test Running tests...
> Test project C:/CodingXP/Sources &
> Projects/orocos/build_orocos-toolchain-2.1.1_mingw4.4.0/tests Start  1:
> main-test
>  1/32 Test  #1: main-test ........................   Passed    0.03 sec
>       Start  2: list-test
>  2/32 Test  #2: list-test ........................   Passed    0.03 sec
>       Start  3: core-test
>  3/32 Test  #3: core-test ........................   Passed    5.16 sec
>       Start  4: task-test
>  4/32 Test  #4: task-test ........................   Passed   20.11 sec
>       Start  5: buffers_test
>  5/32 Test  #5: buffers_test .....................   Passed    0.05 sec
>       Start  6: method_test
>  6/32 Test  #6: method_test ......................   Passed    0.06 sec
>       Start  7: remote_method_test
>  7/32 Test  #7: remote_method_test ...............   Passed    0.06 sec
>       Start  8: functors_test
>  8/32 Test  #8: functors_test ....................   Passed    0.05 sec
>       Start  9: service_test
>  9/32 Test  #9: service_test .....................   Passed    0.06 sec
>       Start 10: service_port_test
> 10/32 Test #10: service_port_test ................   Passed    0.03 sec
>       Start 11: event_test
> 11/32 Test #11: event_test .......................   Passed    0.14 sec
>       Start 12: operation_test
> 12/32 Test #12: operation_test ...................   Passed    0.05 sec
>       Start 13: taskstates_test
> 13/32 Test #13: taskstates_test ..................   Passed    0.88 sec
>       Start 14: ports_test
> 14/32 Test #14: ports_test .......................   Passed    0.06 sec
>       Start 15: attributes_test
> 15/32 Test #15: attributes_test ..................   Passed    0.05 sec
>       Start 16: dev_test
> 16/32 Test #16: dev_test .........................   Passed    0.05 sec
>       Start 17: scripting_test
> 17/32 Test #17: scripting_test ...................   Passed    0.09 sec
>       Start 18: types_test
> 18/32 Test #18: types_test .......................***Failed    0.48 sec
>       Start 19: program_test
> 19/32 Test #19: program_test .....................   Passed    0.33 sec
>       Start 20: state_test
> 20/32 Test #20: state_test .......................   Passed    1.45 sec
>       Start 21: function_test
> 21/32 Test #21: function_test ....................   Passed    0.27 sec
>       Start 22: marshalling_test
> 22/32 Test #22: marshalling_test .................   Passed    0.05 sec
>       Start 23: property_loader_test
> 23/32 Test #23: property_loader_test .............   Passed    0.08 sec
>       Start 24: property_marsh_test
> 24/32 Test #24: property_marsh_test ..............   Passed    0.06 sec
>       Start 25: property_test
> 25/32 Test #25: property_test ....................   Passed    0.06 sec
>       Start 26: type_discovery_test
> 26/32 Test #26: type_discovery_test ..............   Passed    0.03 sec
>       Start 27: type_discovery_struct_test
> 27/32 Test #27: type_discovery_struct_test .......   Passed    0.03 sec
>       Start 28: type_discovery_container_test
> 28/32 Test #28: type_discovery_container_test ....   Passed    0.06 sec
>       Start 29: enum_type_test
> 29/32 Test #29: enum_type_test ...................   Passed    0.05 sec
>       Start 30: datasource_test
> 30/32 Test #30: datasource_test ..................   Passed    0.03 sec
>       Start 31: typekit_test
> 31/32 Test #31: typekit_test .....................   Passed    0.05 sec
>       Start 32: plugins_test
> 32/32 Test #32: plugins_test .....................   Passed    0.05 sec
> 
> 97% tests passed, 1 tests failed out of 32
> 
> Total Test time (real) =  30.25 sec
> 
> The following tests FAILED:
>          18 - types_test (Failed)
> Errors while running CTest
> mingw32-make: *** [test] Error 8
> 

This test fails on all platforms. It will be fixed in 2.2.0

...
>
> So I think the best method at the moment for MinGW builds is to use
> enable-auto-import and export-all-symbols.

So we could set CMAKE_SHARED_LINKER_FLAGS in the check_depend.cmake file when
detecting cygwin ?

Peter

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

I changed the check_depend.cmake file (line 231) the following way and the build runs fine without any auto import warnings:

...
  if (MINGW)
    set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--enable-auto-import -Wl,--export-all-symbols")
	set(CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-auto-import")
    list(APPEND OROCOS-RTT_LIBRARIES wsock32.lib winmm.lib)
  endif()
...

There are two other warning issues during build that can get fixed easily. I get a lot of warnigs of this kind:

C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\os\win32/../win32/win32.h:54:1: warning: "NOMINMAX" redefined
In file included from c:\codingxp\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/mingw32/bits/c++config.h:243,
                 from c:\codingxp\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cmath:43,
                 from C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\/os/Time.hpp:42,
                 from C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\/Time.hpp:41,
                 from C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\Activity.cpp:43:
c:\codingxp\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/mingw32/bits/os_defines.h:46:1: warning: this is the location of the previous definition

This warning issue was gone in 2.1.0 and came back in 2.1.1. I solved this by replacing

#define NOMINMAX

in win32.h with

#ifndef NOMINMAX
#define NOMINMAX 
#endif

Another warning that occured only once during build was this one:

[ 14%] Building C object rtt/CMakeFiles/orocos-rtt-win32_dynamic.dir/os/win32/dlfcn.c.obj
C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\os\win32\dlfcn.c: In function 'global_add':
C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\os\win32\dlfcn.c:67: warning: incompatible implicit declaration of built-in function 'malloc'
C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\os\win32\dlfcn.c: In function 'global_rem':
C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\os\win32\dlfcn.c:98: warning: incompatible implicit declaration of built-in function 'free'

I fixed this warning ba adding #include <stdlib.h> to dlfcn.c file.

After these changes the build runs to completion with almost no warnings and test cases run fine.

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

I changed the check_depend.cmake file (line 231) the following way and the build runs fine without any auto import warnings:

...
  if (MINGW)
    set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--enable-auto-import -Wl,--export-all-symbols")
    set(CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-auto-import")
    list(APPEND OROCOS-RTT_LIBRARIES wsock32.lib winmm.lib)
  endif()
...

There are two other warning issues during build that can get fixed easily. I get a lot of warnigs of this kind:

C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\os\win32/../win32/win32.h:54:1: warning: "NOMINMAX" redefined
In file included from c:\codingxp\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/mingw32/bits/c++config.h:243,
                 from c:\codingxp\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cmath:43,
                 from C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\/os/Time.hpp:42,
                 from C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\/Time.hpp:41,
                 from C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\Activity.cpp:43:
c:\codingxp\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/mingw32/bits/os_defines.h:46:1: warning: this is the location of the previous definition

This warning issue was gone in 2.1.0 and came back in 2.1.1. I solved this by replacing

#define NOMINMAX

in win32.h with

#ifndef NOMINMAX
#define NOMINMAX 
#endif

Another warning that occured only once during build was this one:

[ 14%] Building C object rtt/CMakeFiles/orocos-rtt-win32_dynamic.dir/os/win32/dlfcn.c.obj
C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\os\win32\dlfcn.c: In function 'global_add':
C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\os\win32\dlfcn.c:67: warning: incompatible implicit declaration of built-in function 'malloc'
C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\os\win32\dlfcn.c: In function 'global_rem':
C:\CodingXP\orocos\orocos-toolchain-2.1.1\rtt\rtt\os\win32\dlfcn.c:98: warning: incompatible implicit declaration of built-in function 'free'

I fixed this warning ba adding #include <stdlib.h> to dlfcn.c file.

After these changes the build runs to completion with almost no warnings and test cases run fine.

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

On Thursday 18 November 2010 10:06:25 uwe_kindler [..] ... wrote:
> I changed the check_depend.cmake file (line 231) the following way and the
> build runs fine without any auto import warnings:

...

Thanks, I added all the fixes on the toolchain-2.1 branch.

Peter

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

> The output clearly shows that the typekit for the basic types is not
loaded:
> int -> unknown type. This is normally automatically done by the
> deployer/taskbrowser, I have no idea why this is not happening in the
test,
> maybe someone else can shed some light on this problem.

Maybe it helps if I describe the steps I did until running the test cases.

1.
I downloaded Orocos toolchain 2.1.0

2.
I opened the the CMake GUI and pointed the source code path to:
orocos/orocos-toolchain-2.1.0/rtt

3.
I selected the build directory:
orocos/build_orocos-toolchain-2.1.0_mingw4.4.0

4.
I configured RTT (OROCOS_TARGET win32, CMAKE_BUILD_TYPE debug and added
BOOST_ROOT)

5.
I generated the makefiles

6.
I opened a console in build directory and executed mingw32-make

6.
I manually copied the following files into
orocos/build_orocos-toolchain-2.1.0_mingw4.4.0/tests directory:
liborocos-rtt-win32.dll
librtt-typekit-win32.dll
librtt-scripting-win32.dll
librtt-marshalling-win32.dll
libfixtures.dll

7.
I changed to the orocos/build_orocos-toolchain-2.1.0_mingw4.4.0/tests
to start the tests.

Ruben Smits's picture

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

On Tuesday 16 November 2010 12:40:41 Uwe Kindler wrote:
> > The output clearly shows that the typekit for the basic types is not
>
> loaded:
> > int -> unknown type. This is normally automatically done by the
> > deployer/taskbrowser, I have no idea why this is not happening in the
>
> test,
>
> > maybe someone else can shed some light on this problem.
>
> Maybe it helps if I describe the steps I did until running the test cases.
>
> 1.
> I downloaded Orocos toolchain 2.1.0
>
> 2.
> I opened the the CMake GUI and pointed the source code path to:
> orocos/orocos-toolchain-2.1.0/rtt
>
> 3.
> I selected the build directory:
> orocos/build_orocos-toolchain-2.1.0_mingw4.4.0
>
> 4.
> I configured RTT (OROCOS_TARGET win32, CMAKE_BUILD_TYPE debug and added
> BOOST_ROOT)
>
> 5.
> I generated the makefiles
>
> 6.
> I opened a console in build directory and executed mingw32-make
>
> 6.
> I manually copied the following files into
> orocos/build_orocos-toolchain-2.1.0_mingw4.4.0/tests directory:
> liborocos-rtt-win32.dll
> librtt-typekit-win32.dll
> librtt-scripting-win32.dll
> librtt-marshalling-win32.dll
> libfixtures.dll

Are you sure this step is needed? On other OS's this is not necessary. What
was the reason you did this?

Ruben.

> 7.
> I changed to the orocos/build_orocos-toolchain-2.1.0_mingw4.4.0/tests
> to start the tests.

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

> Are you sure this step is needed? On other OS's this is not
necessary. What
> was the reason you did this?

Windows searchs for shared libraries only in directories that are in the
PATH environment variable and in the directory where the executable is
started.

So to make shure that Windows finds all required DLLs i simply copied
them into the directory where the test executables are located. I.e. if
I remove librtt-marshalling-win32.dll from the directory and execute
enum_type_test then Windows complains with a message box (translated
from german):

"Could not start application because librtt-marshalling-win32.dll is
missing..."

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

This is the log output of enum_type_test with ORO_LOGLEVEL=7. Any idea whats going wrong here?

0.000 [ Info ][Logger] Successfully extracted environment variable ORO_LOGLEVEL
0.002 [ Info ][Logger] OROCOS version '2.1.0' compiled with GCC 4.4.0.Orocos Logging Activated at level : [ Debug ] ( 6 )
0.004 [ Info ][Logger] Reference System Time is : 262959564175055 ticks ( 262960 seconds ).
0.007 [ Info ][Logger] Logging is relative to this time.
0.009 [ Debug ][Logger] MainThread started.
0.011 [ Debug ][Logger] Starting StartStopManager.
0.013 [ Info ][Logger] No RTT_COMPONENT_PATH set.
0.015 [ Info ][Logger] Loading plugin libraries from directory ./plugins ...
0.017 [ Debug ][Logger] Scanning file ./plugins/CMakeFiles ...not a regular file: ignored.
0.019 [ Debug ][Logger] Scanning file ./plugins/cmake_install.cmake ...not a .dll library: ignored.
0.022 [ Debug ][Logger] Scanning file ./plugins/CTestTestfile.cmake ...not a .dll library: ignored.
0.025 [ Debug ][Logger] Scanning file ./plugins/libservice_plugin.dll ...Found library libservice_plugin.dll
0.027 [ Info ][Logger] Loaded RTT Plugin 'serviceplugin' from 'service_plugin'
0.029 [ Debug ][Logger] Scanning file ./plugins/libservice_plugin.dll.a ...not a .dll library: ignored.
0.031 [ Debug ][Logger] Scanning file ./plugins/Makefile ...not a .dll library: ignored.
0.033 [ Debug ][Logger] No such directory: ./plugins/win32
0.035 [ Info ][Logger] Loading plugin libraries from directory ./types ...
0.038 [ Debug ][Logger] Scanning file ./types/CMakeFiles ...not a regular file: ignored.
0.040 [ Debug ][Logger] Scanning file ./types/cmake_install.cmake ...not a .dll library: ignored.
0.042 [ Debug ][Logger] Scanning file ./types/CTestTestfile.cmake ...not a .dll library: ignored.
0.045 [ Debug ][Logger] Scanning file ./types/libtypekit_plugin.dll ...Found library libtypekit_plugin.dll
0.047 [ Info ][TypekitRepository::Import] Loading Typekit TypesPluginTest.
0.049 [ Info ][Logger] Loaded RTT TypeKit/Transport 'TypesPluginTest' from 'typekit_plugin'
0.051 [ Debug ][Logger] Scanning file ./types/libtypekit_plugin.dll.a ...not a .dll library: ignored.
0.053 [ Debug ][Logger] Scanning file ./types/Makefile ...not a .dll library: ignored.
0.055 [ Debug ][Logger] No such directory: ./types/win32
Running 4 test cases...
0.060 [ Debug ][Logger] LogLevel unaltered by test-runner.
Failed to register enum<-> int conversion because type int is not known in type system.
Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(83): fatal error in "testEnumIntConversion": critical check Types()->type("int") failed
0.075 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.081 [ Debug ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(121): fatal error in "testEnumStringConversion": critical check ts failed
0.086 [ Info ][Thread] Creating Thread for scheduler: 1
0.088 [ Info ][TC] Thread created with scheduler type '1', priority 0 and period 0.
0.091 [ Info ][Thread] Creating Thread for scheduler: 1
0.093 [ Info ][GlobalEngine] Thread created with scheduler type '1', priority 0 and period 0.
0.095 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.102 [ Debug ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
0.104 [ ERROR ][TypeInfoName] Creating enum_type_test_int_save.cpf
No enum-to-string mapping defined for enum TheEnum. Converting to int.
Can not build Property of unknown_t.

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

This is the log output of enum_type_test with ORO_LOGLEVEL=7. Any idea whats going wrong here?

0.000 [ Info ][Logger] Successfully extracted environment variable ORO_LOGLEVEL 0.002 [ Info ][Logger] OROCOS version '2.1.0' compiled with GCC 4.4.0.Orocos Logging Activated at level : [ Debug ] ( 6 ) 0.004 [ Info ][Logger] Reference System Time is : 262959564175055 ticks ( 262960 seconds ). 0.007 [ Info ][Logger] Logging is relative to this time. 0.009 [ Debug ][Logger] MainThread started. 0.011 [ Debug ][Logger] Starting StartStopManager. 0.013 [ Info ][Logger] No RTT_COMPONENT_PATH set. 0.015 [ Info ][Logger] Loading plugin libraries from directory ./plugins ... 0.017 [ Debug ][Logger] Scanning file ./plugins/CMakeFiles ...not a regular file: ignored. 0.019 [ Debug ][Logger] Scanning file ./plugins/cmake_install.cmake ...not a .dll library: ignored. 0.022 [ Debug ][Logger] Scanning file ./plugins/CTestTestfile.cmake ...not a .dll library: ignored. 0.025 [ Debug ][Logger] Scanning file ./plugins/libservice_plugin.dll ...Found library libservice_plugin.dll 0.027 [ Info ][Logger] Loaded RTT Plugin 'serviceplugin' from 'service_plugin' 0.029 [ Debug ][Logger] Scanning file ./plugins/libservice_plugin.dll.a ...not a .dll library: ignored. 0.031 [ Debug ][Logger] Scanning file ./plugins/Makefile ...not a .dll library: ignored. 0.033 [ Debug ][Logger] No such directory: ./plugins/win32 0.035 [ Info ][Logger] Loading plugin libraries from directory ./types ... 0.038 [ Debug ][Logger] Scanning file ./types/CMakeFiles ...not a regular file: ignored. 0.040 [ Debug ][Logger] Scanning file ./types/cmake_install.cmake ...not a .dll library: ignored. 0.042 [ Debug ][Logger] Scanning file ./types/CTestTestfile.cmake ...not a .dll library: ignored. 0.045 [ Debug ][Logger] Scanning file ./types/libtypekit_plugin.dll ...Found library libtypekit_plugin.dll 0.047 [ Info ][TypekitRepository::Import] Loading Typekit TypesPluginTest. 0.049 [ Info ][Logger] Loaded RTT TypeKit/Transport 'TypesPluginTest' from 'typekit_plugin' 0.051 [ Debug ][Logger] Scanning file ./types/libtypekit_plugin.dll.a ...not a .dll library: ignored. 0.053 [ Debug ][Logger] Scanning file ./types/Makefile ...not a .dll library: ignored. 0.055 [ Debug ][Logger] No such directory: ./types/win32 Running 4 test cases... 0.060 [ Debug ][Logger] LogLevel unaltered by test-runner. Failed to register enum<-> int conversion because type int is not known in type system. Registered Type 'TheEnum' to the Orocos Type System. C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(83): fatal error in "testEnumIntConversion": critical check Types()->type("int") failed 0.075 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'. Failed to register enum<-> int conversion because type int is not known in type system. Attempt to register Type 'TheEnum' twice to the Orocos Type System. 0.081 [ Debug ][Logger] Registered Type 'TheEnum' to the Orocos Type System. C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(121): fatal error in "testEnumStringConversion": critical check ts failed 0.086 [ Info ][Thread] Creating Thread for scheduler: 1 0.088 [ Info ][TC] Thread created with scheduler type '1', priority 0 and period 0. 0.091 [ Info ][Thread] Creating Thread for scheduler: 1 0.093 [ Info ][GlobalEngine] Thread created with scheduler type '1', priority 0 and period 0. 0.095 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'. Failed to register enum<-> int conversion because type int is not known in type system. Attempt to register Type 'TheEnum' twice to the Orocos Type System. 0.102 [ Debug ][Logger] Registered Type 'TheEnum' to the Orocos Type System. 0.104 [ ERROR ][TypeInfoName] Creating enum_type_test_int_save.cpf No enum-to-string mapping defined for enum TheEnum. Converting to int. Can not build Property of unknown_t.

enum_type_test log output

Hi Ruben,

this is the output of the enum_type_test with ORO_LOGLEVEL=7. Any idea what goes wrong. Do you also need the output of the other tests?

enum_type_test
0.000 [ Info   ][Logger] Successfully extracted environment variable ORO_LOGLEVEL
0.002 [ Info   ][Logger]  OROCOS version '2.1.0' compiled with GCC 4.4.0.Orocos Logging Activated at level : [ Debug  ] ( 6 )
0.004 [ Info   ][Logger] Reference System Time is : 262959564175055 ticks ( 262960 seconds ).
0.007 [ Info   ][Logger] Logging is relative to this time.
0.009 [ Debug  ][Logger] MainThread started.
0.011 [ Debug  ][Logger] Starting StartStopManager.
0.013 [ Info   ][Logger] No RTT_COMPONENT_PATH set.
0.015 [ Info   ][Logger] Loading plugin libraries from directory ./plugins ...
0.017 [ Debug  ][Logger] Scanning file ./plugins/CMakeFiles ...not a regular file: ignored.
0.019 [ Debug  ][Logger] Scanning file ./plugins/cmake_install.cmake ...not a .dll library: ignored.
0.022 [ Debug  ][Logger] Scanning file ./plugins/CTestTestfile.cmake ...not a .dll library: ignored.
0.025 [ Debug  ][Logger] Scanning file ./plugins/libservice_plugin.dll ...Found library libservice_plugin.dll
0.027 [ Info   ][Logger] Loaded RTT Plugin 'serviceplugin' from 'service_plugin'
0.029 [ Debug  ][Logger] Scanning file ./plugins/libservice_plugin.dll.a ...not a .dll library: ignored.
0.031 [ Debug  ][Logger] Scanning file ./plugins/Makefile ...not a .dll library: ignored.
0.033 [ Debug  ][Logger] No such directory: ./plugins/win32
0.035 [ Info   ][Logger] Loading plugin libraries from directory ./types ...
0.038 [ Debug  ][Logger] Scanning file ./types/CMakeFiles ...not a regular file: ignored.
0.040 [ Debug  ][Logger] Scanning file ./types/cmake_install.cmake ...not a .dll library: ignored.
0.042 [ Debug  ][Logger] Scanning file ./types/CTestTestfile.cmake ...not a .dll library: ignored.
0.045 [ Debug  ][Logger] Scanning file ./types/libtypekit_plugin.dll ...Found library libtypekit_plugin.dll
0.047 [ Info   ][TypekitRepository::Import] Loading Typekit TypesPluginTest.
0.049 [ Info   ][Logger] Loaded RTT TypeKit/Transport 'TypesPluginTest' from 'typekit_plugin'
0.051 [ Debug  ][Logger] Scanning file ./types/libtypekit_plugin.dll.a ...not a .dll library: ignored.
0.053 [ Debug  ][Logger] Scanning file ./types/Makefile ...not a .dll library: ignored.
0.055 [ Debug  ][Logger] No such directory: ./types/win32
Running 4 test cases...
0.060 [ Debug  ][Logger] LogLevel unaltered by test-runner.
Failed to register enum<-> int conversion because type int is not known in type system.
Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(83): fatal error in "testEnumIntConversion": critical check Types()->type("int") failed
0.075 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.081 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(121): fatal error in "testEnumStringConversion": critical check ts failed
0.086 [ Info   ][Thread] Creating Thread for scheduler: 1
0.088 [ Info   ][TC] Thread created with scheduler type '1', priority 0 and period 0.
0.091 [ Info   ][Thread] Creating Thread for scheduler: 1
0.093 [ Info   ][GlobalEngine] Thread created with scheduler type '1', priority 0 and period 0.
0.095 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.102 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
0.104 [ ERROR  ][TypeInfoName] Creating enum_type_test_int_save.cpf
No enum-to-string mapping defined for enum TheEnum. Converting to int.
Can not build Property of unknown_t.

enum_type_test log output

Hi Ruben,

this is the output of the enum_type_test with ORO_LOGLEVEL=7. Any idea what goes wrong. Do you also need the output of the other tests?

enum_type_test
0.000 [ Info   ][Logger] Successfully extracted environment variable ORO_LOGLEVEL
0.002 [ Info   ][Logger]  OROCOS version '2.1.0' compiled with GCC 4.4.0.Orocos Logging Activated at level : [ Debug  ] ( 6 )
0.004 [ Info   ][Logger] Reference System Time is : 262959564175055 ticks ( 262960 seconds ).
0.007 [ Info   ][Logger] Logging is relative to this time.
0.009 [ Debug  ][Logger] MainThread started.
0.011 [ Debug  ][Logger] Starting StartStopManager.
0.013 [ Info   ][Logger] No RTT_COMPONENT_PATH set.
0.015 [ Info   ][Logger] Loading plugin libraries from directory ./plugins ...
0.017 [ Debug  ][Logger] Scanning file ./plugins/CMakeFiles ...not a regular file: ignored.
0.019 [ Debug  ][Logger] Scanning file ./plugins/cmake_install.cmake ...not a .dll library: ignored.
0.022 [ Debug  ][Logger] Scanning file ./plugins/CTestTestfile.cmake ...not a .dll library: ignored.
0.025 [ Debug  ][Logger] Scanning file ./plugins/libservice_plugin.dll ...Found library libservice_plugin.dll
0.027 [ Info   ][Logger] Loaded RTT Plugin 'serviceplugin' from 'service_plugin'
0.029 [ Debug  ][Logger] Scanning file ./plugins/libservice_plugin.dll.a ...not a .dll library: ignored.
0.031 [ Debug  ][Logger] Scanning file ./plugins/Makefile ...not a .dll library: ignored.
0.033 [ Debug  ][Logger] No such directory: ./plugins/win32
0.035 [ Info   ][Logger] Loading plugin libraries from directory ./types ...
0.038 [ Debug  ][Logger] Scanning file ./types/CMakeFiles ...not a regular file: ignored.
0.040 [ Debug  ][Logger] Scanning file ./types/cmake_install.cmake ...not a .dll library: ignored.
0.042 [ Debug  ][Logger] Scanning file ./types/CTestTestfile.cmake ...not a .dll library: ignored.
0.045 [ Debug  ][Logger] Scanning file ./types/libtypekit_plugin.dll ...Found library libtypekit_plugin.dll
0.047 [ Info   ][TypekitRepository::Import] Loading Typekit TypesPluginTest.
0.049 [ Info   ][Logger] Loaded RTT TypeKit/Transport 'TypesPluginTest' from 'typekit_plugin'
0.051 [ Debug  ][Logger] Scanning file ./types/libtypekit_plugin.dll.a ...not a .dll library: ignored.
0.053 [ Debug  ][Logger] Scanning file ./types/Makefile ...not a .dll library: ignored.
0.055 [ Debug  ][Logger] No such directory: ./types/win32
Running 4 test cases...
0.060 [ Debug  ][Logger] LogLevel unaltered by test-runner.
Failed to register enum<-> int conversion because type int is not known in type system.
Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(83): fatal error in "testEnumIntConversion": critical check Types()->type("int") failed
0.075 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.081 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(121): fatal error in "testEnumStringConversion": critical check ts failed
0.086 [ Info   ][Thread] Creating Thread for scheduler: 1
0.088 [ Info   ][TC] Thread created with scheduler type '1', priority 0 and period 0.
0.091 [ Info   ][Thread] Creating Thread for scheduler: 1
0.093 [ Info   ][GlobalEngine] Thread created with scheduler type '1', priority 0 and period 0.
0.095 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.102 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
0.104 [ ERROR  ][TypeInfoName] Creating enum_type_test_int_save.cpf
No enum-to-string mapping defined for enum TheEnum. Converting to int.
Can not build Property of unknown_t.

enum_type_test log output

Hi Ruben,

this is the output of the enum_type_test with ORO_LOGLEVEL=7. Any idea what goes wrong. Do you also need the output of the other tests?

enum_type_test
0.000 [ Info   ][Logger] Successfully extracted environment variable ORO_LOGLEVEL
0.002 [ Info   ][Logger]  OROCOS version '2.1.0' compiled with GCC 4.4.0.Orocos Logging Activated at level : [ Debug  ] ( 6 )
0.004 [ Info   ][Logger] Reference System Time is : 262959564175055 ticks ( 262960 seconds ).
0.007 [ Info   ][Logger] Logging is relative to this time.
0.009 [ Debug  ][Logger] MainThread started.
0.011 [ Debug  ][Logger] Starting StartStopManager.
0.013 [ Info   ][Logger] No RTT_COMPONENT_PATH set.
0.015 [ Info   ][Logger] Loading plugin libraries from directory ./plugins ...
0.017 [ Debug  ][Logger] Scanning file ./plugins/CMakeFiles ...not a regular file: ignored.
0.019 [ Debug  ][Logger] Scanning file ./plugins/cmake_install.cmake ...not a .dll library: ignored.
0.022 [ Debug  ][Logger] Scanning file ./plugins/CTestTestfile.cmake ...not a .dll library: ignored.
0.025 [ Debug  ][Logger] Scanning file ./plugins/libservice_plugin.dll ...Found library libservice_plugin.dll
0.027 [ Info   ][Logger] Loaded RTT Plugin 'serviceplugin' from 'service_plugin'
0.029 [ Debug  ][Logger] Scanning file ./plugins/libservice_plugin.dll.a ...not a .dll library: ignored.
0.031 [ Debug  ][Logger] Scanning file ./plugins/Makefile ...not a .dll library: ignored.
0.033 [ Debug  ][Logger] No such directory: ./plugins/win32
0.035 [ Info   ][Logger] Loading plugin libraries from directory ./types ...
0.038 [ Debug  ][Logger] Scanning file ./types/CMakeFiles ...not a regular file: ignored.
0.040 [ Debug  ][Logger] Scanning file ./types/cmake_install.cmake ...not a .dll library: ignored.
0.042 [ Debug  ][Logger] Scanning file ./types/CTestTestfile.cmake ...not a .dll library: ignored.
0.045 [ Debug  ][Logger] Scanning file ./types/libtypekit_plugin.dll ...Found library libtypekit_plugin.dll
0.047 [ Info   ][TypekitRepository::Import] Loading Typekit TypesPluginTest.
0.049 [ Info   ][Logger] Loaded RTT TypeKit/Transport 'TypesPluginTest' from 'typekit_plugin'
0.051 [ Debug  ][Logger] Scanning file ./types/libtypekit_plugin.dll.a ...not a .dll library: ignored.
0.053 [ Debug  ][Logger] Scanning file ./types/Makefile ...not a .dll library: ignored.
0.055 [ Debug  ][Logger] No such directory: ./types/win32
Running 4 test cases...
0.060 [ Debug  ][Logger] LogLevel unaltered by test-runner.
Failed to register enum<-> int conversion because type int is not known in type system.
Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(83): fatal error in "testEnumIntConversion": critical check Types()->type("int") failed
0.075 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.081 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(121): fatal error in "testEnumStringConversion": critical check ts failed
0.086 [ Info   ][Thread] Creating Thread for scheduler: 1
0.088 [ Info   ][TC] Thread created with scheduler type '1', priority 0 and period 0.
0.091 [ Info   ][Thread] Creating Thread for scheduler: 1
0.093 [ Info   ][GlobalEngine] Thread created with scheduler type '1', priority 0 and period 0.
0.095 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.102 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
0.104 [ ERROR  ][TypeInfoName] Creating enum_type_test_int_save.cpf
No enum-to-string mapping defined for enum TheEnum. Converting to int.
Can not build Property of unknown_t.

enum_type_test log output

Hi Ruben,

this is the output of the enum_type_test with ORO_LOGLEVEL=7. Any idea what goes wrong. Do you also need the output of the other tests?

enum_type_test
0.000 [ Info   ][Logger] Successfully extracted environment variable ORO_LOGLEVEL
0.002 [ Info   ][Logger]  OROCOS version '2.1.0' compiled with GCC 4.4.0.Orocos Logging Activated at level : [ Debug  ] ( 6 )
0.004 [ Info   ][Logger] Reference System Time is : 262959564175055 ticks ( 262960 seconds ).
0.007 [ Info   ][Logger] Logging is relative to this time.
0.009 [ Debug  ][Logger] MainThread started.
0.011 [ Debug  ][Logger] Starting StartStopManager.
0.013 [ Info   ][Logger] No RTT_COMPONENT_PATH set.
0.015 [ Info   ][Logger] Loading plugin libraries from directory ./plugins ...
0.017 [ Debug  ][Logger] Scanning file ./plugins/CMakeFiles ...not a regular file: ignored.
0.019 [ Debug  ][Logger] Scanning file ./plugins/cmake_install.cmake ...not a .dll library: ignored.
0.022 [ Debug  ][Logger] Scanning file ./plugins/CTestTestfile.cmake ...not a .dll library: ignored.
0.025 [ Debug  ][Logger] Scanning file ./plugins/libservice_plugin.dll ...Found library libservice_plugin.dll
0.027 [ Info   ][Logger] Loaded RTT Plugin 'serviceplugin' from 'service_plugin'
0.029 [ Debug  ][Logger] Scanning file ./plugins/libservice_plugin.dll.a ...not a .dll library: ignored.
0.031 [ Debug  ][Logger] Scanning file ./plugins/Makefile ...not a .dll library: ignored.
0.033 [ Debug  ][Logger] No such directory: ./plugins/win32
0.035 [ Info   ][Logger] Loading plugin libraries from directory ./types ...
0.038 [ Debug  ][Logger] Scanning file ./types/CMakeFiles ...not a regular file: ignored.
0.040 [ Debug  ][Logger] Scanning file ./types/cmake_install.cmake ...not a .dll library: ignored.
0.042 [ Debug  ][Logger] Scanning file ./types/CTestTestfile.cmake ...not a .dll library: ignored.
0.045 [ Debug  ][Logger] Scanning file ./types/libtypekit_plugin.dll ...Found library libtypekit_plugin.dll
0.047 [ Info   ][TypekitRepository::Import] Loading Typekit TypesPluginTest.
0.049 [ Info   ][Logger] Loaded RTT TypeKit/Transport 'TypesPluginTest' from 'typekit_plugin'
0.051 [ Debug  ][Logger] Scanning file ./types/libtypekit_plugin.dll.a ...not a .dll library: ignored.
0.053 [ Debug  ][Logger] Scanning file ./types/Makefile ...not a .dll library: ignored.
0.055 [ Debug  ][Logger] No such directory: ./types/win32
Running 4 test cases...
0.060 [ Debug  ][Logger] LogLevel unaltered by test-runner.
Failed to register enum<-> int conversion because type int is not known in type system.
Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(83): fatal error in "testEnumIntConversion": critical check Types()->type("int") failed
0.075 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.081 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
C:/CodingXP/Sources & Projects/orocos/orocos-toolchain-2.1.0/rtt/tests/enum_type_test.cpp(121): fatal error in "testEnumStringConversion": critical check ts failed
0.086 [ Info   ][Thread] Creating Thread for scheduler: 1
0.088 [ Info   ][TC] Thread created with scheduler type '1', priority 0 and period 0.
0.091 [ Info   ][Thread] Creating Thread for scheduler: 1
0.093 [ Info   ][GlobalEngine] Thread created with scheduler type '1', priority 0 and period 0.
0.095 [ Warning][Logger] Overriding TypeInfo for 'TheEnum'.
Failed to register enum<-> int conversion because type int is not known in type system.
Attempt to register Type 'TheEnum' twice to the Orocos Type System.
0.102 [ Debug  ][Logger] Registered Type 'TheEnum' to the Orocos Type System.
0.104 [ ERROR  ][TypeInfoName] Creating enum_type_test_int_save.cpf
No enum-to-string mapping defined for enum TheEnum. Converting to int.
Can not build Property of unknown_t.

Some test cases fail for Orocos 2.1.0 RTT built with MinGW

Hi,

I just downloaded and Orocos 2.1.0 RTT and compiled it with MinGW GCC4.4.0 and boost 1.43. Compilation ran to completion without any errors (only some warnings because of missing -enable-auto-import flag) - great :O)

Then I tried to run all test cases from the tests folders and some of the tests failed. The following test failed:

enum_type_test
function_test
marshalling_test
program_test
property_loader_test
property_marsh_test
property_test
scripting_test
state_test
types_test

I attached the console output of all tests that failed. Does this indicated that a MinGW built Orocos 2.1.0 does not work properly or does it indicate that I missed a configuration step before running the test cases?

Test output:

enum_type_test
Running 4 test cases...
rtt/tests/enum_type_test.cpp(83): fatal error in "testEnumIntConversion": critical check Types()->type("int") failed
rtt/tests/enum_type_test.cpp(121): fatal error in "testEnumStringConversion": critical check ts failed
 
 
function_test
Running 11 test cases...
rtt/tests/function_test.cpp(460): fatal error in "testSimpleReturnFunction": Parse error at line 1: Semantic error: Return type 'int' for function 'f
oo' is an unknown type.
rtt/tests/function_test.cpp(460): fatal error in "testOnlyExportFunction": Parse error at line 4: Semantic error: Return type 'int' for function 'foo
_ret' is an unknown type.
rtt/tests/function_test.cpp(460): fatal error in "testReturnExportFunction": Parse error at line 4: Semantic error: Return type 'int' for function 'f
oo_ret' is an unknown type.
rtt/tests/function_test.cpp(460): fatal error in "testCallFunction": Parse error at line 1: Semantic error: "int" is an unknown type...
rtt/tests/function_test.cpp(460): fatal error in "testFunctionStack": Parse error at line 2: Semantic error: "double" is an unknown type...
rtt/tests/function_test.cpp(460): fatal error in "testFunctionExportArgs": Parse error at line 1: Semantic error: "int" is an unknown type...
rtt/tests/function_test.cpp(460): fatal error in "testFunctionCallArgs": Parse error at line 1: Semantic error: "int" is an unknown type...
rtt/tests/function_test.cpp(460): fatal error in "testFunctionFail": Parse error at line 8: Semantic error: "bool" is an unknown type...
 
*** 8 failures detected in test suite "Master Test Suite"
 
main-test
does not produce any output
 
marshalling_test
Running 1 test case...
rtt/tests/marshalling_test.cpp(43): fatal error in "TestGetProvider": critical check sc failed
 
*** 1 failure detected in test suite "Master Test Suite"
 
program_test
Running 12 test cases...
rtt/tests/program_test.cpp(405): fatal error in "testParseProgram": Parse error at line 7: Fatal Semantic error: Cannot apply binary operation unknow
n_t == unknown_t.
rtt/tests/program_test.cpp(405): fatal error in "testProgramCondition": Parse error at line 23: Semantic error: "bool" is an unknown type...
rtt/tests/program_test.cpp(405): fatal error in "testProgramBreak": Parse error at line 3: Fatal Semantic error: Cannot apply binary operation unknow
n_t != unknown_t.
rtt/tests/program_test.cpp(405): fatal error in "testProgramAnd": Parse error at line 2: Fatal Semantic error: Cannot apply binary operation unknown_
t && unknown_t.
rtt/tests/program_test.cpp(405): fatal error in "testProgramTry": Parse error at line 3: Fatal Semantic error: Cannot apply binary operation unknown_
t && unknown_t.
rtt/tests/program_test.cpp(405): fatal error in "testProgramToProgram": Parse error at line 3: Fatal Semantic error: Cannot apply binary operation un
known_t == unknown_t.
rtt/tests/program_test.cpp(405): fatal error in "testProgramCallFoo": Parse error at line 2: Fatal Semantic error: Cannot apply unary operator "+" to
 unknown_t.
rtt/tests/program_test.cpp(405): fatal error in "testProgramDoFoo": Parse error at line 2: Fatal Semantic error: Cannot apply unary operator "+" to u
nknown_t.
rtt/tests/program_test.cpp(405): fatal error in "testSend": Parse error at line 6: Semantic error: "SendHandle" is an unknown type...
 
*** 9 failures detected in test suite "Master Test Suite"
 
property_loader_test
Running 4 test cases...
rtt/tests/property_loader_test.cpp(69): error in "testPropSaveLoad": check pl.configure(filename, &tc, true) failed
rtt/tests/property_loader_test.cpp(88): error in "testPropSaveLoad": check pl.configure(filename, &tc, true) failed
rtt/tests/property_loader_test.cpp(162): error in "testPropStoring": check tc.provides()->hasProperty("pdoubles") failed
rtt/tests/property_loader_test.cpp(168): error in "testPropStoring": check bag.size() == 3 failed [2 != 3]
rtt/tests/property_loader_test.cpp(170): error in "testPropStoring": check bag.find("pdoubles") failed
rtt/tests/property_loader_test.cpp(177): fatal error in "testPropStoring": critical check bagvector.ready() failed
 
*** 6 failures detected in test suite "Master Test Suite"
 
 
property_marsh_test
Running 3 test cases...
rtt/tests/property_marsh_test.cpp(114): fatal error in "testPropMarshVect": critical check bag.ready() failed
target: [[driveLimits='(unknown_t)'
]]
source: [[driveLimits='(unknown_t)'
]]
/rtt/tests/property_marsh_test.cpp(154): error in "testPropMarshVectLegacy": check refreshProperties( target, source) failed
rtt/tests/property_marsh_test.cpp(160): error in "testPropMarshVectLegacy": check p1->rvalue().size() == 6 failed [7 != 6]
rtt/tests/property_marsh_test.cpp(161): error in "testPropMarshVectLegacy": check p1->rvalue()[0] == 1 failed [1.234 != 1]
 
*** 4 failures detected in test suite "Master Test Suite"
 
 
property_test
Running 12 test cases...
rtt/tests/property_test.cpp(315): error in "testComposition": check pvd.getTypeInfo() != RTT::detail::DataSourceTypeInfo<RTT::detail::UnknownType>::g
etTypeInfo() failed
rtt/tests/property_test.cpp(318): error in "testComposition": check pvd.getTypeInfo()->composeType( pvd.getDataSource(), pvd2.getDataSource() ) faile
d
rtt/tests/property_test.cpp(322): error in "testComposition": check typeDecomposition( pvd.getDataSource(), bag.value() ) failed
rtt/tests/property_test.cpp(323): error in "testComposition": check pvd.getTypeInfo()->composeType( bag.getDataSource(), pvd2.getDataSource() ) faile
d
rtt/tests/property_test.cpp(324): error in "testComposition": check pvd == pvd2 failed
rtt/tests/property_test.cpp(343): error in "testNewDecomposition": check pvd.getTypeInfo() != RTT::detail::DataSourceTypeInfo<RTT::detail::UnknownTyp
e>::getTypeInfo() failed
rtt/tests/property_test.cpp(347): error in "testNewDecomposition": check propertyDecomposition( &pvd, bag.value() ) failed
rtt/tests/property_test.cpp(350): fatal error in "testNewDecomposition": critical check pvalue.ready() failed
 
*** 8 failures detected in test suite "Master Test Suite"
 
 
scripting_test
Running 1 test case...
rtt/tests/scripting_test.cpp(53): fatal error in "TestGetProvider": critical check sc failed
 
*** 1 failure detected in test suite "Master Test Suite"
 
state_test
Running 14 test cases...
rtt/tests/state_test.cpp(955): fatal error in "testParseState": Parse error at line 2: Semantic error: "int" is an unknown type...
rtt/tests/state_test.cpp(974): fatal error in "testStateFailure": critical check sm failed
rtt/tests/state_test.cpp(955): fatal error in "testStateChildren": Parse error at line 2: Semantic error: "double" is an unknown type...
rtt/tests/state_test.cpp(955): fatal error in "testStateTransitions": Parse error at line 3: Semantic error: "int" is an unknown type...
rtt/tests/state_test.cpp(955): fatal error in "testStateTransitionStop": Parse error at line 4: Fatal Semantic error: Cannot apply binary operation u
nknown_t == unknown_t.
rtt/tests/state_test.cpp(955): fatal error in "testStateGlobalTransitions": Parse error at line 2: Semantic error: "int" is an unknown type...
rtt/tests/state_test.cpp(955): fatal error in "testStateSubStateVars": Parse error at line 2: Semantic error: "double" is an unknown type...
rtt/tests/state_test.cpp(955): fatal error in "testStateSubStateCommands": Parse error at line 2: Semantic error: "double" is an unknown type...
rtt/tests/state_test.cpp(955): fatal error in "testStateOperationSignalTransition": Parse error at line 2: Semantic error: "double" is an unknown typ
e...
rtt/tests/state_test.cpp(955): fatal error in "testStateOperationSignalTransitionProgram": Parse error at line 2: Semantic error: "double" is an unkn
own type...
rtt/tests/state_test.cpp(955): fatal error in "testStateOperationSignalGuard": Parse error at line 2: Semantic error: "double" is an unknown type...
rtt/tests/state_test.cpp(955): fatal error in "testStateEvents": Parse error at line 2: Semantic error: "int" is an unknown type...
 
*** 12 failures detected in test suite "Master Test Suite"
 
types_test
crashes