Closed khatchad closed 4 months ago
I've also tried external functions. Those also don't work.
I've also tried external functions. Those also don't work.
But they do work in our client that imports Ariadne as a dependency, which makes me think that this could be a testing issue, at least for the external functions case. However, external ctors and other method calls don't work in both the Ariadne tests as well as our client application.
Well, here's an interesting find. The tests in com.ibm.wala.cast.python.test
are run twice. I assume once with Jython and once with Jythion3. In one run it works and in the other one, it doesn't. I am thinking then that the reason our fix works in our client is because we are forcing Jython3 to load.
This also makes me believe that the ML tests are using Jython and not Jython3.
I'm unsure how this is happening, i.e., how the tests are being run twice.
Well, in the test, I can repro this and cannot repro this depending on the test iteration. Why there are multiple I don't know, but it seems that the first one tests stuff in target/
, while the second tests stuff in the repo. Other than that, I cannot see the differences between the two runs to understand why the call graph differs.
It's possible that the modules are created differently depending on the location of the test files. In one test iteration, the test files come from target/
, in an other, they come from the repo. Here's the module creation logic for test cases:
Consider the following example:
The resulting call graph on 5ad4daec4bde8087b714892bd956f482a7e17d2d:
Note that the second to last line shows that
f()
has no callees. It should call the constructor forC
. I've also tried this with an explicit default ctor as well as explicitly defined methods.