Description
Status | Assigned | Task | ||
---|---|---|---|---|
Resolved | None | T3895 [Dashboard] dartclient failed to pass mitkPropertyListTest on MacOSX | ||
Resolved | None | T3893 [Dashboard] dartclient failed to pass mitkBaseDataTest |
Event Timeline
The GetProperty() is failing for all types: Get{Bool | Int | Float}Property() because of a dynamic_cast returning NULL in the method
GetPropertyValue(const char* propertyKey, T & value)
in mitkPropertyList.cpp at line 247:
GenericProperty<T>* gp= dynamic_cast<GenericProperty<T>*>(GetProperty(propertyKey) );
I looked into the test code and cannot see the problem yet.
The failing test
- adds a BoolProperty into a PropertyList
- calls the templated GetPropertyValue<bool> to check the property value
- checks the return value of GetPropertyValue
- checks the returned value against the actual property value
Since I don't have a Mac build ready, I first enhanced the test output. I also checked the implementation of GetPropertyValue and cannot find a problem. We have this strange construction with GenericProperty<bool> and BoolProperty, but technically it should work to cast a BoolProperty to GenericProperty<bool>.
I'll try to get a build environment on mbi070.
T3893 might be a duplicate, it also fails in checking some bool property..
T3893 is failing not only due to the failing GetBoolValue(). So it is related, but not a duplicate.
The templated method mitk::PropertyList::GetPropertyValue<T> does not work,
cause it is based on GenericProperty<T>, which doesnt work correctly on Macs due to a compiler bug. Please see my comments on T3893 for details.
I add a patch that disables the tests for the templated method for macs.
Testing bugs are part of their respective modules -> changing component to other, please assign appropriate component.