Open line-o opened 3 years ago
This looks like an API mismatch. Which revision of eXist-db 5.3.0-SNAPSHOT are you testing against?
Can you rebase your PR atop the HEAD of develop and try again?
After rebasing the first error (of many) changed to:
Uncaught error from thread [XQTSRunnerSystem-akka.actor.default-dispatcher-11]: Could not initialize class org.exist.xquery.functions.fn.FnModule, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[XQTSRunnerSystem]
java.lang.NoClassDefFoundError: Could not initialize class org.exist.xquery.functions.fn.FnModule
Oh, the other one still is thrown, just later
Uncaught error from thread [XQTSRunnerSystem-akka.actor.default-dispatcher-9]: io/lacuna/bifurcan/IEntry, shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled for ActorSystem[XQTSRunnerSystem]
java.lang.NoClassDefFoundError: io/lacuna/bifurcan/IEntry
Same happens for the current revision of develop https://github.com/eXist-db/exist/commit/9ad24bd93f2183f0b61d2ca10ea77fe2a922af00
@line-o Interesting. I have been unable to reproduce this here on my MacBook. I know @joewiz had the issue previously, but he solved it by installing newer eXist-db artifacts (which you have done already). I will spin up a clean Linux VM shortly and see if I get the same issue as you...
@adamretter I can still run individual tests like fn-analyze-string, but I tried running the full suite via sbt "run"
(after building and installing eXist's develop at current HEAD (building with Java 8, as we discovered was needed on my system in that previous thread), and the runner appears to have stalled after 9 minutes. Here's the log from my terminal:
exist-xqts-runner-log.txt. And here's the target/junit/data folder just after I halted the runner:
data.zip. Should we perhaps be running something more targeted that sbt "run"
?
@adamretter Are you building and running this from within IDEA or using a terminal. I performed all these actions on ZSH in iTerm2. Did you install sbt from home-brew?
(FWIW, I install sbt, as well as maven and bell-sw/liberica/liberica-jdk8-full, via homebrew. I perform all building and execution of the project via command line - i.e., macOS Terminal with zsh.)
Does sbt have to use the same Java version as existdb was built with?
@line-o I don't think so. See @adamretter's comments here, including the version he's using: https://github.com/eXist-db/exist-xqts-runner/issues/11#issuecomment-719425606.
@joewiz try sbt clean assemble
It made a huge difference to run the assembled jar. Now, it seems to be doing what it should.
/cc @adamretter
🎉 Completed XQTS in (701819 ms)
@line-o Oh right, I forgot that I'd been running it that way before! I'll try too.
@line-o You just ran target/scala-2.13/exist-xqts-runner-assembly-1.0.0.jar
, no flags, right?
yup
Okay @line-o and @joewiz , so I built a completely new and clean VM to ensure no problems. I then installed the following:
I then performed the following steps:
mkdir code && cd code
git clone https://github.com/exist-db/exist.git
cd exist
mvn clean install -DskipTests
cd ..
git clone https://github.com/exist-db/exist-xqts-runner.git
cd exist-xqts-runner
sbt clean assembly
From there I then ran the assembly using the command:
target/scala-2.13/exist-xqts-runner-assembly-1.0.0.jar -x HEAD
The HEAD
part indicates that it should use the latest XQTS set of tests maintained on GitHub; the default otherwise is to use the XQTS 3.1 from the W3C which is a little aged and has a few bugs.
I did not see any of the errors that @line-o that look like: Caused by: java.lang.ClassNotFoundException: io.lacuna.bifurcan.IEntry
.
The full XQTS test run ran to completion. I captured the console output and have attached the log for your reference - HEAD.log
@line-o @joewiz It sounds like you both have it running successfully now too.
Does sbt have to use the same Java version as existdb was built with?
No.
Can we close this now? Do you feel that there is anything missing that you would like to contribute anything to the README.md
?
The readme needs to change, yes. It is frustrating to go through the above process and disenfranchises developers to run the XQTS themselves and regularly. I would like to keep it open until a PR to the readme was merged. I will update this ticket to reflect the outcome of the discussion.
@line-o Okay, so does that mean you will send a PR?
TL;DR: use the assembled JAR
sbt clean assemble
target/scala-2.13/exist-xqts-runner-assembly-1.0.0.jar -x HEAD
running the command
sbt "run -es XQ31"
orsbt "run"
A fatal error was thrown starting the test runner for the first time
Below a stack trace polluted by other log output