-
Notifications
You must be signed in to change notification settings - Fork 323
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix incremental compilation of runtime/test #8975
Fix incremental compilation of runtime/test #8975
Conversation
@@ -114,8 +114,6 @@ object JPMSPlugin extends AutoPlugin { | |||
) | |||
}.toSeq | |||
|
|||
ensureDirectoriesExist(modulePath, log) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
These warnings are annoying and they are not useful. Java does not mandate that the directories passed into, e.g., --module-path
option exist.
c8e91a3
to
7e934d9
Compare
c496ae9
to
0997cf2
Compare
@@ -49,6 +49,17 @@ public void resetOutput() { | |||
out.reset(); | |||
} | |||
|
|||
@Test | |||
public void jvmAssertionsAreEnabled() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have spent ridiculous amount of time debugging RuntimeErrorsTest
just to realize that I have not enabled JVM assertions, so the DataFlow errors did not contain stack traces. Let's add this test so that nobody encounters something similar in the future.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed Rust parts only. 🟢
ec3f437
to
5d57cc2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hard to review such a huge shuffling of code, but the intentions I have spotted are good.
@@ -1650,109 +1617,6 @@ lazy val runtime = (project in file("engine/runtime")) | |||
necessaryModules ++ langs ++ tools | |||
} | |||
) | |||
.settings( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was hoping the setup of runtime
project will be simpler. Removal of these lines matches my expectations.
* the `org.enso.runtime` JPMS module, so it is easier to keep them in a separate project. | ||
* For standard unit tests, use `runtime/Test`. | ||
*/ | ||
lazy val `runtime-integration-tests` = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Configuration of this project remains complicated, but at the end, they are integration tests - they can be complicated.
...-benchmarks/src/main/java/org/enso/interpreter/bench/benchmarks/semantic/AtomBenchmarks.java
Show resolved
Hide resolved
@@ -1869,7 +1869,7 @@ lazy val `runtime-benchmarks` = | |||
(Compile / run).toTask("").tag(Exclusive).value | |||
} | |||
.dependsOn( | |||
`runtime-fat-jar` / assembly | |||
buildEngineDistribution |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
596e07e
to
f873840
Compare
Scheduling engine benchmarks at https://github.com/enso-org/enso/actions/runs/7873980506/job/21482523287, and stdlib benchmarks at https://github.com/enso-org/enso/actions/runs/7873983053
|
Encountered some problems with
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM (sorry for late review)
Fixes #8973 and #9026
Pull Request Description
Fixes incremental compilation issues of
runtime/Test
by introducing a separateruntime-integration-tests
project. Also move runtime benchmarks to a newruntime-benchmarks
project and provide an easier way how to run the benchmarks.For now, let's move all the tests from
runtime/Test
toruntime-integration-tests
, just to be sure that all the tests run with all the dependencies. In the future, we can add standard unit tests, that do not require the Enso runtime, toruntime/Test
.Important Notes
runtime-benchmarks
projectruntime/bench
.runtime-integration-tests
projectruntime/test
.bench
andbenchOnly
commands work as they used to.src/main/java
, no morebench
directory.run -h
to see all the available cmd line options for the launcher.RegressionTest.scala
.std-benchmarks
projectJPMSPlugin
.How I tested the changes?
Incremental compilation of
runtime-tests
tested by:pkg
,runtime
, andruntime-instrument-common
and then re-runningruntime-tests/testOnly
.Tested other commands:
sbt:runtime-integration-tests> withDebug --debugger
sbt:runtime-benchmarks> run - i 1 -wi 1 org.enso.interpreter.bench.benchmarks.semantic.AtomBenchmarks.benchSumList
Checklist
Please ensure that the following checklist has been satisfied before submitting the PR: