Toolkit settings - crocs-muni/randomness-testing-toolkit GitHub Wiki

You will have to configure few options in order to run RTT correctly. These options are read from file rtt-settings.json in JSON format that must be located in your working directory. You can find sample file in directory configuration_files.

Structure of rtt-settings.json file

JSON tree in the file rtt-settings.json must have following structure. Currently, RTT supports settings related to following batteries: NIST STS, DIEHARDER and TestU01. All paths set in this file can be either absolute (starting with '/') or relative to your working directory.

  • toolkit-settings Mandatory
    Root tag of the file.
    • logger Mandatory
      This section contains setting related to location of log files. All tags will be treated as directories. If the directories won't exist at the time of execution of the program, they will be created.
      • dir-prefix Optional
        If set, value of this tag will be prefixed to all log locations. Can be used when all logger directories should have same parent directory.
      • run-log-dir Mandatory
        Sets location of main log file. Logfile will have name based on time of execution, input file and used battery.
      • dieharder-dir Mandatory
        Sets location of files containing raw output of DIEHARDER battery. Logfile will have name based on time of execution and input file.
      • nist-sts-dir Mandatory
        Sets location of files containing raw output of NIST STS battery. Logfile will have name based on time of execution and input file.
      • tu01-smallcrush-dir Mandatory
        Sets location of files containing raw output of TestU01 Small Crush battery. Logfile will have name based on time of execution and input file.
      • tu01-crush-dir Mandatory
        Sets location of files containing raw output of TestU01 Crush battery. Logfile will have name based on time of execution and input file.
      • tu01-bigcrush-dir Mandatory
        Sets location of files containing raw output of TestU01 Big Crush battery. Logfile will have name based on time of execution and input file.
      • tu01-rabbit-dir Mandatory
        Sets location of files containing raw output of TestU01 Rabbit battery. Logfile will have name based on time of execution and input file.
      • tu01-alphabit-dir Mandatory
        Sets location of files containing raw output of TestU01 Alphabit battery. Logfile will have name based on time of execution and input file.
      • tu01-blockalphabit-dir Mandatory
        Sets location of files containing raw output of TestU01 Block Alphabit battery. Logfile will have name based on time of execution and input file.
    • result-storage Optional
      Section contains settings to result storages used during execution of the program. This tag is optional, as the program will not fail when the tag is missing in the file. But when the used storage will need some settings that were not set, execution will still end with error. This holds for all options in result-storage section. For more information about result storages see page.
      • file Optional
        Section with settings needed for file result storage. All tags except main-file are treated as directories and will be created if they don't exist.
        • main-file Optional
          Sets filename of the file with final results of the program run. If the file already exists, results will be added to it, if not, new result file will be created.
        • dir-prefix Optional
          If set, all directory values will have this prefix.
        • dieharder-dir Optional
          Sets location of reports of runs that used DIEHARDER battery. Report will have name based on time of execution and input file.
        • nist-sts-dir Optional
          Sets location of reports of runs that used NIST STS battery. Report will have name based on time of execution and input file.
        • tu01-smallcrush-dir Optional
          Sets location of reports of runs that used TestU01 Small Crush battery. Report will have name based on time of execution and input file.
        • tu01-crush-dir Optional
          Sets location of reports of runs that used TestU01 Crush battery. Report will have name based on time of execution and input file.
        • tu01-bigcrush-dir Optional
          Sets location of reports of runs that used TestU01 Big Crush battery. Report will have name based on time of execution and input file.
        • tu01-rabbit-dir Optional
          Sets location of reports of runs that used TestU01 Rabbit battery. Report will have name based on time of execution and input file.
        • tu01-alphabit-dir Optional
          Sets location of reports of runs that used TestU01 Alphabit battery. Report will have name based on time of execution and input file.
        • tu01-blockalphabit-dir Optional
          Sets location of reports of runs that used TestU01 Block Alphabit battery. Report will have name based on time of execution and input file.
      • mysql-db Optional
        Section with settings needed for MySQL Database storage.
        • address Optional
          Address of the MySQL server with RTT database created. Use "127.0.0.1" or "localhost" if you are running the server locally.
        • port Optional
          Port on which the MySQL server is accessible.
        • name Optional
          Name of the scheme with RTT tables.
        • credentials-file Optional
          Path to file that contains login information for the database. For structure of this file, see below.
    • binaries Mandatory
      Section with locations of the executable binaries of the installed batteries.
      • nist-sts Mandatory
        Path to NIST STS executable.
      • dieharder Mandatory
        Path to DIEHARDER executable.
      • testu01 Mandatory
        Path to TestU01 executable.
    • miscellaneous Mandatory
      Section with various settings. It is mandatory, because some of the options below are mandatory.
      • nist-sts Mandatory
        Settings related to NIST STS.
        • main-result-dir Mandatory
          Sets where NIST STS stores its result files. Don't change the default value experiments/AlgorithmTesting/.
    • execution Mandatory
      Settings related to RTT execution.
      • max-parallel-tests Mandatory
        Sets maximum number of concurrently running test processes. Modify the value according to your systems resources. Higher number means higher strain on your system. Value between 4 and 8 should run fine on most multi-core machines.
      • test-timeout-seconds Mandatory
        Sets time period after which the running tests will be considered stuck and will be killed. If you don't test exotic data (all zeroes), you can leave this value at 3600.

Structure of the file with login credentials

File with your login information follows this simple JSON structure.

  • credentials Mandatory
    • username Mandatory
    • password Mandatory