C++ duchain unit tests
nicolas.alvarez at gmail.com
Thu Jun 17 19:29:04 UTC 2010
I'm finding many problems with the duchaintest for C++. One was pretty
bad and fixed by Milian earlier today (a test was calling finalCleanup
and causing corrupted ASTs for every test that followed).
I just found another: testDeclareUsingNamespace fails if run alone.
FAIL! : TestDUChain::testDeclareUsingNamespace() Compared values are
not the same
Actual (bar->uses().count()): 0
Expected (1): 1
You can test this by passing the test function name as an argument to
the test tool:
The test works if testLocalNamespaceAlias runs before. I haven't
checked if only this particular test makes DeclareUsingNamespace pass,
or if there are others.
I modified testDeclareUsingNamespace to dump duchain, and when run
alone, the foo::bar declaration indeed has zero uses; while when run
after testLocalNamespaceAlias, there is a properly-ranged use.
>From looking at the tests alone, I can't figure out why it does work
if testLocalNamespaceAlias runs first. Isn't release(top) supposed to
cleanup enough? (I'm not yet planning to dive into the giant codebase
of the C++ parser :P)
More information about the KDevelop-devel