Skip to content

HPC GAP test failures

fieker edited this page Mar 20, 2015 · 25 revisions

State of the GAP test suite in HPC-GAP

Below is an overview on the state of the test suite in HPC-GAP, with a list of known problems. In a few cases, names are listed indicating people who are looking into these issues (or at least were, during GAP Days Spring 2015).

The GAP test suite consists of several tests:

  • tst/testinstall.g
  • tst/testall.g
  • tests of the manual examples, packages loading, etc...
Test Main thread Background thread Main thread first, then background
testinstall.g 0 0 51
testall.g 0 119 (some because of missing packages) ?

Of course in addition to all this, we need to write more codes to increase the overall code coverage.

To start with, we are looking at tst/testinstall.g first.

Main thread, run testinstall.g once

Running the GAP test suite once in the main thread by now works reasonably well.

Main thread, run testinstall.g twice

Running the GAP test suite twice in the main thread produces some harmless failures (objects are printed differently because more information about them is known), but this is also the case in regular GAP. These should be fixed.

Single non-main thread, run testinstall.g once

Running the GAP test suite once in the background thread by now works reasonably well (with no packages installed, except GAPDoc)

Multiple threads, run tests in at least two.

The next stage (apart from writing many more tests ...) now is to run tests in multiple threads, in all kinds of variations: Run a single test (or the whole test suite) in the main thread; then afterwards (or in parallel) in another thread. Or vice versa, etc.

Running individual tests with Test, you may compare input and output up to whitespaces to ignore trivial diffs caused by different formatting. To do this, use optional 2nd argument rec(compareFunction:="uptowhitespace"), for example:

Test("tst/ctblmono.tst",rec(compareFunction:="uptowhitespace"));

(in particular , this is the setting used by Read("tst/testinstallg")).

Running tests in multiple threads uncovers many new problems, which need to be fixed. Note that some of them are just due to re-running tests, i.e. they also occur in GAP when running a test twice. To fix these, the tests should be adjusted.

Here is a list of files which experience problems, created by first running Read("tst/testinstall.g"); in the main thread, then afterwards running it again in another thread:

  • comprvec.tst
  • ctblmoli.tst
  • ctblmono.tst
  • ctblsolv.tst
  • grpmat.tst Claus: works after Max's collector fixes
  • grppc.tst
  • mapping.tst Claus: works after Max' collector fixes
  • morpheus.tst
  • relation.tst
  • semigrp.tst
  • vspchom.tst

Particular error messages include

[5] ########> Diff in /Users/alexk/GITREPS/hpcgap-fork/tst/zmodnz.tst, line 238:
[5] # Input is:
[5] Print(List( rings, Units ),"\n");
[5] # Expected output:
[5] [ Group( [ Z(2)^0 ] ), Group( [ Z(3) ] ), Group( [ ZmodnZObj( 3, 4 ) ] ), 
[5]   Group( [ ZmodnZObj( 5, 6 ) ] ), 
[5]   Group( [ ZmodnZObj( 7, 8 ), ZmodnZObj( 5, 8 ) ] ) ]
[5] # But found:
[5] [ Group( [ Z(2)^0 ] ), Group( [ Z(3) ] ), 
[5]   Error, Attempt to read object 4364599856 of type object (positional) w\
[5] ithout having read access
[5]     ########
[5] ########> Diff in /Users/alexk/GITREPS/hpcgap-fork/tst/relation.tst, line 19:
[5] # Input is:
[5] m := GeneralMappingByElements(dom,dom,List(dom,x->DirectProductElement([x,x])));;
[5] # Expected output:
[5] # But found:
[5] Error, Attempt to read object 4370018352 of type object (weakptr) withou\
[5] t having read access
[5] ########
[5] ########> Diff in /Users/alexk/GITREPS/hpcgap-fork/tst/vspcmat.tst, line 66:
[5] # Input is:
[5] lc:= LinearCombination( b, [ Z(3)^0, Z(3) ] );
[5] # Expected output:
[5] [ [ Z(3)^0, Z(3)^0 ], [ Z(3)^0, 0*Z(3) ] ]
[5] # But found:
[5] Error, Attempt to read object 4424078944 of type object (positional) wit\
[5] hout having read access
[5] ########
[5] ########> Diff in /Users/alexk/GITREPS/hpcgap-fork/tst/vspchom.tst, line 102:
[5] # Input is:
[5] 2 * map3 = - map3;
[5] # Expected output:
[5] true
[5] # But found:
[5] Error, Attempt to read object 4370018352 of type object (weakptr) withou\
[5] t having read access
[5] ########
[5] ########> Diff in /Users/alexk/GITREPS/hpcgap-fork/tst/semigrp.tst, line 24:
[5] # Input is:
[5] u := TransformationRepresentation(
[5] GeneralMappingByElements(g, g,
[5] [DirectProductElement([a^1, a^1]), DirectProductElement([a^2, a^1]), 
[5]  DirectProductElement([a^3, a^3]), DirectProductElement([a^4, a^4])]));;
[5] # Expected output:
[5] # But found:
[5] Error, Attempt to read object 4370018352 of type object (weakptr) withou\
[5] t having read access
[5] ########
[5] ########> Diff in /Users/alexk/GITREPS/hpcgap-fork/tst/mapping.tst, line 13:
[5] # Input is:
[5] tuples:= List( Tuples( AsList( M ), 2 ), DirectProductElement );;
[5] # Expected output:
[5] # But found:
[5] Error, Attempt to read object 4370018352 of type object (weakptr) withou\
[5] t having read access
[5] ########
[5] ########> Diff in /Users/alexk/GITREPS/hpcgap-fork/tst/grppc.tst, line 12:
[5] # Input is:
[5] m:=IsomorphismPcGroup(h);;
[5] # Expected output:
[5] # But found:
[5] Error, Attempt to read object 4483819248 of type object (data) without h\
[5] aving read access
[5] ########
[5] ########> Diff in /Users/alexk/GITREPS/hpcgap-fork/tst/vspcrow.tst, line 262:
[5] # Input is:
[5] subsp:= Subspaces( f, 2 );
[5] # Expected output:
[5] Subspaces( ( GF(3^2)^3 ), 2 )
[5] # But found:
[5] Error, Attempt to read object 4424078944 of type object (positional) wit\
[5] hout having read access
[5] ########
[5] ########> Diff in /Users/alexk/GITREPS/hpcgap-fork/tst/algmat.tst, line 13:
[5] # Input is:
[5] Ring( [ [ [ Z(9), Z(3) ], [ Z(3), 0*Z(3) ] ],
[5]            [ [ 0*Z(9), Z(27) ], [ Z(3)^0, Z(3) ] ] ] );
[5] # Expected output:
[5] <algebra over GF(3), with 2 generators>
[5] # But found:
[5] Error, Attempt to read object 4424078944 of type object (positional) wit\
[5] hout having read access
[5] ########

Who is working on what?

In order to avoid duplicate effort, please state here if you are working on a specific tst file:

Clone this wiki locally