Naively we could simply invoke GAP.Globals.TestPackage("FOOBAR"). However, in the current model that exits GAP (and hence OSCAR / Julia), which we don't want...
In the short term, we could hack TestDirectory to handle exitGAP := true differently... But most GAP packages call FORCE_QUIT_GAP(1); after their TestDirectory call...
Short term solution: temporarily replace the GAP functions QuitGap (called by TestDirectory) and FORCE_QUIT_GAP with our own, which just record the exit code set by GAP, i.e., GapExitCode(), to determine the test outcome
We could add a helper function doing all that to GAP.jl. It ain't pretty, but it should work for the majority of packages
Long term:
get GAP packages to drop those FORCE_QUIT_GAP calls
add a dedicated (and documented) interface in GAP to indicate the test result
modify TestDirectory to use that, and/or add a sanctioned way to override the exitGAP option... and/or add a better named alternative to exitGAP (however, most GAP packages will want to stay compatible with older GAP versions, switching to such a new option would be a hassle for them)
Naively we could simply invoke
GAP.Globals.TestPackage("FOOBAR")
. However, in the current model that exits GAP (and hence OSCAR / Julia), which we don't want...In the short term, we could hack
TestDirectory
to handleexitGAP := true
differently... But most GAP packages callFORCE_QUIT_GAP(1);
after theirTestDirectory
call...Short term solution: temporarily replace the GAP functions
QuitGap
(called byTestDirectory
) andFORCE_QUIT_GAP
with our own, which just record the exit code set by GAP, i.e.,GapExitCode()
, to determine the test outcomeWe could add a helper function doing all that to GAP.jl. It ain't pretty, but it should work for the majority of packages
Long term:
FORCE_QUIT_GAP
callsTestDirectory
to use that, and/or add a sanctioned way to override theexitGAP
option... and/or add a better named alternative toexitGAP
(however, most GAP packages will want to stay compatible with older GAP versions, switching to such a new option would be a hassle for them)