[fpc-devel] FPC test suite and ALGLIB

Jonas Maebe jonas.maebe at elis.ugent.be
Fri Dec 11 11:13:37 CET 2009


On 11 Dec 2009, at 10:42, Sergey Bochkanov wrote:

> Hello, Jonas.
>
>> Thanks, I've added them to svn. I cursorily tested them and they at
>> least work under Mac OS X/x86_64 and Mac OS X/PowerPC.
>
> Is  it  possible  to  test  them  under  other  platforms? SPARC, ARM,
> PowerPC64?

The tests are part of the nightly test suite now, so they are tested  
on all platforms for which nightly tests are performed. They seem to  
have worked fine on all properly tested platforms (ARM is not one of  
those though).

> However,  there  is  a  problem  you  should  know  about. ALGLIB uses
> non-deterministic  unit  tests. I.e.  test sets are generated randomly
> (instead  of  being  built-in, pre-generated). This approach have both
> benefits  and  drawbacks.

At the very least, the value of randseed should probably be written  
out on startup so that the test can be reproduced under the same  
circumstances if it fails.

> So we have two options:
> 1. to use only the most stable units
> 2.  to  give  me limited access to SVN so I may run these tests myself
> and study their results.
>
> I  have  enough  time  on my hands so I can help you with tests if you
> want.

Everyone has read-only access to the tests in svn, since they're part  
of the regular fpc svn repository: http://www.freepascal.org/develop.var#svn

To run the testsuite, first perform a "make clean all" in the FPC  
directory, then change to the tests directory and run

make FPC=compiler_to_compile_testsuite_utilities TEST_FPC=/full/path/ 
to/fpc/compiler/ppc386 TEST_OPT="-O2 -Cppentiumm" clean all digest

(replace ppc386 with ppcx64 in case of x86_64 platforms, and the  
contents of TEST_OPT with whatever options you want to use to compile  
the tests). Afterwards, you an find a list of failed tests in output/ 
$fulltarget/faillist, and output/$fulltarget/longlong contains the  
full compiler/test output).

This will always do a full testsuite run though (which takes quite a  
while to complete, even on a fast machine). There's currently no way  
to only execute a subset of the testsuite. The alglib tests are in  
tests/test/alglib.

If you want, I can give you svn write access to tests/test/alglib so  
you can easily add/change the tests there though.


Jonas



More information about the fpc-devel mailing list