Conversation
- Explicitly add test output path to the compiler classpath Rather than assuming its in the application classpath. - Ensure tests cleanup threads - Fork tests that inherently require it or ones that I can't figure out how to make work without it
Tests that take 30+ seconds to compile and/or execute really add up to a productivity loss for contributors. These tests served a purpose to show that the corresponding changes were correct. But if we want them to serve an ongoing purpose of guarding against regressions, they need to be maintained to do so more quicky or be moved into a test suite that is run less frequently.
61ec1fb to
a3e9512
Compare
…ction The logic that decides to print `Function`, rather than `scala.Function` did not account for the multiplicity of symbols for a given package in the JavaMirrors universe.
…replaced or mutated
- Update to partest that emits more detailed TestEvents - Group partest JUnit XML reports in, e.g, test.files.pos.xml - workaround Jenkins dislike of the work "run" Requires a new version of partest to provide some missing metadata. Sample files generated: ``` > ;partest --srcpath scaladoc --grep t7876; partest --grep default ... ``` ``` ⚡ (cd target/test/test-reports/partest && find . ) . ./test.files.jvm.xml ./test.files.neg.xml ./test.files.pos.xml ./test.files.presentation.xml ./test.files.run_.xml ./test.files.scalap.xml ./test.files.specialized.xml ./test.scaladoc.run_.xml ```
a3e9512 to
8c5930a
Compare
|
My vote is to merge this and merge forward to 2.13. If we find a problem with Partest 1.1.7, we can just bump the version back without the other changes causing problems. @lrytz WDYT? |
lrytz
left a comment
There was a problem hiding this comment.
Agree to merge it here.
- Why did you backport "Elide prefixes in printed types uniformly in runtime reflection"?
- We could create a
test/longrunningfolder for the resource hungry tests, and run them in nightlies for example. WDYT? - Could you expand a little in the first commit message "Fork tests that inherently require it"? What are known conditions? For example, I randomly picked
t8266-octal-interp.scalaand was wondering why. Is it the mix of compiler an run output in the check file?
| // `Settings` is used to check YdisableFlatCpCaching in ZipArchiveFlatClassPath | ||
| val factory = new ClassPathFactory(new Settings()) | ||
| val containers = factory.classesInExpandedPath(Defaults.javaUserClassPath) | ||
| val containers = factory.classesInExpandedPath(sys.props("partest.output") + ":" + Defaults.javaUserClassPath) |
There was a problem hiding this comment.
This should probably use java.io.File.pathSeparator to also work on windoze
| if (getClass.getClassLoader.getParent != null) { | ||
| s.classpath.value = s.classpath.value match { | ||
| case "" => testOutput.toString | ||
| case s => s + ":" + testOutput.toString |
Prior to that fix, tests that relied on
I don't think there is enough value in the ones I've dropped to setup that infrastructure.
Can do. Once I got down to the last few tests, I wasn't always sure why the forking was necessary, but for some I should be able to give an explanation. |
Just a comment here is fine, instead of rebasing and rebuilding the whole thing. It doesn't need to be exhausitive, just a few pointers. |
|
Know reasons to fork:
Less well known:
Not known/remembered:
|
🐵 |
|
Submitted the forward merge as #6451 |
(2.12.x version of #6391)
Prepares for, and then switches to, partest 1.1.6 which will
include a mode to run tests without forking.
Removes some resource hungry tests. Volunteers sought to revive
these in more frugal form.
Also backports the new test listener that integrates partest
into the Jenkins Test Results report.