Curtis Hamilton 6a6275f51f Merge branch source:main into main vor 1 Monat
..
avx bfa988e188 Mass typo fixes in comments for tests. vor 1 Monat
dosbox 870a91502a Fix compilation of dosbox_wrapper.pas vor 8 Monaten
macos bfa988e188 Mass typo fixes in comments for tests. vor 1 Monat
testsuite 6a6275f51f Merge branch source:main into main vor 1 Monat
unittests 523c4486aa * Add CheckAllRTL vor 11 Monaten
variants d8d6c7958f Mass trailing space removal for tests. vor 1 Monat
Makefile 6a0993de33 Update code to fix test compilation errors. vor 2 Monaten
Makefile.fpc 49183639e0 * Reworked testsuite database vor 1 Jahr
README.md bfa988e188 Mass typo fixes in comments for tests. vor 1 Monat
bench.pp f1d131ab83 + -B added to get timing info vor 18 Jahren
concat.pp 04df0d537e * more finegrained parallelism support for testsuite runs: the tests are no vor 13 Jahren
createlst.pp ef05e4cb49 Ensure '/' is used as directory separator to get same output as before vor 9 Jahren
dbadd.lpi 49183639e0 * Reworked testsuite database vor 1 Jahr
dbadd.lpr 49183639e0 * Reworked testsuite database vor 1 Jahr
dbdigest.lpi 2ff7f45a36 * Add tssql vor 11 Monaten
dbdigest.pp 77de2ca279 Mass typo fixes in strings for tests. vor 1 Monat
digest.pp 49183639e0 * Reworked testsuite database vor 1 Jahr
digestanalyst.pas 393fc1cea2 * Correct counting vor 11 Monaten
dotest.pp bfa988e188 Mass typo fixes in comments for tests. vor 1 Monat
drop_testsuite.sql 49183639e0 * Reworked testsuite database vor 1 Jahr
fail.pp 9f69dd28b4 Allow to pass antoher exitcode to fail utility by command line first parameter vor 1 Jahr
fptime.pp d8d6c7958f Mass trailing space removal for tests. vor 1 Monat
fpts2junit.pp 5350ac7d65 fpts2junit: prevent double entries in junit xml (in test log are double entries, one for compiles, one for runs) vor 4 Jahren
gparmake.pp 22c91ec124 * use sametext instead of converting case vor 10 Monaten
libtar.pas bfa988e188 Mass typo fixes in comments for tests. vor 1 Monat
prepup.pp 42b3a51333 * Try to call tarwriter.addfile multiple times vor 11 Jahren
redir.pp bfa988e188 Mass typo fixes in comments for tests. vor 1 Monat
testfail.pp 5fa9463074 * remove two warnings vor 16 Jahren
testsuite.sql a05f52dfed * Add CheckAllRTL vor 11 Monaten
tsdb.pp a412bc39cd * Add CheckAllRTL explanation vor 11 Monaten
tsstring.pp efe885c446 * Introduce stInvalid test status vor 11 Monaten
tstypes.pp 523c4486aa * Add CheckAllRTL vor 11 Monaten
tsutils.pp a6077103b2 * typo fixed vor 1 Jahr

README.md

DBDigest tool.

Configuration

There are 2 kinds of configuration data for DBDigest.

  • global configuration
  • Test run data

Global configuration

This includes database configuration and run mode. the database configuration can be specified in 3 different ways:

  • in the global /etc/dbdigest.ini
  • the dbigest.cfg run file (deprecated)
  • the command-line. (deprecated)

The global file is read first, if it exists. The dbdigest.cfg file is read next, and the command-line options are list:

The recommended way is to put it in the global config file, which has the following format (the values are examples):

[Database]
Name=testsuite
Host=localhost
username=user
password=secret
port=5432

In the 'dbdigest.cfg' file, the format is backwards-compatible:

databasename=NAME
host=HOST
password=PWD
username=USER

On the command-line the options are:

  -d --databasename=NAME            database name
  -h --host=HOST                    database hostname
  -p --password=PWD                 database user password
  -P --port=NNN                     database connection port
  -u --username=USER                database user name

Other than the database connection, the following global options can be given:

  • -r --relsrcdir=DIR the relative source dir for getting test files.
  • -S --testsrcdir=DIR the absolute test source dir
  • -T --tasklist=FILE file with configuration file names to import.
  • -j --taskcount=N Maximum number of threads to use when importing.
  • -V --verbose be more verbose (writes lots of debug info)
  • -f --config=FILENAME in case a single digest file is imported, the name of the config file. If not set, dbdigest.cfg is used.

If the -T --tasklist option is given, then -f/--config is ignored: no default file will be read. Only the files in the threadlist file will be treated.

Example of a thread list file (mytests.lst):

2025-05-01-i386/gcc-dbdigest.cfg
2025-05-01-arm/llvm-dbdigest.cfg

The logfile and longlogfile will be treated as relative to the dbdigest.cfg files if they are relative filenames. If they are absolute filenames, they're used as-is.

Test Run data

Run data describes one test run: basically, one dbdigest.cfg. For a single test run, the dbdigest.cfg file is read and the command-line options are examined to compose all data for a test run.

  • -l --logfile=FILE set log file to analyse
  • -L --longlogfile=FILE set long log filename (logs of run tests)
  • -o --os=OS set OS for testrun
  • -c --cpu=CPU set CPU
  • -a --category=CAT set category
  • -v --version=VER set compiler version
  • -t --date=DATE date in YYYMMDD(hhmmnn) format (only the date part is retained)
  • -s --submitter=NAME submitter name
  • -m --machine=NAME set machine name on which testsuite was run
  • -C --compile-flags=FLAGS set used compilation flags
  • --comment=FLAGS backwards compatible way to set compilation flags (deprecated)
  • -D --description=DESC set config description (helpful comment)
  • --compilerdate=DATE set compiler date
  • --compilerfullversion=VERSION set full compiler version
  • --svncompilerrevision=REV set revision of used compiler
  • --svntestsrevision=REV set revision of testsuite files
  • --svnrtlrevision=REV set revision of RTL
  • --svnpackagesrevision=REV set revision of packages

The preferred way to specify the options is in a dbdigest.cfg file. The name of this file is settable using the -f or --config command-line option.

The dbdigest.cfg accepts all long versions of the command-line options, and you can specify comments using the usual # sign.

Examples

Import data from a single testrun, with testrun data in mytest.cfg:

dbdigest -f mytest.lst

The database connection data will be read from the global configuration.

Import data from a list of testruns in mytests.lst (4 threads):

dbdigest -T mytests.lst

Import data from a list of testruns in mytests.lst (8 threads):

dbdigest -T mytests.lst -j 8

DBAdd tool.

To add new CPUs or OSes to the database, use the dbadd tool. It will use the global dbdigest.ini file to connect to the database, and will add the new record in the appropriate table. The tool accepts 3 command-line options:

  • -t --type=TYPE where TYPE is one of os, cpu, category or version
  • -v --value=value the value to add
  • -d --date=YYYYMMDD only used when adding a version: the release date of the version (if not specified, today is used).

Test definitions are added automatically during import.