-
Notifications
You must be signed in to change notification settings - Fork 132
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
Tests: automatically run all test files #2810
Conversation
Actually |
Main.include("setup.jl") | ||
Main.include("straightline.jl") | ||
Main.include("gap.jl") | ||
Main.include("atlas.jl") |
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.
Does this really work? Whenever you create a new module
then Julia installs a custom include
method for it of the form include(p) = Base.include(Mod, p)
where Mod
is the module (here: SLPTest
). Source: the docstring for baremodule
.
So just calling Main.include
doesn't seem likely to support this...?
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 think I did run this locally. It probably defeats the purpose of the submodule right now, but it didn't seem to cause any errors. We could probably pass the module as an extra argument.
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.
OK fair enough. I guess as long as this is the last test (and thus cannot affect others tests), and if it really works, then it is fine :-)
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 changed it to call include
with the correct module now.
I think this was needed mostly for running the doctests after the normal testsuite, which we don't do anymore.
96a1ed0
to
3b4de37
Compare
Codecov Report
@@ Coverage Diff @@
## master #2810 +/- ##
===========================================
+ Coverage 43.74% 80.42% +36.67%
===========================================
Files 458 466 +8
Lines 65036 66231 +1195
===========================================
+ Hits 28451 53265 +24814
+ Misses 36585 12966 -23619
|
3b4de37
to
61305e1
Compare
test/Modules/runtests.jl
Outdated
# FIXME: broken, probably obsolete? | ||
# include("GradedModules.jl") | ||
|
||
|
||
# TODO: the corresponding source file is also commented | ||
# include("FreeModules-graded.jl") |
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.
Rebased to resolve a merge conflict. |
This is marked as a draft, so what's the plan here? Do you plan to make more changes? If so, perhaps the fixes could already be applied via a separate PR. |
I was hoping to get some more feedback on the graded modules, I would prefer to remove them to avoid confusion. I could also change the code to automatically include all |
I really like a list of things where I can easily exclude some test-parts by commenting them out (e.g. for local testing gradually comment out everything that already passed, so that after a failure and a fix one does not have to restart the whole testsuite over and over again) |
@benlorenz wrote:
I'll try to prod @fieker to comment on this
I am in favor. It would also help with parallelization: we could replace the @lgoettgens wrote:
I hear you, but I think we can achieve this in other ways. E.g. we could have |
And we need to think about files like |
The current state here is that the test list is now autogenerated and shuffled. I improved
Both Currently the ignore list contains:
I removed a bunch of The test order is now shuffled (but this should be stable since the global RNG is seeded). |
I have the slight impression that the new ordering might cause more timeouts even on 1.6 and 1.9. |
For the Lie algebra test conflict: I think it would be safest to rebase this onto the current master and then copy-paste the conformance test function again. And I am scared that #2572 will touch these again and create more conflicts. If this here gets merged in the near future, I can adapt #2572 accordingly. |
9c0ab38
to
69ce98a
Compare
I think when testing with multiple groups you did something like |
I have a For now I want to see how well the small / large separation works. Depending on that I will give other split methods a try as well. |
I think this is ready now, the long+short split seems to work quite well: both take around 40-60 min for the runtests step (on github actions). So far I have done this split only for Linux where we have plenty of parallel workers (and not for macOS where there are only 5). |
#2572 will create another conflict with this PR. |
As this test increases the number of jobs that report coverage data to codecov, the variable |
Thanks for noticing this, four uploads would be correct. I just tried to check the report and there are only three uploads here: https://app.codecov.io/gh/oscar-system/Oscar.jl/commit/6b94fe0f4d5478429a39f284bd51d57605d62723 Some random error seems to have occurred in one of the upload steps:
I set it to four and if this error happens again one can still check codecov manually or restart the failing job. Otherwise, from my point of view the code is ready to be merged, and I don't really care if this is done before or after the Lie algebras. We just need to adapt the branch protection rules. Maybe I can do a little bit of rebase to avoid the squash merge to keep the changes in the test-driver separate from the removal of all the |
The Lie algebra PR will hopefully merge in about 20 minutes (once ci is green), so this afterwards would be easier I think. Some partial squashing sounds like a good idea. |
move logic from main runtests.jl to src/utils/tests.jl generate testlist from existing files + folders improve test_module to allow folders and be more flexible regarding file ending add timed support for test_module use global ignore list for test files to skip run setup_tests.jl before each file in a folder if it exists shuffle testlist remove printf
…n runtests.jl test/Serialization: special case IPC.jl test to make it run on main process only
this is not necessary anymore since the runtests.jl files are mostly gone (we might lose very few per-file stats)
removing them allows the other jl files to be parallelized and shuffled - remove obsolete Rings/runtests - fix running Groups/constructors separately - slightly reorganize test_save_load
…to be in Rings/ReesAlgebra.jl now
54be2ff
to
ea56d0f
Compare
I think for the LieAlgebra stuff you can do just the same as before (just copy the new version of the conformance tests) |
Rebased to split it into logical chunks. I think these should be fine for a non-squash merge now. (Edit: Clicked the wrong button and squashed it anyway...) I also removed the changes to |
Add more test files that were not included:
OrthogonalDiscriminants:data.jl
pcgroup.jl
special_ideals.jl
Add comments regarding
GradedModules.jl
andFreeModules-graded.jl
, some of this might be obsolete with theModulesGraded.jl
tests?Remove unused
Modules/ReesAlgebra.jl
test file, the contents seem to be inRings/ReesAlgebra.jl
now.Add check that fails when test files are added but not executed, with an ignore list for the graded modules.