Michaël Van Canneyt 2e9b644ceb * Fix wrong format specifier há 11 meses atrás
..
avx 5d4bb6db9b * patch by lag programming to replace bitcnt by popcnt, resolves #40962 há 1 ano atrás
dosbox 7b492b9975 Add DosExitCode to DosError shl 16 to set ExitCode value in utils/dosbox/exitcode.pas program há 1 ano atrás
macos 4ace790492 * remove $Log há 20 anos atrás
testsuite 2e9b644ceb * Fix wrong format specifier há 11 meses atrás
unittests 49183639e0 * Reworked testsuite database há 11 meses atrás
variants f56c2bcefc * fixed some tests involving extended/double/currency after previous há 18 anos atrás
Makefile 49183639e0 * Reworked testsuite database há 11 meses atrás
Makefile.fpc 49183639e0 * Reworked testsuite database há 11 meses atrás
README.md 0cca70151f * Rework testsuite há 1 ano atrás
bench.pp f1d131ab83 + -B added to get timing info há 18 anos atrás
concat.pp 04df0d537e * more finegrained parallelism support for testsuite runs: the tests are no há 13 anos atrás
createlst.pp ef05e4cb49 Ensure '/' is used as directory separator to get same output as before há 9 anos atrás
dbadd.lpi 49183639e0 * Reworked testsuite database há 11 meses atrás
dbadd.lpr 49183639e0 * Reworked testsuite database há 11 meses atrás
dbdigest.lpi 49183639e0 * Reworked testsuite database há 11 meses atrás
dbdigest.pp 49183639e0 * Reworked testsuite database há 11 meses atrás
digest.pp 49183639e0 * Reworked testsuite database há 11 meses atrás
digestanalyst.pas 49183639e0 * Reworked testsuite database há 11 meses atrás
dotest.pp 49183639e0 * Reworked testsuite database há 11 meses atrás
drop_testsuite.sql 49183639e0 * Reworked testsuite database há 11 meses atrás
fail.pp 9f69dd28b4 Allow to pass antoher exitcode to fail utility by command line first parameter há 1 ano atrás
fptime.pp 2bcf1b7f59 * fptime works now usefully on unix systems há 6 anos atrás
fpts2junit.pp 5350ac7d65 fpts2junit: prevent double entries in junit xml (in test log are double entries, one for compiles, one for runs) há 4 anos atrás
gparmake.pp 26a49835b5 Use seplog name for separate chunck output file há 1 ano atrás
libtar.pas 788c6a6f83 Do not call Free if constructor failed há 11 anos atrás
prepup.pp 42b3a51333 * Try to call tarwriter.addfile multiple times há 11 anos atrás
redir.pp 77c51bf7e2 Add try/except block inside try/finally block in ExecuteRedir function há 1 ano atrás
testfail.pp 5fa9463074 * remove two warnings há 16 anos atrás
testsuite.sql 49183639e0 * Reworked testsuite database há 11 meses atrás
tsdb.pp 49183639e0 * Reworked testsuite database há 11 meses atrás
tsstring.pp 49183639e0 * Reworked testsuite database há 11 meses atrás
tstypes.pp 49183639e0 * Reworked testsuite database há 11 meses atrás
tsutils.pp a6077103b2 * typo fixed há 11 meses atrás

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 --threadlist=FILE file with configuration file names to import.
  • -j --threadcount=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 --threadlist 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:

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 revison 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.cfg

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.cfg

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

dbdigest -T mytests.cfg -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.