Hi,
as you probably imagine, I unfortunately also can't tell you why that
line breaks something. We didn't move all IO classes to the new concept
yet simply because whe didn't have enough time before the 2014.10
release (and the parallel support for the old system seemed to work
well). During the next weeks, we will however start moving all IO stuff
to the new concept and remove the old deprecated classes/methods. Maybe
we will stumble across a similar problem then.
Best,
Sascha
On 01/05/2015 09:06 PM, Nil Goyette wrote:
Hi all,
AUTOLOAD_WITH is not the problem. I managed to track down the problem
to a single line in one of the non-test normal code.
We created our own PlanarFigure called PlanarPointToLine, which need
to be serialized like all other mitk::PlanarFigure. To do so, I read
the code in mitk::PlanarFigureReader and I realized that there's no
practical way to add our own PlanarFigure. So, I copied
mitk::PlanarFigureReader into our project, modified it to fit the new
IO concept (mitk::AbstractFileReader) and changed the big if else if
block near line 160 into:
mitk::PlanarFigure::Pointer planarFigure = nullptr;
if (type == "PlanarPointToLine")
{
// This simple line breaks my tests, but our application still works.
planarFigure = mitk::PlanarPointToLine::New();
}
else
{
// use mitk::PlanarPointToLine to read it
planarFigure = ...
}
... the rest of the code is almost identical to mitk's code.
Of course, I have no idea why that line breaks my tests; they are not
even related. Maybe you know?
I don't know who is in charge of Modules/PlanarFigure/IO/* but I
wonder why it is still using the old IO concept (mitk::FileReader).
Did you try it and revert after because there was a problem? Or you
simply didn't have enough time do to it? I also had PlanarPointToLine
with mitk 2014.03 (old IO concept) and had no such troubles.
Le 2014-12-15 16:30, Nil Goyette a écrit :
Hi all, Hi Sascha,
I did more tests and discovered that my tests stopped working when I
added "AUTOLOAD_WITH MitkCore" to my IO module. When I remove it,
clean and build again, ctest outputs normal messages like
1/N Test #1: BoneDensityTest999
.............................***Failed 0.34 sec
2/N Test #18: BoundingObjectTest1
............................***Exception: SegFault 6.33 sec
which can now be runned and debugged.
As I wrote in my first message, we added a "AUTOLOAD_WITH MitkCore"
in our IO module because I think it's mandatory for the Activator to
Register all the readers and writers. I simply copied what I saw in
MITK IOExt. What is the right way to do that? Should I use one of our
own module instead of "MitkCore"?
Le 2014-12-10 08:25, Nil Goyette a écrit :
Hi Sascha,
Thank you for your answer. Yes, I built our applications from a
"fresh" cmake Configure/Generate when I started. Just to be sure , I
deleted my build directory and built everything again. It didn't
change anything. I still have the same problems I described in my
last message.
Le 2014-12-09 14:06, Sascha Zelzer a écrit :
Hi Nil,
this looks like some strange build tree artifacts, so before
further investigations I need to ask if you did a clean build or
re-used an existing build tree during the migration.
Thanks,
Sascha
On 12/09/2014 07:12 PM, Nil Goyette wrote:
Hi all,
I ported our applications to MITK 2014.10 and several tests fail
since. I investigated and found some facts which will hopefully
help you help me :)
They do nothing if I start them individually with *TestDriver.exe.
They simpy print \n and return to the command line.
One time though, I was able to run one test, not sure what I did.
It printed:
3: 0.18 core.int.coreAct WARNING: In
`anonymous-namespace'::load_impl at
..\..\..\..\..\Core\CppMicroServices\core\src\util\usUtils.cpp:90
: L'accès à cet emplacement de la mémoire n'est pas valide.(French
for: Access to this memory address is invalid)
3: 0.18 core.int.coreAct WARNING: In us::AutoLoadModulesFromPath
at
..\..\..\..\..\Core\CppMicroServices\core\src\util\usUtils.cpp:176
: Auto-loading of module
C:\Imeka\plitk\imeka-plitk\_VS12_x32_2014.10\bin\MitkCore\Release\ImekaIO.dll
failed.
Available tests:
0. VFFReaderTest
I understand the second message. We added a "AUTOLOAD_WITH
MitkCore" in our IO module because I think it's mandatory for the
Activator to Register all the readers and writers. Is there
another way?
The error messages doesn't help me much:
18/N Test #18: BoundingObjectTest1
............................***Exception: Other 0.37 sec
19/N Test #19: VFFReaderTest1
.................................***Exception: Other 0.41 sec
... and it's not better with -VV
Running one of the failing test in debug (to understand what Other
Exception is) leads me to a strange place. The place itself
(dbgheap.c) is probably uninteresting to MITK, but the stack trace
might be of interest. Take a look at the attachment. We can see
that it never enters the test. It just kills itself before. This
only happens in debug though.
I'm unsure what to do next. I know the content of my test is ok (a
simple std::cout make them fail...) but I can't get them to run. I
would appreciate any help! Thanks and have a nice day.
------------------------------------------------------------------------------
Dive into the World of Parallel Programming! The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users