Some benchmark output reports are in the format:
xyz score:XYZ
Here there is no space between ':' and actual result.
To parse such format create a template something like this:
<OutputTemplate>xxx:#_RESULT_#</OutputTemplate>
This type of the format can't be parsed correctly.
The current implementation expects a "space" after column.
For example:
In test-profiles/system/selenium-1.0.18/results-definition.xml
<ResultsParser>
<OutputTemplate>WEBXPRT SCORE RESULT: #_RESULT_#</OutputTemplate>
To be able to parse when there is no space between ":" and "#" add a
a space character in the template line.
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
psys domain is a system domain which aggregates all system power. This requires
hardware support and configuration by OEMs. There can be multiple psys domains
in servers. psys domains are present at the same level as package domains in the
powercap/intel-rapl sysfs. This is not just CPU related power.
For CPU power sensor just use package level without adding energy values from
psys domains. So, skip adding psys energy value to $total_energy.
Marking test as compatible if optional HOST_EXTRA_COMPATIBLE_ARCH
environmental variable is matching one of the supported architectures.
Signed-off-by: Ettore Chimenti <ettore.chimenti@linaro.org>
This option allows to specify additional architecture support to being
able to install tests that supports specific architectures only. It can
be useful in systems where is available an user-space emulator (e.g.
FEX-EMU for x86_64 applications on aarch64) to run binary tests that
cannot be compiled natively.
The introduced environment variable is HOST_EXTRA_COMPATIBLE_ARCH.
Signed-off-by: Ettore Chimenti <ettore.chimenti@linaro.org>
pts_network::is_proxy_setup() was introduced in e36e865 for the reason
"Don't use HTTPS on proxies when connecting to OpenBenchmarking.org",
however, in reality, HTTPS is only used if a proxy is configured.
is_proxy_setup() returns TRUE if no proxy is set, which seems the
opposite of the expected return value from the function name,
unlike other functions starting with is_*().
The install on macOS having AppStream file was superfluous and no point in installing the XML to the modern "metainfo" location if the existing AppStream data wasn't even valid against their modern standards
Closes: https://github.com/phoronix-test-suite/phoronix-test-suite/pull/699
Closes: https://github.com/phoronix-test-suite/phoronix-test-suite/pull/660
Check for at least 2 characters to be more effective since 1 character searching is rather limited. Simply checking for variable type string may be problematic for some number searching, so just check length instead for working around original problem.
Also fix another possible cornercase with HTML dropdown menus in the result viewer
Remove $this_ratio calculation that would cause divide by zero errors. Does not appear to be used
anywhere and causes errors when the GPU provides only one mode.
Unreproduced failure, but appears safe.
PTS 10.8 optimized out some of the logic for single run result files to yield less processing work for logic normally useful just for multi run results, including some variable substitutions. Some seem to use the variable substitution behavior even for single runs, so add that logic to the optimized single path.
Closes: https://github.com/phoronix-test-suite/phoronix-test-suite/issues/592
From there is at least a log of the packages PTS attempted/installed on the given system... Not really practical / safe to have PTS offer the ability to try to auto-remove/uninstall system dependencies afterwards since it could put the system in a bad state, compilers and other components often used outside of PTS so not wanting to accidentally remove those, various per-distro handling differences, etc...
Closes: https://github.com/phoronix-test-suite/phoronix-test-suite/issues/284
Additionally, add a debug message in such case if hitting the log viewer and no log found, print the detected system identifiers with a found log file to help debug what sort of mismatch is occurring...
Add list-failed-installs sub-command for reading back that metadata locally for past test installations that failed as a helper for diagnosing problems...
Another trivial change is hide SystemSensorMonitoring option as was never wired up and the system monitor functionality can be accessed per-test now anyways from advanced options
FullOutput was an external contributor patch many years ago and doesn't add much value when just guarding primarily BASIC display mode behavior or when running in PTS debug mode that already bypassed the FullOutput... So just remove FullOutput as those wanting PTS_DISPLAY_MODE=BASIC already use it and any other use-case can be satisfied by running in debug mode.
phoromatic: Allow relevant PTS environment variables to be exposed for setting by Phoromatic Server for benchmarks/schedules as "advanced options" area
From here can have that pts_env be used for auto-generating the matching env var documentation in PTS. Plus can be used for some Phoromatic env var passing work to do soon...
Now that Phoromatic web interface uses the unified result viewer code and other improvements with time, now it's rather trivial to allow uploading of additional log types
This addresses issue #558. It is a little rudimentary, but if the port is 443 it will leverage the HTTPS protocol. In all other cases it will leverage HTTP.
Revert "Added support for HTTPS Phoromatic Servers"
This reverts commit 4b24fec76062b398855f1446624ad4f3ce7ef994.
Added support for HTTPS Phoromatic Servers
This addresses issue #558. It is a little rudimentary, but if the port is 443 it will leverage the HTTPS protocol. In all other cases it will leverage HTTP.
Update phoromatic.php
Changes from @michaellarabel
Revert "Update phoromatic.php"
This reverts commit 7a4a611dc6e652f2323e845582b5393098c9c92f.
Applied Fixes
Applied fixes from @michaellarabel with update to line 370
The 'arch-install' installer includes an option to lock out the root user and use a sudo only system. When that's the case the PTS fails to install Arch Linux packages. This uses sudo passwd -S to check if the root account is locked and runs pacman with sudo instead of su -c if true.
A test can simply create ~/reboot-needed and PTS will then attempt to restart the system and on subsequent run (just the next time the phoronix-test-suite command launches) will also indicate to test profile via $TEST_RECOVERING_FROM_REBOOT that it is recovering from a reboot
Currently ~/reboot-needed does an immediate reboot but is prepared for possible 'queued' reboot at end of test run in future if desired/needed
This shouldn't be much of an issue anyhow since getting to this stage firt requires having credentials / API access key, there isn't any JavaScript used besides some display elements on the Phoromatic site, and anyhow most running Phoromatic on private intranets
Reported-By: wtwver on @huntr-dev
A test profile can add $PTS_USER_PATH/abort-once, which will trigger
that test to be aborted. If no test results are valid, the phoromatic
server will not consider the suite executed and will push on the next
'start' request.
Normally Windows path ends up handling "./" fine but it seems in at least some cases when passed as an argument to cmd.exe it will otherwise cause script execution to fail, so just remove it here since not necessary.
Adds logging of the non-idle commands coming from the
Phoromatic Server.
Adjust log date to include timedate by moving to ISO8601 format date
Include backtrace information to identify function, file and line for
log messages
Enhancements:
Remove downlaoded files from cache once test completes during testing instead of after run completes.
Added timeout for slow mirror sites, influenced by DOWNLOAD_RATE and DEBUG_TIMEOUT env.
Added CLI output indicating how many tests are remaining.
Improvements:
Added process id to CLI output to allow tracking while running.
Updated http 226 to be a pass as opposed to fail.
Include downloads in profiles that use <Extend>
Updated error messages to display HTTP and FTP errors on front end.
Report redirected files as "source"
Fixes:
Fixed object reuse bug. Renamed httpCode to httpStatus.
Fix math error in reporting remaining tests
When loading from download cache, cast status and size to int.
Checks each test profile to determine the status of the url download.
If successful, a check between the new download and the stored test-profile data
is performed to detect any differences in the filesize, MD5 and SHA256 checksums.
Current http status and any errors are output to a JSON file.
HTTP 302 redirections are also reported.
This test utilizes forking to prevent bottlenecks.
A file for a given url is downloaded once and reused for future tests thus preventing
multiple downloads of the same file.
The SPHardwareDataType system profiler query only returns a
marketing string that has no use for us. Use something else when possible.
I was thinking about doing something similar with the flags
(machdep.cpu.features), but the current code is toooo Linux-centric to
play with.
Currently, giving a pre-defined port to the result-viewer does not work:
[PROBLEM] Port N is already in use by another server process.
Since fsockopen returns false on an error [1], the queries must be inverted.
[1] https://www.php.net/manual/de/function.fsockopen.php
pts-core: Split OpenBenchmarking.org upload code into pts_openbenchmarking_upload file and allow it to be removed if wanting to strip out upload support
This change adds a new variable loop_run_pos for tracking the current loop that the
test run manager is on. It then uses this new variable in
get_test_run_position() so that different pts display modes will be able
to accurately report how far into a run utilizing TOTAL_LOOP_COUNT the
test run manager is.
With this option installed packages will result as 'orphan' for an easy removal when no more needed, this option is already added in the three AUR pkgbuilds
This new environment variable may specify a command which can be prepended
into the main test command. One important usage can be when profiling
a certain test and neither flamegrapher nor linux_perf pts-core modules give
us what we want.
Two simple examples on this area
* use /usr/bin/time -v to get some basic stats
$ export EXECUTE_BINARY_PREPEND='/usr/bin/time -v' && \
phoronix-test-suite run ..
* perf-record and leave data (perf.data) in the installed directory
$ export EXECUTE_BINARY_PREPEND='perf record -a -g -F 97 -o perf.data' && \
phoronix-test-suite run ..
NOTE: If either LINUX_PERF or FLAME_GRAPH_PATH environment
variables are present on the environment, EXECUTE_BINARY_PREPEND wont have any
effect.
Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
Instead of just profiling a sleep of 3 seconds before the test execution,
profile while executing.
Signed-off-by: Leonardo Sandoval <leonardo.sandoval.gonzalez@linux.intel.com>
typo correction, should resolve error
"
[NOTICE] Undefined: ch in pts_network:166
[NOTICE] curl_setopt() expects parameter 1 to be resource, null given in pts_network:166
"
when installing tests etc. from behind authenticating proxy
pts-core: Add the result-scale to the test profile comparison_hash (NOTE: any external data stores making use of the comparison_hash should thus rebuild their hash indexes)
[Phoronix Test Suite](http://www.phoronix-test-suite.com/) (PTS) is a comprehensive
testing and benchmarking suite.
This charm requires Juju 1.23 or later and uses [Juju
Actions](https://jujucharms.com/docs/latest/authors-charm-actions/) to run the
benchmarks.
# Usage
First bootstrap Juju and then deploy pts:
juju bootstrap
juju deploy pts
From source:
cd phoronix-test-suite/deploy/juju
juju deploy --repository=. local:trusty/pts
# Configuration
juju set pts user-config="`cat /path/to/user-config.xml`"
# Running benchmarks
You can list all of the actions available with the following command:
juju action defined pts
This charm supports the following benchmarks:
-`cpu`: CPU centric stress tests
-`custom`: Custom stress tests
-`io`: IO centric tests.
-`memory`: Memory centric stress tets
-`smoke`: Smoke test, tests that complete quickly.
To execute a benchmark you can use a Juju action, in this example we run the cpu
stress tests on the first pts unit launched:
juju action do pts/0 cpu
or in this case, do a io test on pts unit 3:
juju action do pts/3 io
You can also run benchmarks across the entire pts service:
```sh
juju deploy pts # Deploys one unit
juju add-unit -n10 pts # Add 10 more nodes
juju action do pts memory # Exec the memory benchmark on all 11 pts nodes
```
If you want to run custom benchmarks:
juju action do pts/0 smoke tests='pts/apache pts/nginx'
# Check on actions
`juju action status` allows you to see the current status of an action. The benchmark results will be available once the action status has changed to `completed`.
```
juju action status 7707a291-be29-46aa-8d02-2daa8ee24ebf
actions:
- id: 7707a291-be29-46aa-8d02-2daa8ee24ebf
status: running
unit: pts/0
```
# Get results
Once an action has completed, you can fetch the results in yaml or json, in addition to the default *smart* format. The `wait` flag allows you to tell fetch how long to wait for results. This is useful if you want to block while waiting for an action to finish.
- NVIDIA make use of UsedDedicatedGPUMemory as new GPU sensor
- Clean up all the WebSocket code and make it fit to spec
- Incremental result uploads support
- Check with Phodevi's parsers what other tools support JSON outputs - e.g. http://karelzak.blogspot.com/2015/06/json-output-for-basic-tools.html for cleaner parsing
- Figure out why TestClientVersion in result file XML is missing after adding multiple systems, the previous ones are then blank
- Restore the ReferenceID support in the results XML
- Improve titles on tables like in: http://openbenchmarking.org/result/1603172-GA-AMDTONGA973
### PTS-GRAPH ###
- Rotated text alignment for some PNG graphixs is sometimes off by 90/180 degrees compared to SVG, e.g. http://openbenchmarking.org/s/Compiler
### OPENBENCHMARKING.ORG ###
- Shorten long change-logs on test profile pages - e.g. http://openbenchmarking.org/test/pts/hpcc
- Implement WebSocket security - add the password prompts from ~/.phoronix-test-suite/user-config.xml, etc
- HTTPS support
- Ensuring only one session at a time, at least for benchmarking
- Handle test installations and external dependencies (prompting for root password handling?)
- Porting more of the web-interface code to the new JavaScript + WebSocket design rather than original PHP design [Originally with the 5.0 UI design it wasn't settled for mostly JS + WebSocket but some of the original code is with a traditional PHP-based + web server design... so slowly move over to newer design.]
### PHOROMATIC ####
- Implement the complementary WebSocket communication to HTTP pulls
- Ensure sane validating of more user input / resource uploads
- Hook up TriggerTarget for allowing event.php to optionally specify a sub-set of systems/groups to target for a given trigger
- Clean up the code and modularize more of the code into functions
phoronix-test-suite \- The Phoronix Test Suite is an extensible open-source platform for performing testing and performance evaluation.
.SHSYNOPSIS
@@ -6,14 +6,36 @@ phoronix-test-suite \- The Phoronix Test Suite is an extensible open-source plat
.br
.Bphoronix-test-suitebenchmark[test|suite]
.SHDESCRIPTION
The **Phoronix Test Suite** is the most comprehensive testing and benchmarking platform available for Linux, Solaris, OS X, and BSD operating systems. The Phoronix Test Suite allows for carrying out tests in a fully automated manner from test installation to execution and reporting. All tests are meant to be easily reproducible, easy-to-use, and support fully automated execution. The Phoronix Test Suite is open-source under the GNU GPLv3 license and is developed by Phoronix Media in cooperation with partners.
The **Phoronix Test Suite** is the most comprehensive testing and benchmarking platform available for Linux, Solaris, macOS, Windows, and BSD operating systems. The Phoronix Test Suite allows for carrying out tests in a fully automated manner from test installation to execution and reporting. All tests are meant to be easily reproducible, easy-to-use, and support fully automated execution. The Phoronix Test Suite is open-source under the GNU GPLv3 license and is developed by Phoronix Media in cooperation with partners.
.SHOPTIONS
.TP
.SHSYSTEM
.Binteractive
A simple text-driven interactive interface to the Phoronix Test Suite.
.TP
.Bphp-conf
This option will print information that is useful to developers when debugging problems with the Phoronix Test Suite and/or test profiles and test suites.
.TP
.Bshell
A simple text-driven shell interface / helper to the Phoronix Test Suite. Ideal for those that may be new to the Phoronix Test Suite
.TP
.Bsystem-info
Display the installed system hardware and software information as detected by the Phoronix Test Suite Phodevi Library.
.TP
.Bsystem-properties
Display various hardware/software system properties detected by the Phoronix Device Interface (Phodevi) library.
.TP
.Bsystem-sensors
Display the installed system hardware and software sensors in real-time as detected by the Phoronix Test Suite Phodevi Library.
This option will force the installation (or re-installation) of a test or suite. The arguments and process is similar to the install option but even if the test is installed, the entire installation process will automatically be executed. This option is generally used when debugging a test installation problem or wishing to re-install test(s) due to compiler or other environmental changes.
This option will install the selected test(s) inside the testing environment directory. The install process from downloading of the test files to the installation is fully automated. The install option needs to be supplied with the test name or suite as an argument. Optionally, a OpenBenchmarking.org ID or the name of a saved results file can be supplied as well and the test(s) to install will automatically be extracted from that information. If the test is already installed and was run by the latest version of the installation process, no action will be taken. Multiple arguments can be supplied to install additional tests at the same time.
This option will install the external dependencies needed by the selected test(s) using the distribution's package management system. For example, some tests depend upon GCC for compiling code. If GCC is not detected on the system, the Phoronix Test Suite will attempt to install GCC using the distribution's package management system. If you are running this command as a local user, you may be prompted for the root password while the process is running. For unsupported distributions, the dependency names will be displayed along with common names for the package. The install-dependencies option needs to be supplied with the test name or suite as an argument. When using the install option, the external dependencies are automatically checked.
.TP
.Bmake-download-cache
@@ -23,115 +45,138 @@ This option will create a download cache for use by the Phoronix Test Suite. The
This option will permanently remove a installed test by the Phoronix Test Suite.
.TP
.SHTESTING
.Bauto-compare
This option will autonomously determine the most relevant test(s) to run for any selected sub-system(s). The tests to run are determined via OpenBenchmarking.org integration with the global results pool. Related test results from OpenBenchmarking.org are also merged to provide a straight-forward and effective means of carrying out a system comparison. If wishing to find comparable results for any particular test profile(s), simply pass the test profile names as additional arguments to this command.
This option will install the selected test(s) (if needed) and will proceed to run the test(s). This option is equivalent to running phoronix-test-suite with the install option followed by the run option. Multiple arguments can be supplied to run additional tests at the same time and save the results into one file.
.TP
.Bfinish-run[TestResult]
This option can be used if a test run had not properly finished running all tests within a saved results file. Using this option when specifying a saved results file where all tests had not completed will attempt to finish testing on the remaining tests where there are missing results.
This option will provide estimates for test run-time / length.
.TP
.Bfinish-run[TestResult]
This option can be used if a test run had not properly finished running all tests within a saved results file. Using this option when specifying a saved results file where all tests had not completed will attempt to finish / resume testing on the remaining tests where there are missing results to be completed.
This option will query OpenBenchmarking.org to run random benchmarks and result comparisons on the system. This test can be used for simply supplying interesting results from your system onto OpenBenchmarking.org, stressing your system with random workloads, seeding new OpenBenchmarking.org results, etc. Basic options are provided at start-up for tuning the randomness of the testing when running this command.
This option will run the selected test(s) but prompt the user when passing any test suites or result files what subset / test(s) contained within there to run rather than running all passed tests/suites/results.
.TP
.Brun-tests-in-suite[Suite]
This option can be used if you wish to run all of the tests found in a supplied suite, but you wish to re-configure each of the test options rather than using the defaults supplied by the suite.
This option will run the passed tests/suites in the multi-process stress-testing mode while behaving by the Phoronix Test Suite batch testing characteristics. The stress-batch-run mode is similar to the stress-run command except that for any tests passed to it will run all combinations of the options rather than prompting the user for the values to be selected.
This option will run the passed tests/suites in the multi-process stress-testing mode. The stress-run mode will not produce a result file but is rather intended for running multiple test profiles concurrently to stress / burn-in the system. The number of tests to run concurrently can be toggled via the PTS_CONCURRENT_TEST_RUNS environment variable and by default is set to a value of 2.
This option is equivalent to the `benchmark` option except it enables various options to run benchmarks an extended number of times for ensuring better statistical accuracy if enforcing strict controls over the data quality, in some cases running the benchmarks for 20+ times.
This option is equivalent to the `run` option except it enables various options to run benchmarks an extended number of times for ensuring better statistical accuracy if enforcing strict controls over the data quality, in some cases running the benchmarks for 20+ times.
If you wish to run the install process in the Phoronix Test Suite batch mode but do not wish to run any tests at this time. Running the install process in the batch mode will use the default values and not prompt the user of any possible options, to ensure the process is fully automated.
This option and its arguments are equivalent to the run option, but the process will be run in the Phoronix Test Suite batch mode.
.TP
.Bbatch-setup
This option is used to configure the batch mode options for the Phoronix Test Suite, which is subsequently written to the user configuration file. Among the options are whether to automatically upload the test results to OpenBenchmarking.org and prompting for the saved file name.
This option will install the selected test(s) (if needed) and will proceed to run the test(s) in the defaults mode. This option is equivalent to running phoronix-test-suite with the install option followed by the default-run option.
This option will run the selected test(s). The name of the test or suite must be supplied or the OpenBenchmarking.org ID or saved local file name. Multiple arguments can be supplied to run additional tests at the same time and save the results in a suite-like fashion. Unlike the normal run option, the default-run will not prompt the user to select from the available test options but will instead use the default options as automatically set by pts-core or the test profile. Use batch-run to automatically test all of the available options.
This option and its arguments pre-set the Phoronix Test Suite batch run mode with enforcing of defaults to not save any results and other behavior intended for a dry/test run. This option is primarily intended for testing/evaluation purposes.
This option and its arguments pre-set the Phoronix Test Suite batch run mode with sane values for carrying out benchmarks in a semi-automated manner and without uploading any of the result data to the public OpenBenchmarking.org.
.TP
.SHOPENBENCHMARKING.ORG
.Bclone-result[OpenBenchmarkingID]...
This option will download a local copy of a file that was saved to OpenBenchmarking.org, as long as a valid public ID is supplied.
.TP
.Bdump-suites-to-git
This option will create a Git repository of OpenBenchmarking.org test suites.
.TP
.Bdump-tests-to-git
This option will create a Git repository of OpenBenchmarking.org test profiles.
.TP
.Benable-repo
This option is used if wanting to add a new OpenBenchmarking.org account/repository to your system for enabling third-party/unofficial test profiles and test suites.
.TP
.Blist-recommended-tests
This option will list recommended test profiles for benchmarking sorted by hardware sub-system. The recommended tests are determined via querying OpenBenchmarking.org and determining the most popular tests for a given environment based upon the number of times a test profile has been downloaded, the number of test results available on OpenBenchmarking.org for a given test profile, the age of the test profile, and other weighted factors.
.TP
.Bmake-openbenchmarking-cache
This option will attempt to cache the test profile/suite meta-data from OpenBenchmarking.org for all linked repositories. This is useful if you're going to be running the Phoronix Test Suite / Phoromatic behind a firewall or without any Internet connection. Those with unrestricted Internet access or not utilizing a large local deployment of the Phoronix Test Suite / Phoromatic shouldn't need to run this command.
.TP
.Bob-test-profile-analyze
This option is intended for test profile creators and generates a range of meta-data and other useful information that can be submitted to OpenBenchmarking.org to provide more verbose information for users of your test profiles.
.TP
.Bopenbenchmarking-changes
This option will list recent changes to test profiles of enabled OpenBenchmarking.org repositories.
.TP
.Bopenbenchmarking-launcher
This option is called automatically with the .openbenchmarking MIME file extension support for launching OpenBenchmarking.org operations.
.TP
.Bopenbenchmarking-login
This option is used for controlling your Phoronix Test Suite client options for OpenBechmarking.org and syncing the client to your account.
.TP
.Bopenbenchmarking-refresh
This option is used for refreshing the stored OpenBenchmarking.org repostory information and other data. The Phoronix Test Suite will automatically refresh this data every three days or when other thresholds are exceeded, but this command can be used to manually refresh/updates the data.
This option is used for refreshing the stored OpenBenchmarking.org repository information and other data. The Phoronix Test Suite will automatically refresh this data every three days or when other thresholds are exceeded, but this command can be used to manually refresh/updates the data.
.TP
.Bopenbenchmarking-repositories
This option will list the OpenBenchmarking.org repositories currently linked to this Phoronix Test Suite client instance.
.TP
.Bopenbenchmarking-uploads
This option will list any recent test result uploads from the system's IP address to OpenBenchmarking.org.
.TP
.Brecently-added-tests
This option will list the most recently added (newest) test profiles.
.TP
.Bupload-result[TestResult]
This option is used for uploading a test result to OpenBenchmarking.org.
.TP
.Bupload-test-profile
This option can be used for uploading a test profile to your account on OpenBenchmarking.org. By uploading your test profile to OpenBenchmarking.org, others are then able to browse and access this test suite for easy distribution in a seamless manner by other Phoronix Test Suite clients.
.TP
.Bupload-test-suite
.Bupload-test-suite[Suite]
This option can be used for uploading a test suite to your account on OpenBenchmarking.org. By uploading your test suite to OpenBenchmarking.org, others are then able to browse and access this test suite for easy distribution.
.TP
.SHSYSTEM
.Bdetailed-system-info
Display detailed information about the installed system hardware and software information as detected by the Phoronix Test Suite Phodevi Library.
.TP
.Bdiagnostics
This option will print information that is useful to developers when debugging problems with the Phoronix Test Suite and/or test profiles and test suites.
.TP
.Binteractive
A simple text-driven interactive interface to the Phoronix Test Suite.
.TP
.Bphp-conf
This option will print information that is useful to developers when debugging problems with the Phoronix Test Suite and/or test profiles and test suites.
.TP
.Bsystem-info
Display the installed system hardware and software information as detected by the Phoronix Test Suite Phodevi Library.
.TP
.Bsystem-sensors
Display the installed system hardware and software sensors in real-time as detected by the Phoronix Test Suite Phodevi Library.
This option will print the test profiles present in all passed result files / test suites. Two or more results/suites must be passed and printed will be all of the common test profiles.
.TP
.Blist-all-tests
This option will list all test profiles that are available from the enabled OpenBenchmarking.org repositories. Unlike the other test listing options, list-all-tests will show deprecated tests, potentially broken tests, or other tests not recommended for all environments. The only check in place is ensuring the test profiles are at least compatible with the operating system in use.
.TP
.Blist-available-suites
This option will list all test suites that are available from the enabled OpenBenchmarking.org repositories.
.TP
.Blist-available-tests
This option will list all test profiles that are available from the enabled OpenBenchmarking.org repositories.
This option will list all test profiles that are available from the enabled OpenBenchmarking.org repositories where supported on the system and are of a verified state. If the system has no Internet access, it will only list the test profiles where the necessary test assets are available locally on the system or on an available network cache (the same behavior as using the list-cached-tests sub-command), unless using the list-all-tests option to override this behavior.
.TP
.Blist-available-virtual-suites
This option will list all available virtual test suites that can be dynamically created based upon the available tests from enabled OpenBenchmarking.org repositories.
.TP
.Blist-cached-tests
This option will list all test profiles where any needed test profiles are already cached or available from the local system under test. This is primarily useful if testing offline/behind-the-firewall and other use-cases where wanting to rely only upon local data.
.TP
.Blist-installed-dependencies
This option will list all of the packages / external test dependencies that are already installed on the system that the Phoronix Test Suite may potentially depend upon by test profiles.
.TP
@@ -153,62 +198,104 @@ This option will list all of the packages / external test dependencies that are
.Blist-saved-results
This option will list all of the saved test results found on the system.
.TP
.Blist-test-status
This sub-command provides a verbose look at all tests installed/uninstalled on the system and whether any errors were encountered at install-time or run-time and other test installation/runtime metrics for complementing other Phoronix Test Suite sub-command outputs.
.TP
.Blist-test-usage
This option will list various details about installed tests and their usage.
.TP
.Blist-unsupported-tests
This option will list all available test profiles that are available from the enabled OpenBenchmarking.org repositories but are NOT SUPPORTED on the given hardware/software platform. This is mainly a debugging option for those looking for test profiles to potentially port to new platforms, etc.
This option will print the test identifiers of the specified result file(s), test suite(s), OpenBenchmarking.org ID(s), or other runnable object(s).
.TP
.Bsearch
This option provides command-line searching abilities for test profiles / test suites / test results. The search query can be passed as a parameter otherwise the user is prompted to input their search query..
.TP
.Btest-to-suite-map
This option will list all test profiles and any test suites each test belongs to.
This option will guide the user through the process of generating their own test suite, which they can then run. Optionally, passed as arguments can be the test(s) or suite(s) to add to the suite to be created, instead of being prompted through the process.
.TP
.Bcreate-test-profile
This option can be used for creating a Phoronix Test Suite test profile by answering questions about the test for constructing the test profile XML meta-data and handling other boiler-plate basics for getting started in developing new tests.
This option is intended for use by test profile writers and is identical to the <em>run</em> option but will yield more information during the run process that can be used to debug issues with a test profile or to verify the test profile is functioning correctly.
This option is intended for use by test profile writers and is identical to the install option but will yield more information during the run process that can be used to debug issues with a test profile installer or to verify the test profile is functioning correctly.
This option is intended for use by test profile writers and is used for debugging a result parser. No test execution is done, but there must already be PTS-generated .log files present within the test's installation directory.
This option will force the installation (or re-installation) of a test or suite. The arguments and process is similar to the install option but even if the test is installed, the entire installation process will automatically be executed. This option is generally used when debugging a test installation problem.
.Bdump-documentation
This option is used for re-generating the Phoronix Test Suite documentation.
.TP
.Bresult-file-to-suite[TestResult]
This option will guide the user through the process of generating their own test suite, which they can then run, that is based upon an existing test results file.
.Binspect-test-profile[Test]
This option can be used for inspecting a Phoronix Test Suite test profile with providing inside details on test profiles for debugging / evaluation / learning purposes.
.TP
.Brebuild-test-suite[Suite]
This option will regenerate the local test suite XML file against the OpenBenchmarking.org specification. This can be used to clean up any existing XML syntax / styling issues, etc.
.TP
.Bvalidate-result-file
This option can be used for validating a Phoronix Test Suite result file as being compliant against the OpenBenchmarking.org specification.
.TP
.Bvalidate-test-profile
.Bvalidate-test-profile[Test]
This option can be used for validating a Phoronix Test Suite test profile as being compliant against the OpenBenchmarking.org specification.
.TP
.Bvalidate-test-suite
.Bvalidate-test-suite[Suite]
This option can be used for validating a Phoronix Test Suite test suite as being compliant against the OpenBenchmarking.org specification.
.TP
.SHRESULTMANAGEMENT
.Bauto-sort-result-file[TestResult]
This option is used if you wish to automatically attempt to sort the results by their result identifier string.
This option is used if you wish to automatically attempt to sort the results by their result identifier string. Alternatively, if using the environment variable "SORT_BY" other sort modes can be used, such as SORT_BY=date / SORT_BY=date-desc for sorting by the test run-time/date.
This option allows you to specify a result as a baseline (first parameter) and a second result file (second parameter) that will offer some analysis for showing how the second result compares to the first in matching tests.
.TP
.Bcompare-results-two-way[TestResult]
This option will allows you to specify a result file and from there to compare two individual runs within that result file for looking at wins/losses and other metrics in a head-to-head type comparison.
.TP
.Bedit-result-file[TestResult]
This option is used if you wish to edit the title and description of an existing result file.
.TP
.Bextract-from-result-file[TestResult]
This option will extract a single set of test results from a saved results file that contains multiple test results that have been merged. The user is the prompted to specify a new result file name and select which result identifier to extract.
This option will extract a single set of test results from a saved results file that contains multiple test results that have been merged. The user is then prompted to specify a new result file name and select which result identifier to extract.
.TP
.Bkeep-results-in-result-file[TestResult]
This option is the inverse of the remove-results-from-result-file sub-command. If you wish to remove all results but those listed from a given result file, this option can be used. The user must specify a saved results file and then they will be prompted to provide a string to search for in keeping those results in that given result file but removing all other data.
.TP
.Bmerge-results[TestResult]...
This option will manually merge multiple sets of test results generated by the Phoronix Test Suite.
.TP
.Brefresh-graphs[TestResult]
This option will re-render and save all result graphs within a saved file. This option can be used when making modifications to the graphing code or its color/option configuration file and testing the changes.
.Bprune-empty-results[TestResult]
This option is used if there are test results (benchmarks) to be dropped from a given result file that had no successful runs. I.e. if any run attempt(s) only errored out without producing any result for any of the test run(s) saved in that file. The user must specify a saved results file.
.TP
.Bremove-from-result-file[TestResult]
This option is used if there is a set of test results you wish to remove/delete from a saved results file. The user must specify a saved results file and then they will be prompted to select the results identifier associated with the results they wish to remove.
.Bprune-zero-data[TestResult]
This option is used if there are test results (benchmarks) to be where there is line graph data that currently has zero values (e.g. inaccurate/invalid sensor readings) and you wish to just drop those zero reading values from the result file.
This option is used if there are test results (benchmarks) to be dropped from a given result file for having incomplete data, either a test run did not attempt to run that benchmark or failed to properly run. The user must specify a saved results file and the command will then attempt to find any results with incomplete/missing data and prompt the user with confirmation to remove them.
.TP
.Bremove-result[TestResult]
This option will permanently remove the saved file set that is set as the first argument.
.TP
.Bremove-result-from-result-file[TestResult]
This option is used if there are test results (benchmarks) to be dropped from a given result file. The user must specify a saved results file and then they will be prompted to select the tests/benchmarks to remove.
.TP
.Bremove-results-from-result-file[TestResult]
This option is used if there are test results (benchmarks) to be dropped from a given result file. The user must specify a saved results file and then they will be prompted to provide a string to search for in removing those results from that given result file.
.TP
.Bremove-run-from-result-file[TestResult]
This option is used if there is a set of test results you wish to remove/delete from a saved results file. The user must specify a saved results file and then they will be prompted to select the results identifier associated with the results they wish to remove.
.TP
.Brename-identifier-in-result-file[TestResult]
This option is used if you wish to change the name of the identifier in a test results file that is shown in the Phoronix Test Suite Results Viewer and the contained graphs.
.TP
@@ -218,67 +305,51 @@ This option is used if you wish to change the name of the saved name of a result
.Breorder-result-file[TestResult]
This option is used if you wish to manually change the order in which test results are shown in the Phoronix Test Suite Results Viewer and the contained graphs. The user must specify a saved results file and then they will be prompted to select the results identifiers one at a time in the order they would like them to be displayed from left to right.
.TP
.Bresult-file-to-csv[TestResult]
This option will read a saved test results file and output the system hardware and software information along with the results to a CSV output. The CSV (Comma Separated Values) output can then be loaded into a spreadsheet for easy viewing.
.TP
.Bresult-file-to-json[TestResult]
This option will read a saved test results file and output the basic result information to JSON (JavaScript Object Notation).
.TP
.Bresult-file-to-pdf[TestResult]
This option will read a saved test results file and output the system hardware and software information along with the results to a PDF file.
.TP
.Bresult-file-to-text[TestResult]
This option will read a saved test results file and output the system hardware and software information to the terminal. The test results are also outputted.
.TP
.Bshow-result[TestResult]
Open up the test results in the Phoronix Test Suite Result Viewer or on OpenBenchmarking.org.
.TP
.SHRESULTANALYTICS
.Banalyze-all-runs[TestResult]
This option will generate a candlestick graph showing the distribution of results from all trial runs. The candlestick graph is similar to the Japanese candlestick charts used by the financial industry, except instead of representing stock data it is numerical result data from all trial runs.\n\nThe tip of the upper-wick represents the highest value of the test runs with the tip of the lower-wick representing the lowest value of all test runs. The upper-edge of the candle body represents the first or last run value and the lower-edge represents the first or last run value. Lastly, if the last run value is less than the first run value, the candle body is the same color as the graph background, otherwise the last run value is greater.
.TP
.SHOTHER
.Bbuild-suite
This option will guide the user through the process of generating their own test suite, which they can then run. Optionally, passed as arguments can be the test(s) or suite(s) to add to the suite to be created, instead of being prompted through the process.
.Bcommands
This option will display a short list of possible Phoronix Test Suite commands.
.TP
.Bdebug-dependency-handler
This option is used for testing the distribution-specific dependency handler for external dependencies.
.TP
.Bdebug-render-test
This option is used during the development of the Phoronix Test Suite software for testing of the result and graph rendering code-paths This option will download a large number of reference test results from LinuxBenchmarking.com.
This option is used during the development of the Phoronix Test Suite software for testing of the result and graph rendering codepaths. This option will download a large number of reference test results from LinuxBenchmarking.com.
.TP
.Bdebug-self-test
This option is used during the development of the Phoronix Test Suite software for testing of internal interfaces, commands, and other common code-paths. The produced numbers should only be comparable for the same version of the Phoronix Test Suite, on the same hardware/software system, conducted on the same day of testing. This isn't intended as any scientific benchmark but simply to stress common PHP code-paths and looking for hot areas to optimize, etc.
.TP
.Benterprise-setup
This option can be run by enterprise users immediately after package installation or as part of an in-house setup script. Running this command will ensure the phoronix-test-suite program is never interrupted on new runs to accept user agreement changes and defaults the anonymous usage reporting to being disabled and other conservative defaults.
This option is used during the development of the Phoronix Test Suite software for testing of internal interfaces, commands, and other common codepaths. The produced numbers should only be comparable for the same version of the Phoronix Test Suite, on the same hardware/software system, conducted on the same day of testing. This isn't intended as any scientific benchmark but simply to stress common PHP codepaths and looking for hot areas to optimize, etc.
.TP
.Bhelp
This option will display the list of available Phoronix Test Suite commands.
.TP
.Bnetwork-setup
This option allows the user to configure how the Phoronix Test Suite connects to OpenBenchmarking.org and other web-services. Connecting through an HTTP proxy can be configured through this option.
.TP
.Buser-config-reset
This option can be used for resetting the Phoronix Test Suite user configuration file to its default state.
.TP
.Buser-config-set
This option can be used for setting an XML value in the Phoronix Test Suite user configuration file.
This option will display a list of available Phoronix Test Suite commands and possible parameter types.
.TP
.Bversion
This option will display the Phoronix Test Suite client version.
.TP
.SHWEB/GUISUPPORT
.Bgui
Launch the Phoronix Test Suite HTML5 web user-interface in the local GUI mode (no remote web support) and attempt to auto-launch the web-browser.
.SHRESULTANALYSIS
.Banalyze-run-times[TestResult]
This option will read a saved test results file and print the statistics about how long the testing took to complete.
.TP
.Bstart-remote-gui-server
Start the GUI web server and WebSocket server processes for remote (or local) access via the web-browser. The settings can be configured via the Phoronix Test Suite's XML configuration file.
.Bexecutive-summary[TestResult]
This option will attempt to auto-generate a textual executive summary for a result file to highlight prominent results / averages.
.TP
.Bstart-ws-server
Manually start a WebSocket server for communication by remote Phoronix Test Suite GUIs, the Phoronix Test Suite Multi-System Commander, and other functionality. This function checks the PTS_WEBSOCKET_PORT and PTS_WEBSOCKET_SERVER environment variables forconfiguration.
.Bresult-file-confidence[TestResult]
This option will read a saved test results file and display various statistics on the confidence of the results with the standard deviation, three-sigma values, and other metrics while color-coding "passing" results in green.
.TP
.Bresult-file-stats[TestResult]
This option is used if you wish to analyze a result file by seeing various statistics on the result data for result files containing at least two sets of data.
.TP
.Bwins-and-losses[TestResult]
This option is used if you wish to analyze a result file to see which runs produced the most wins/losses of those result identifiers in the saved file.
.TP
.Bworkload-topology[TestResult]
This option will read a saved test results file and print the test profiles contained within and their arrangement within different test suites for getting an idea as to the workload topology / make-up / logical groupings of the benchmarks being run.
.TP
.SHMODULES
.Bauto-load-module
This option can be used for easily adding a module to the AutoLoadModules list in the Phoronix Test Suite user configuration file. That list controls what PTS modules are automatically loaded on start-up of the Phoronix Test Suite.
.TP
.Blist-modules
This option will list all of the available Phoronix Test Suite modules on this system.
.TP
@@ -291,22 +362,100 @@ This option will allow you to configure all available end-user options for a Pho
.Btest-module[PhoronixTestSuiteModule]
This option can be used for debugging a Phoronix Test Suite module.
.TP
.Bunload-module
This option can be used for easily removing a module from the AutoLoadModules list in the Phoronix Test Suite user configuration file. That list controls what modules are automatically loaded on start-up of the Phoronix Test Suite.
.TP
.SHDEBUGGING
.Bcheck-tests[Test]
This option will perform a check on one or more test profiles to determine if there have been any vendor changes to the filename, filesize, URL location, MD5 and SHA256 checksums.
.TP
.Bdiagnostics
This option will print information that is useful to developers when debugging problems with the Phoronix Test Suite and/or test profiles and test suites.
.TP
.Bdump-file-info
This option will dump the MD5 / SHA256 checksums and file size for a given file.
.TP
.Bdump-openbenchmarking-indexes
This option is used for dumping the parsed output of OpenBenchmarking.org index files (metadata).
.TP
.Bdump-phodevi-smart-cache
This option is used for displaying the contents of the Phodevi smart cache on the system.
.TP
.Bdump-possible-options
This option will print all possible phoronix-test-suite sub-commands.
.TP
.Bdump-unhandled-dependencies
This option will list missing entries in the external dependencies XML file for the operating system under test. This option is used if wanting to help find missing dependency XML data to fill in for contributing to upstream Phoronix Test Suite.
.TP
.Blist-failed-installs
This option will list all test profiles that were attempted to be installed on the local system but failed to be installed. Where applicable, the possible error(s) from the test installation are also reported to assist in debugging.
.TP
.Blist-test-errors
This sub-command is complementary to list-failed-installs. Rather than listing test installation errors, list-test-errors is used for displaying past test run-time errors. This option will list all test profiles that produced an error previously when running the test profile / benchmark. If a test profile later successfully ran the test with any given option(s) without errors, the error is then removed from the archive. This option is intended to be helpful in debugging test profile issues later on for having a persistent collection of run-time errors.
.TP
.Blist-unsupported-tests
This option will list all available test profiles that are available from the enabled OpenBenchmarking.org repositories but are NOT SUPPORTED on the given hardware/software platform. This is mainly a debugging option for those looking for test profiles to potentially port to new platforms, etc.
.TP
.SHUSERCONFIGURATION
.Benterprise-setup
This option can be run by enterprise users immediately after package installation or as part of an in-house setup script. Running this command will ensure the phoronix-test-suite program is never interrupted on new runs to accept user agreement changes. It also defaults the anonymous usage reporting to being disabled, along with other conservative settings.
.TP
.Bnetwork-info
This option will print information detected by the Phoronix Test Suite around the system's network configuration.
.TP
.Bnetwork-setup
This option allows the user to configure how the Phoronix Test Suite connects to OpenBenchmarking.org and other web-services. Connecting through an HTTP proxy can be configured through this option.
.TP
.Buser-config-reset
This option can be used for resetting the Phoronix Test Suite user configuration file to its default state.
.TP
.Buser-config-set
This option can be used for setting an XML value in the Phoronix Test Suite user configuration file.
.TP
.Bvariables
This option will print all of the official environment variables supported by the Phoronix Test Suite for user configuration purposes. These environment variables are also listed as part of the official Phoronix Test Suite documentation while this command will also show the current value of the variables if currently set.
.TP
.SHRESULTEXPORT
.Bresult-file-raw-to-csv[TestResult]
This option will read a saved test results file and output the raw result file run data to a CSV file. This raw (individual) result file output is intended for data analytic purposes where the result-file-to-csv is more end-user-ready.
.TP
.Bresult-file-to-csv[TestResult]
This option will read a saved test results file and output the system hardware and software information along with the results to a CSV output (Comma Separated Values) file. This file can then be loaded into a spreadsheet for easy viewing. The outputted file appears in the user home directory or can otherwise be controlled via the OUTPUT_DIR and OUTPUT_FILE environment variables.
.TP
.Bresult-file-to-html[TestResult]
This option will read a saved test results file and output the system hardware and software information along with the results to pure HTML file. No external files are required for CSS/JavaScript or other assets. The graphs are rendered as inline SVG. This is a pure HTML-only representation of the results for emailing or other easy analysis outside of the Phoronix Test Suite. The outputted file appears in the user home directory or can otherwise be controlled via the OUTPUT_DIR and OUTPUT_FILE environment variables.
.TP
.Bresult-file-to-json[TestResult]
This option will read a saved test results file and output the basic result information to JSON (JavaScript Object Notation). The outputted file appears in the user home directory or can otherwise be controlled via the OUTPUT_DIR and OUTPUT_FILE environment variables.
.TP
.Bresult-file-to-pdf[TestResult]
This option will read a saved test results file and output the system hardware and software information along with the results to a PDF file. The outputted file appears in the user home directory or can otherwise be controlled via the OUTPUT_DIR and OUTPUT_FILE environment variables.
.TP
.Bresult-file-to-suite[TestResult]
This option will guide the user through the process of generating their own test suite, which they can then run, that is based upon an existing test results file.
.TP
.Bresult-file-to-text[TestResult]
This option will read a saved test results file and output the system hardware and software information to the terminal. The test results are also outputted.
.TP
.SHPHOROMATIC
.Bstart-phoromatic-server
Start the Phoromatic web server for controlling local Phoronix Test Suite client systems to facilitate automated and repeated test orchestration and other automated features targeted at the enterprise.
.TP
.SHRESULTVIEWER
.Bn
_
.TP
.SHSEEALSO
.BWebsites:
.br
http://www.phoronix-test-suite.com/
https://www.phoronix-test-suite.com/
.br
http://commercial.phoronix-test-suite.com/
https://commercial.phoronix-test-suite.com/
.br
http://www.openbenchmarking.org/
https://www.openbenchmarking.org/
.br
http://www.phoronix.com/
https://www.phoronix.com/
.br
http://www.phoronix.com/forums/
.SHAUTHORS
Copyright 2008 - 2016 by Phoronix Media, Michael Larabel.
Copyright 2008 - 2024 by Phoronix Media, Michael Larabel.
<Description>If there are multiple ResulsParser sections within the XML file and this tag is set, the Phoronix Test Suite will see if this string appears within the PTS_TEST_ARGUMENTS in determining if this is the ResultsParser section to use for parsing the results.</Description>
<Description>The key to look for when parsing the OutputTemplate to find where the result should be stored. If this tag is not implemented, the default key will be used.</Description>
<Description>The LineBeforeHint tag is similar to LineHint but is used to indicate the line before where the test results appear, in the event the LineHint tag cannot be used reliably.</Description>
<Description>The LineAfterHint tag is similar to LineBeforeHint but is used to indicate the line after where the test results appear, in the event the LineHint or LineBeforeHint tags cannot be used reliably.</Description>
<Description>The ResultBeforeString tag is optional and can be used if there is a consistient string following the reporting of the result, in the event the result's location is not static within the line string.</Description>
<Description>This is similar to the StripFromResult tag but will only look at the end of the value string for this string to be removed. (I.e. if a unit such as 'ms' or 'FPS' is appended to the result by the test without a space.)</Description>
<Description>If the result value should be found multiple times within the result file and then some mathematical operation carried out, it should be set using this tag. Setting the value to AVERAGE will find all matches and then calculate the average value based upon matches. While not required, setting the value to NONE will use the default code-path of only looking for one result value.</Description>
<Description>If the result value should be divided by some constant (to convert the result to a different unit), the value should be supplied in this tag.</Description>
<Description>If the result value should be multiplied by some constant (to convert the result to a different unit), the value should be supplied in this tag.</Description>
<Description>If there are multiple ResulsParser sections within the XML file and this tag is set, the Phoronix Test Suite will see if this string appears within the PTS_TEST_ARGUMENTS in determining if this is the ResultsParser section to use for parsing the results.</Description>
<Description>If the test profile is for an image quality comparison, the ImageX should be the X coordinate of where to begin cropping the source file.</Description>
<Description>If the test profile is for an image quality comparison, the ImageX should be the Y coordinate of where to begin cropping the source file.</Description>
<Description>If the test profile is to monitor any system sensors during the testing process, the name of the sensor (via the Phodevi name; i.e. cpu.usage) should be supplied. While not a Phodevi sensor, if passing sys.time as the sensor value, the time it takes to execute the test will be recorded.</Description>
<Description>If the test profile is to monitor any system sensors during the testing process, how often the matched sensor is to be polled (in seconds) should be supplied. Floating values are supported.</Description>
<Description>If the test profile is to monitor any system sensors during the testing process, this tag provides how the monitored results should be reported. Supported values include MAX, MIN, AVG, and ALL.</Description>
<Description>The URL(s) to download the package from. If multiple URLs are supplied (delimited by a comma), the Phoronix Test Suite will randomly choose one URL but will fallback to other URLs if one fails either due to the file missing, the MD5 changed, or server inaccessability.</Description>
<Description>The MD5 check-sum for the file to be downloaded. This is to ensure file integrity. If no string is supplied, no MD5 check will be performed.</Description>
<Description>If this tag is set, once the file is downloaded it will be renamed to this value. If this tag is not set, the remote file-name will be used.</Description>
<Description>The size of the file to be downloaded should be the value of this tag. The FileSize should be an integer that is the number of bytes that makes up the file. This tag is used so that the Phoronix Test Suite can determine the total size of files that need to be downloaded for a given operation.</Description>
<Description>If this package is just needed on select operating systems / platforms, list them inside this tag and multiple platforms can be delimited by a comma.</Description>
<Description>If this package is just needed on select system/processor architectures, list them inside this tag and multiple architectures can be delimited by a comma.</Description>
<p>Writing a module for the Phoronix Test Suite allows new functionality to be added
without having to extensively learn how pts-core functions. The module framework
for the Phoronix Test Suite allows modules to be written as a PHP object. Example PTS modules could include a module to shutdown the
screensaver when the Phoronix Test Suite starts up and re-enabling it when the
test is over, using sendmail to forward the results to an e-mail address when
testing is completed, or writing the current test status to a LCDproc-enabled
VFD display.</p>
<p>Modules are stored in <em>pts-core/modules/</em>. Loading a
module is done by either setting the <em>PTS_MODULES</em> environmental variable
with the name of the module (excluding the <em>.php</em> file
extension) or by associating a module with a separate environmental variable. The default list of modules to be loaded is stored in <em>~/.phoronix-test-suite/user-config.xml</em>.</p>
<p>Note: To run through all of the function calls for a module without needing to run a test,
run <em>phoronix-test-suite test-module MODULE_NAME</em>. Additionally, running
<em>phoronix-test-suite debug-module MODULE_NAME</em> will yield additional debugging details while
executing the same process.</p>
<h1>Module</h1>
<p>To see all of the functions supported for modules written in PHP, look at <em>pts-core/modules/dummy_module.php</em>
and additionally the other .php modules that ship with the Phoronix Test Suite.
Additionally, there are several functions written specifically for Phoronix Test
Suite modules that make it easier to save files, read files, and provided multi-threading
support for modules. The <em>pts_timed_function()</em> makes it possible (and
very easy) to thread functions within a module so that at a set interval the defined
functions will be called. For example, this support is used heavily within the
<em>system_monitor</em> module to poll sensors every X seconds even while there
are tests running. These functions can be found within <em>pts-core/objects/pts_module.php</em>.</p>
<p>Below is a sample module that times how long it takes to run the Phoronix Test
Suite. It would be saved as <em>pts-core/modules/time_me.php</em>.</p>
<blockquote><?php<br/>
class time_me extends pts_module_interface<br/>
{<br/>
const module_name = "Time Me!";<br/>
const module_version = "1.0.0";<br/>
const module_description = "This is a module that times how long the Phoronix Test Suite runs.";<br/>
<divclass="pts_doc_notice"><divstyle="float: left"><ahref="index.html"><< Documentation Home</a></div><divstyle="float: right;">Writing A Test Profile</div></div>
<divclass="pts_doc_main">
<!-- PTS AREA -->
<h1>Writing A Test Profile</h1>
<p>Writing a test profile for the Phoronix Test Suite is a relatively quick and easy
process for anyone familiar with common Linux commands and the basics of XML.
To help you understand the design of the Phoronix Test Suite, this guide covers
the steps needed to write a testing profile for a very simple application.</p>
<p>The first step in the profile writing process is to, well, have a piece of
software you'd like to use with the Phoronix Test Suite. This software can be
closed-source or open-source and be virtually anything as long as it is compatible
with the Linux operating system.</p>
<p>For this guide, the piece of software being used for demonstration is just
a simple C++ program that calculates Pi to 8,765,4321 digits using the Leibniz
formula. Below is this sample piece of software intended just for demonstration
purposes.</p>
<blockquote>#include <iostream><br>
#include <math.h></p>
<p>int main()<br>
{<br>
double pi = 0;</p>
<p> for(long int i = 1; i <= 87654321; i++)<br>
<Description>A simple C++ program that calculates Pi to 8,765,4321 digits using the Leibniz formula. This test can be used for showcasing how to write a basic test profile.</Description><br>
<p>Phoronix Test Suite 1.4 and later provides an integrated multi-platform micro-timer framework that provides the <em>$TIMER_START</em> and <em>$TIMER_STOP</em> functionality.</p>
<p>This install file builds the code with GCC, and then creates a small script
that is run by the Phoronix Test Suite, which times how long it takes to run the
software. Where does the source-code come into play? Well, it needs to be downloaded
now from a web server. The Phoronix Test Suite has built-in support for managing
downloads from multiple servers in a random over, fall-back support if one mirror
is done, and verification of MD5 check-sums. Below is the <em>downloads.xml</em> file for
<em>sample-program</em> that covers all of this.</p>
<p>The final step in the profile writing process is to write a parser to strip
all information but the reported result from the standard output. The standard
output is submitted to <em>parse-results.sh</em> or <em>parse-results.php</em> as the first argument
in quotes or using <em>$LOG_FILE</em> if the test profile writes to that variable's location.</p>
<p>If the test profile uses the integrated micro-timer framework with <em>$TIMER_START</em> and <em>$TIMER_STOP</em> but no parse-results file is provided, the Phoronix Test Suite will automatically use the difference between <em>$TIMER_START</em> and <em>$TIMER_STOP</em> and use that as the test result. This is the time (in seconds) that elapsed between starting and stopping the timer.</p>
<p>After that, with all the files in their correct locations, just run: <em>phoronix-test-suite
benchmark sample-program</em>. The Phoronix Test Suite should now handle the rest by
installing the test, running the test, and recording the results (if you so choose).
There is no additional work that needs to be done for the results to be recorded
in the PTS Results Viewer or even reporting the results to OpenBenchmarking.org.</p>
<p><strong>For more information, visit <ahref="http://www.phoronix-test-suite.com/">Phoronix-Test-Suite.com</a> and read the <ahref="index.html">included documentation</a>. It should also be of great help to just look at the existing test profiles, which can be found inside the <em>phoronix-test-suite/pts/</em> folder with the <em>test-resources</em> and <em>test-profiles</em> sub-directories.</strong></p>
<p>Phoromatic is a remote management system for the Phoronix Test Suite. Phoromatic allows the automatic (hence the name <em>Phoro-matic</em>) scheduling of tests, remote installation of new tests, and the management of multiple test systems all through an intuitive, easy-to-use web interface. Tests can be scheduled to automatically run on a routine basis across multiple test systems. The test results are then available from this central, secure location.</p>
<p>Phoromatic was originally introduced with Phoronix Test Suite 2.0 via Phoromatic.com as a project going back to 2008~2009. Phoromatic.com debuted as a hosted instance with the option of behind-the-firewall licensing for use within organizations. With Phoronix Test Suite 5.2 the model shifted to offer a local, open-source version of Phoromatic built into the Phoronix Test Suite code-base. Thanks to continued enterprise development, with Phoronix Test Suite 5.4 is now a fully-functioning, built-in version of Phoromatic that's open-source and can be used for behind-the-firewall testing without needing to push results to OpenBenchmarking.org and the ability to keep all results private.</p>
<p>Phoromatic in Phoronix Test Suite 5.4 also has the ability to support zero-conf network discovery using Avahi and the automatic distribution of needed test profiles/suites and test files. Phoronix Test Suite 5.4's Phoromatic is a significant breakthrough for open-source testing particularly those running this GPL benchmarking software within test labs and other large organizations.</p>
<h2>Features<h2>
<p>Built atop the Phoronix Test Suite, Phoromatic offers many features for both enterprise and community/personal users:</p>
<h3>Automated Scheduling</h3>
<p>Whether it is every evening at 6:00PM, once every Thursday at 10:00AM or somewhere in between, Phoromatic can schedule tests to be run at user-defined intervals. The testing schedules can be updated through Phoromatic web interface. After the test(s) have run, the results will be immediately uploaded to Phoromatic.</p>
<h3>Extensible</h3>
<p>Any test profile or test suite that is compliant with the Phoronix Test Suite specification will work with Phoromatic. Phoromatic is able to leverage the hundreds of test profiles and test suites currently in the Phoronix Test Suite via OpenBenchmarking.org, along with any custom or proprietary test profiles you or your company utilize. Additionally, the Phoromatic interface allows the user to construct their own test suite(s).</p>
<h3>Remote Testing</h3>
<p>Once the test system is setup, all testing and management of that system can be done remotely. There is no need to execute Phoronix Test Suite commands locally using the GUI or command line version, but instead nearly all of the same features are accessible from the Phoromatic interface.</p>
<h3>Multi-System Support</h3>
<p>A single Phoromatic account is able to manage multiple test systems running the Phoronix Test Suite. Phoromatic supports grouping together test systems, tagging, and other features to support effectively managing many test systems. From the Phoromatic interface, installed system hardware and software from a given system can also be viewed.</p>
<h3>Turn-Key Deployment</h3>
<p>No additional software needs to be installed to support Phoromatic; all that's needed is Phoronix Test Suite 5.4 or later for full compatibility. New test systems can easily be synced with a given Phoromatic account by running a single command from the Phoronix Test Suite client.</p>
<h3>Result Management</h3>
<p>Test results are automatically uploaded to the Phoromatic account and remain private unless you opt to upload them to OpenBenchmarking.org. From the Phoromatic interface, results from multiple test systems can easily be compared and multiple results from the same systems can be used to track performance over time. There are also options to look at the statistical significance of the results and other features to efficiently and effectively analyze the system's performance.</p>
<h3>Decentralized</h3>
<p>Once the Phoronix Test Suite running on the Phoromatic Server has been able to cache all of the OpenBenchmarking.org test files and the needed files for each test, Phoromatic with any Phoronix Test Suite clients on your LAN can run fully decentralized without the need for a constant stream of OpenBenchmarking.org communication or Internet connection for that matter. (The only exception would be if your local systems don't have all their needed external dependencies and your system's package manager would need to install components like a compiler or necessary system libraries.</p>
<h3>Fully Open-Source</h3>
<p>Phoromatic is now fully open-source within the Phoronix Test Suite code-base for fostering greater development and new capabilities. Patches are welcome and Phoronix Media is available to provide commercial support and custom engineering services around Phoromatic and the Phoronix Test Suite.</p>
<h2>Phoromatic Server Setup</h2>
<p>Phoromatic is built into the Phoronix Test Suite code-base and should be found in all packaged versions of the <strong>phoronix-test-suite</strong>. Starting the Phoromatic Server entails running phoronix-test-suite start-phoromatic-server after configuring the server information within <em>~/.phoronix-test-suite/user-config.xml</em>. The Phoromatic Server can with or without root permissions depending upon your firewall and the port numbers you wish to use for the server.</p>
<p>On the "client side", any up-to-date version of the Phoronix Test Suite can automatically communicate with the Phoromatic Server. If Avahi support is available (commonly in Linux distribution repositories as <u>avahi-tools</u>), there should be zero-conf discovery if the Phoromatic Server and client systems are on the same LAN. If a Phoronix Test Suite client discovers a Phoromatic Server, it will attempt to use it automatically as a local download cache. In the event of no Internet connection, it will also attempt to obtain the needed OpenBenchmarking.org test/suite meta-data from the Phoromatic Server based upon its archived meta-data. This allows the Phoronix Test Suite / Phoromatic deployment on the LAN to be self-sustaining without an Internet connection as long as the systems have all installed test dependencies.</p>
<p>Further configuration of the setup parameters for the Phoromatic Server and Phoronix Test Suite clients can be tuned via the <em>~/.phoronix-test-suite/user-config.xml</em> file. All control and configuration of the Phoromatic Server is done via the web-based interface when the Phoromatic Server is active.</p>
<p>The Phoromatic Server utilizes PHP/HHVM's built-in web-server capabilities and there's also a Phoronix Test Suite built-in WebSocket server that's also initiated for back-end processing. At this time there are no ports set by default for these services but must be defined within the user configuration file. With the Avahi zero-conf network discovery and other automated detection in place, there's little restrictions over the port selection.</p>
<p>Systemd and Upstart service files are shipped with the Phoronix Test Suite for those that wish to have the services automatically run as daemons. The only new requirements over the basic Phoronix Test Suite system requirements is having PHP-SQLite support installed and the newer version of PHP or HHVM is recommended for offering the best support.</p>
<h2>Example Deployments</h2>
<h3>Use Case A: Unrestricted Internet Access, Local Result Storage</h3>
<p>Systems on your network with unrestricted Internet access is the easiest and simplest deployment for the Phoronix Test Suite and Phoromatic. After installing the Phoronix Test Suite on the system you wish to designate the Phoromatic Server and have configured the <em>user-config.xml</em> file, simply run:</p>
<p>Assuming you have no firewall or permission issues, the built-in web server and WebSocket server should proceed to initiate along with outputting the IP/port information for these services. Unless otherwise disabled from the user configuration file and if avahi-tools is present, the Phoromatic Server will be advertised with Avahi for zero-configuration networking.</p>
<p>From the Phoromatic web interface you are able to create an account and from there proceed with the creating of test schedules, updating settings, and connecting systems. From the "client systems" you wish to use as the benchmarking nodes, it's simply a matter of running <strong>phoronix-test-suite phoromatic.connect</strong> with zero-conf networking or otherwise follow the information from the Phoromatic web interface for manual setup with the IP/port information.</p>
<h3>Use Case B: No Internet Available To Client Systems</h3>
<p>It's possible to run the Phoronix Test Suite and Phoromatic Server without a persistent Internet connection as long as you are able to first download the necessary files to the Phoromatic Server. After installing the Phoronix Test Suite on the system you wish to designate the Phoromatic Server and have configured the <em>user-config.xml</em> file, a few commands from the system while having an Internet connection will be able to cache the needed data:</p>
<p>This command will simply download all of the needed test files for the tests/suites passed to the sub-command. Alternatively you could also pass pts/all to cache all tests. It's important though to just cache the tests/suites you'll be using on your network. This will generate the test file download cache by default to <em>~/.phoronix-test-suite/download-cache/</em> or <em>/usr/share/phoronix-test-suite/download-cache/</em> depending upon your write permissions. You can always run this command later with more test files. Alternatively, if you already have a number of tests installed on the system, simply running "phoronix-test-suite make-download-cache" will generate the cache based upon the currently installed tests.</p>
<p>This command will cache as much of the OpenBenchmarking.org meta-data as possible for test profiles and test suites. After the above commands, the Phoromatic Server should no longer need a persistent Internet connection.</p>
<p>Proceed to start the Phoromatic Server and operate as normal.</p>
<p>For the test clients without an Internet connection, as long as they're able to reach the Phoromatic Server, the Phoromatic Server should be able to automatically serve all of the needed test files download cache and OpenBenchmarking.org meta-data to the systems locally.</p>
<h3>Use Case C: Phoromatic Across The Internet</h3>
<p>If wishing to use the same Phoromatic Server across multiple geographic locations, it's easily possible -- you just lose out on the zero-conf networking ability. To let the Phoronix Test Suite client systems know about the remote Phoromatic Server, simply add the Phoromatic Server information to the client's <em>PhoromaticServers</em> element within the <em>user-config.xml</em>. Of course, make sure the Phoromatic Server has a globally resolvable IP address and its Phoromatic HTTP/WebSocket ports are open. Once informing the client of the Phoromatic Server, the use cases as above apply in the same manner.</p>
<h2>Client Setup</h2>
<p>From Phoronix Test Suite client systems running on the LAN, the following command will report all available detected Phoromatic Servers along with important server and debugging information:</p>
<p>Phoromatic Servers are detected by the Phoronix Test Suite through Avahi or if manually configuring the Phoronix Test Suite clients to point to Phoromatic Servers. For networks without Avahi/auto-discovery support or for test systems that may be connecting from another network, the IP address and HTTP port number can be added to the local system's <em>~/.phoronix-test-suite/user-config.xml</em> with the <em>PhoromaticServers</em> element. Adding the <em>IP:port</em> (the Phoromatic Server's HTTP port) to the PhoromaticServers <em>user-config.xml</em> element for will perform targeted probing by the Phoronix Test Suite without any dependence on Avahi. Multiple Phoromatic Servers can be added if each IP:port is delimited by a comma.</p>
<p>To connect a Phoronix Test Suite system for benchmarking to an account, log into your Phoromatic account from the web-interface and on the main/system pages will be instructions along with a specially formed string to run, e.g. <em>phoronix-test-suite phoromatic.connect 192.168.1.211:5447/I0SSJY</em>. When running that command once on the system(s) to be synced to that account, as the administrator you'll be able to validate/approve the systems from the Phoromatic web interface. After that, whenever the system(s) are to be running benchmarks, simply have the <strong>phoronix-test-suite phoromatic.connect</strong> command running on the system (after the initial account has been synced, simply running <strong>phoronix-test-suite phoromatic.connect</strong> is enough for the system to find the server and its account).</p>
<h2>Root Administrator</h2>
<p>The root administrator account is able to manage the server-level settings, e.g. Phoromatic storage location and other global settings related to the Phoronix Test Suite / Phoromatic Server, from the web user-interface.</p>
<p>To enable the root administrator log-in, first from the server's command-line interface run <strong>phoronix-test-suite phoromatic.set-root-admin-password</strong> to set the password. Following that, you can log into the root administrator account via the web interface via the <em>rootadmin</em> user-name and the set password.</p>
<h2>Other Advice</h2>
<h3>Disable Internet Precaution</h3>
<p>If you have an Internet connection but want to ensure your Phoronix Test Suite client doesn't attempt to use it for any matter, via the <em>~/.phoronix-test-suite/user-config.xml</em> you can set <em>NoInternetCommunication</em> to <em>TRUE</em>. There's also a NoNetworkCommunication tag, but setting that to TRUE will disable any form of network communication -- including communication with the Phoromatic Server.</p>
<h3>Ports / Services</h3>
<p>The Phoromatic Server process currently relies upon a PHP/HHVM built-in web server process and a PTS-hosted WebSocket server. The web server process handles the web UI and much of the responsibilities of the Phoromatic Server. Over time the PTS WebSocket server will be increasingly utilized for bi-directional, real-time communication between the server and clients -- including for features like viewing real-time hardware sensors of client systems from the server UI.</p>
<h3>Systemd / Upstart</h3>
<p>Packaged with the Phoronix Test Suite are basic <em>phoromatic-client</em> and <em>phoromatic-server</em> configurations for both Upstart and systemd init systems. The <em>phoromatic-server</em> configuration will launch the Phoronix Test Suite's Phoromatic Server and the <em>phoromatic-client</em> service will attempt to connect to a <u>pre-configured</u> Phoromatic Server. The systemd service files will automatically be installed via the Phoronix Test Suite <em>install-sh</em> process while the Upstart jobs can be copied from <em>deploy/phoromatic-upstart/*</em> to <em>/etc/init</em>.</p>
<h3>Cache Verification</h3>
<p>To confirm the files accessible to Phoronix Test Suite client systems, from the Phoromatic Server web user-interface go to the <em>settings</em> page followed by the <em>cache settings</em> link to view information about the download and OpenBenchmarking.org caches. From the client systems, running <strong>phoronix-test-suite phoromatic.explore</strong> will also supply cache statistics.</p>
<h3>Log Files</h3>
<p>The Phoromatic Server will produce a log file of events / debugging information to <em>~/.phoronix-test-suite/phoromatic.log</em> or <em>/var/log/phoromatic.log</em> depending upon the service's permissions. When running the Phoronix Test Suite Phoromatic client, the log will be written to one of the respective locations in <em>phoronix-test-suite.log</em>.</p>
<h3>Multi-User Accounts</h3>
<p>For each time a user account is made from the Phoromatic web UI's log-in page, all of the test schedules, systems, and other account information is separate to allow for a completely isolated multi-user system. If a main administrator (the one creating the account) wishes to have multiple users sharing the same account data, that user can create additional accounts from the <em>Users</em> tab of their account. The main administrator can make an additional administrator account or a "viewer" account that can consume the account's data but not create/modify the schedules, systems, or other account details.</p>
<h3>
<h3>File Locations</h3>
<p>When running the Phoronix Test Suite Phoromatic Server as root, rather than using the <em>~/.phoronix-test-suite/</em> directory, the standard Linux file-system hierarchy standard is honored. The main storage path is <em>/var/lib/phoronix-test-suite/</em>, the user configuration file is <em>/etc/phoronix-test-suite.xml</em>, and <em>/var/cache/phoronix-test-suite/</em> for cache files.</p>
<h3>Uploading Other Test Results</h3>
<p>Unscheduled test results and other results found on connected systems to a Phoromatic account can upload the data to the Phoromatic Server using the <em>phoronix-test-suite phoromatic.upload-result <result file identifier ></em> sub-command.</p>
<h3>User Context File Logging</h3>
<p>For those utilizing custom set context script files as part of the Phoromatic test schedule, any important notes / log information can be written to the file specified by the <em>PHOROMATIC_LOG_FILE</em> environment variable set while running the user context scripts. The contents of that file is then sent to the Phoromatic Server otherwise the standard output of the script's execution is submitted to the Phoromatic Server for logging. These logs can then be viewed by the Phoromatic Server along with the test results. Other environment variables accessible when running a user context script include <em>PHOROMATIC_TRIGGER</em>, <em>PHOROMATIC_SCHEDULE_ID</em>, and <em>PHOROMATIC_SCHEDULE_PROCESS</em>.</p>
<p>The Phoronix Test Suite is the most comprehensive testing and benchmarking platform available for Linux, Solaris, MacOS X, and BSD operating systems. The Phoronix Test Suite allows for carrying out tests in a fully automated manner from test installation to execution and reporting. All tests are meant to be easily reproducible, easy-to-use, and support fully automated execution. The Phoronix Test Suite is open-source under the GNU GPLv3 license and is developed by Phoronix Media in cooperation with partners. Version 1.0 of the Phoronix Test Suite was publicly released in 2008.</p>
<p>The Phoronix Test Suite client itself is a test framework for providing seamless execution of test profiles and test suites. There are more than 200 tests available by default, which are transparently available via <ahref="http://openbenchmarking.org/">OpenBenchmarking.org</a> integration. Of these default test profiles there is a range of sub-systems that can be tested and a range of hardware from mobile devices to desktops and worksrtations/servers. New tests can be easily introduced via the Phoronix Test Suite's extensible test architecture, with test profiles consisting of XML files and shell scripts. Test profiles can produce a quantitative result or other qualitative/abstract results like image quality comparisons and pass/fail. Using Phoronix Test Suite modules, other data can also be automatically collected at run-time such as the system power consumption, disk usage, and other software/hardware sensors. Test suites contain references to test profiles to execute as part of a set or can also reference other test suites. Test suites are defined via an XML schema.</p>
<p>The Phoronix Test Suite is the most comprehensive testing and benchmarking platform available for Linux, Solaris, macOS, Windows, and BSD operating systems. The Phoronix Test Suite allows for carrying out tests in a fully automated manner from test installation to execution and reporting. All tests are meant to be easily reproducible, easy-to-use, and support fully automated execution. The Phoronix Test Suite is open-source under the GNU GPLv3 license and is developed by Phoronix Media in cooperation with partners. Version 1.0 of the Phoronix Test Suite was publicly released in 2008.</p>
<p>The Phoronix Test Suite client itself is an automated test framework for providing seamless execution of test profiles and test suites. There are more than 650 tests available by default, which are transparently available via <ahref="https://openbenchmarking.org/">OpenBenchmarking.org</a> integration. Of these default test profiles there is a range of sub-systems that can be tested and a range of hardware from mobile devices to desktops and workstations/servers. New tests can be easily introduced via the Phoronix Test Suite's extensible test architecture, with test profiles consisting of XML files and shell scripts. Test profiles can produce a quantitative result or other qualitative/abstract results like image quality comparisons and pass/fail. Using Phoronix Test Suite modules, other data can also be automatically collected at run-time such as the system power consumption, disk usage, and other software/hardware sensors. Test suites contain references to test profiles to execute as part of a set or can also reference other test suites. Test suites are defined via an XML schema.</p>
<p>Running the Phoronix Test Suite for the first time can be as simple as issuing a command such as <em>phoronix-test-suite benchmark c-ray</em>, which would proceed to install a simple CPU test, execute the test, and report the results. Along with the results, the system's hardware/software information is collected in a detailed manner, relevant system logs, and other important system attributes such as compiler flags and system state. Users can optionally upload their results to OpenBenchmarking.org for sharing results with others, comparing results against other systems, and to carry out further analysis.</p>
<h1>OpenBenchmarking.org</h1>
<p>OpenBenchmarking.org is an open, collaborative testing platform that makes the Phoronix Test Suite an even more extensible platform for conducting automated tests with complete integration into Phoronix Test Suite test client. OpenBenchmarking.org serves as a repository for storing test profiles, test suites, and result data. Test profiles and suites are stored in the OpenBenchmarking.org cloud to allow for new/updated tests to be seamlessly obtained via the Phoronix Test Suite without needing to manually update the Phoronix Test Suite client. OpenBenchmarking.org also makes it easy to facilitate side-by-side comparisons with any other results stored in the OpenBenchmarking.org cloud. Any Phoronix Test Suite user is permitted to upload their test results, test profiles, and suites to OpenBenchmarking.org.</p>
<p>When finding a set of results on OpenBenchmarking.org (e.g. <ahref="http://openbenchmarking.org/result/1203160-BY-NVTEGRA3785">an example result file</a>), it's as easy as running the Phoronix Test Suite with that OpenBenchmarking.org ID to perform an automated side-by-side comparison (e.g. <em>phoronix-test-suite benchmark 1203160-BY-NVTEGRA3785</em>).</p>
<p>When finding a set of results on OpenBenchmarking.org, it's as easy as running the Phoronix Test Suite with that OpenBenchmarking.org ID to perform an automated side-by-side comparison (e.g. <em>phoronix-test-suite benchmark 1203160-BY-NVTEGRA3785</em>).</p>
<p>Thanks to the wealth of test data (results, system logs, etc) from crowd-sourced benchmarking via the Phoronix Test Suite, a plethora of analytical features are also available from OpenBenchmarking.org.</p>
<h1>Phoromatic</h1>
<p>Phoromatic is a remote management system for the Phoronix Test Suite that allows the automatic scheduling of tests, remote installation of new tests, and the management of multiple test systems all through an intuitive, easy-to-use web interface. Tests can be scheduled to automatically run on a routine basis across multiple test systems. Phoromatic can also interface with revision control systems to offer support for issuing new tests on a context-basis, such as whenever a Git commit has been pushed or new daily image available. The test results are then available from this central, secure location.</p>
<p>Phoromatic is an add-on to the Phoronix Test Suite that's primarily intended for enterprise users when facilitating tests across a wide-spectrum of hardware within a test lab or when needing to carry out tests on a routine basis.</p>
<p>A Phoromatic server can be started using <em>phoronix-test-suite start-phoromatic-server</em> (or the included systemd phoromatic-server service file). Clients can connect to the server using the <em>phoronix-test-suite phoromatic.connect</em> command as well as a phoromatic-client systemd service. See the Phoromatic section of the documentation for more information on setting up Phoromatic.</p>
<p>The Phoronix Test Suite supports Linux, Apple MacOS X, Microsoft Windows, Solaris, Hurd, BSD, and other operating system environments. The only Linux distribution-specific code deals with the external dependencies support feature that are set by individual test profiles. If you are not running one of the supported Linux distributions, Solaris, BSD, or MacOS X, you may need to install a package manually (as instructed by the Phoronix Test Suite) in order for a test to run. An example of an external dependency would be GCC and the OpenGL Utility Toolkit being needed for test profiles that build an OpenGL benchmark from source-code.</p>
<p>Among the distributions where the Phoronix Test Suite has been officially tested include Ubuntu, Fedora, Mandriva / Mageia, Gentoo, PCLinuxOS, Arch Linux, Pardus, OpenSuSE, Optware, webOS, Zenwalk, CentOS, Red Hat Enterprise Linux, Oracle Linux, Scientific Linux, Debian, Mint, MEPIS, Alpine Linux, Void Linux, Intel Clear Linux, and Amazon Linux EC2.</p>
<p>Among the tested BSD distributions are FreeBSD, PC-BSD, NetBSD, OpenBSD, Debian GNU/kFreeBSD, and DragonflyBSD. Tested Solaris distributions include OpenSolaris, Solaris Express 11, Oracle Solaris 11, OpenIndiana, Illumos, and Nexenta.</p>
<p>The Phoronix Test Suite supports Linux, Apple macOS, Microsoft Windows, Solaris, Hurd, BSD, and other operating system environments. The only Linux distribution-specific code deals with the external dependencies support feature that are set by individual test profiles. If you are not running one of the supported Linux distributions, Solaris, BSD, or macOS, you may need to install a package manually (as instructed by the Phoronix Test Suite) in order for a test to run. An example of an external dependency would be GCC and the OpenGL Utility Toolkit being needed for test profiles that build an OpenGL benchmark from source-code.</p>
<p>Among the distributions where the Phoronix Test Suite has been officially tested include Ubuntu, Fedora, Mandriva / Mageia, Gentoo, PCLinuxOS, Arch Linux, Pardus, OpenSuSE, Optware, webOS, Zenwalk, CentOS, Red Hat Enterprise Linux, Oracle Linux, Scientific Linux, Debian, Mint, Alpine Linux, Void Linux, Intel Clear Linux, and Amazon Linux EC2.</p>
<p>Among the tested BSD distributions are FreeBSD, NetBSD, OpenBSD, and DragonflyBSD. Tested Solaris distributions include Oracle Solaris 11, OpenIndiana, and Illumos.</p>
<h1>Dependencies</h1>
<p>The only required dependency for the Phoronix Test Suite is PHP 5.3 or newer. On Linux distributions, the needed package is commonly called <em>php5-cli</em> or <em>php-cli</em> or <em>php</em>. It is important to note that only PHP for the command-line is needed and not a web server (Apache) or other packages commonly associated with PHP and its usage by web-sites. The PHP5 version required is PHP 5.3+ and can also be found at <ahref="http://www.php.net/">www.php.net</a>.</p>
<p>The only required dependency for the Phoronix Test Suite is PHP 5.3 or newer. On Linux distributions, the needed package is commonly called <em>php5-cli</em> or <em>php-cli</em> or <em>php7</em> or <em>php</em>. It is important to note that only PHP for the command-line is needed and not a web server (Apache) or other packages commonly associated with PHP and its usage by web-sites. The PHP5 version required is PHP 5.3+ and can also be found at <ahref="http://www.php.net/">www.php.net</a>. PHP 7 and PHP 8 are also fully supported by the Phoronix Test Suite.</p>
<p>For installing PHP on Windows, the <ahref="https://www.microsoft.com/web/platform/phponwindows.aspx">Microsoft Web Platform Installer</a>provides an automated alternative that will install PHP into the directory expected by Phoronix Test Suite. Users opting to install PHP manually must extract the files to <em>C:\Program Files (x86)\PHP\</em> or a subdirectory.</p>
<p>The <em>phoronix-test-suite.bat</em>Windows launcher for the Phoronix Test Suite will automatically download and setup PHP on the local system if PHP is not present already.</p>
<p>The Phoronix Test Suite does not need to be installed system-wide but can simply be run from the extracted phoronix-test-suite folder as the local user.</p>
<p>As part of the PHP requirement, the following PHP extensions are required and/or highly recommended in order to take advantage of the Phoronix Test Suite capabilities:</p>
<ul>
<li><strong>PHP DOM</strong> is needed for XML operations and must be installed for the Phoronix Test Suite to function.</li>
@@ -26,8 +27,8 @@
<p>Without all of these extensions, some capabilities of the Phoronix Test Suite will not be available. Many of these packages are enabled by default and do not require any additional installation steps on most Linux distributions, otherwise they are often found in the package vendor's repository.</p>
<h1>Notes</h1>
<h2>General</h2>
<p>You may need to modify the <em>php.ini</em> file on your system in order to support uploading results to OpenBenchmarking.org or logging into your OpenBenchmarking.org account. The <em>allow_url_fopen</em>, <em>file_uploads</em>, and <em>allow_url_include</em> options must be set to true in the PHP configuration. See additional information in this <ahref="http://www.phoronix.com/forums/showpost.php?p=32484&postcount=4">Phoronix Forums support thread</a>.</p>
<p>Major updates to the Phoronix Test Suite are released on a quarterly basis. The latest stable and development versions of the Phoronix Test Suite are available at <ahref="http://www.phoronix-test-suite.com/">Phoronix-Test-Suite.com</a>. The Git repository where the latest Phoronix Test Suite code is provided is hosted at <ahref="https://github.com/phoronix-test-suite/phoronix-test-suite">GitHub.com/phoronix-test-suite</a> and can be cloned/pulled from the <em>https://github.com/phoronix-test-suite/phoronix-test-suite.git</em> repository location. The latest upstream development code is housed in the master tree while older Phoronix Test Suite releases are available in their respective Git branches based upon the release's code-name.</p>
<p>You may need to modify the <em>php.ini</em> file on your system in order to support uploading results to OpenBenchmarking.org or logging into your OpenBenchmarking.org account. The <em>allow_url_fopen</em>, <em>file_uploads</em>, and <em>allow_url_include</em> options must be set to true in the PHP configuration.</p>
<p>Major updates to the Phoronix Test Suite are released on a quarterly basis. The latest stable and development versions of the Phoronix Test Suite are available at <ahref="http://www.phoronix-test-suite.com/">Phoronix-Test-Suite.com</a>. The Git repository where the latest Phoronix Test Suite code is provided is hosted at <ahref="https://github.com/phoronix-test-suite/phoronix-test-suite">github.com/phoronix-test-suite</a> and can be cloned/pulled from the <em>https://github.com/phoronix-test-suite/phoronix-test-suite.git</em> repository location. The latest upstream development code is housed in the master tree while older Phoronix Test Suite releases are available in their respective Git branches based upon the release's code-name.</p>
<p>If building the PHP package from upstream sources, it should just be a matter of running <em>./configure</em> with the <em>--enable-zip</em> flag (all other requirements should be apart of the stock PHP configuration) to satisfy the PHP needs of the Phoronix Test Suite.</p>
<h2>File Structure</h2>
<p>If manually changing the location of the <em>phoronix-test-suite</em> launcher file, the <em>PTS_USER_PATH</em> environment variable must be adjusted inside the file to reflect the absolute location that leads to the root directory of the <em>pts</em> and <em>pts-core</em> folders. The <em>pts-core</em> directory contains the "engine" of the Phoronix Test Suite.</p>
@@ -37,28 +38,11 @@
<p>Running <em>install-sh</em> from the root directory of the Phoronix Test Suite will install the software for system-wide access. By default the <em>phoronix-test-suite</em> executable is in <em>/usr/bin/</em>, the Phoronix Test Suite files in <em>/usr/share/phoronix-test-suite/</em>, and the documentation in /<em>usr/share/doc/phoronix-test-suite/</em>. Root access is required. The default installation prefix is /usr/ but can be adjusted as the first argument (example: <em>install-sh /home/user/</em> to install the Phoronix Test Suite in your home directory).</p>
<h2>Debian/Ubuntu Installation</h2>
<p>Debian/Ubuntu users are able to follow the Generic Installation instructions or can obtain a Debian Package from the Phoronix Test Suite web-site. The package contains the <em>phoronix-test-suite</em> executable in <em>/usr/bin/</em>, the Phoronix Test Suite files in <em>/usr/share/phoronix-test-suite/</em>, and the documentation in <em>/usr/share/doc/phoronix-test-suite/</em>.</p>
<p>A phoronix-test-suite package can also be found in the official Ubuntu universe repository beginning with the Ubuntu 9.04 (Jaunty) release, but it may be out of date compared to the latest upstream version.</p>
<p>On Ubuntu 13.04 and newer if you experience an issue of system sensor monitoring not working, other multi-process tasks, or related issues reported as PHP PCNTL missing, the pcntl functions need to be removed from the <em>disable_functions</em> line within the <em>/etc/php5/cli/php.ini</em> file. This may also affect other Linux distribution support too if the vendor disables access to the PCNTL functions.</p>
<h2>Fedora / Red Hat Installation</h2>
<p>The Phoronix Test Suite can be installed on Fedora, Red Hat Enterprise Linux, and CentOS systems using the generic installation method. Alternatively, a <em>phoronix-test-suite</em> package is available in recent versions of the Fedora repository and in the EPEL (Extra Packages for Enterprise Linux) repository for Red Hat Enterprise Linux. At this time, however, the Fedora-supplied package is vastly outof date.</p>
<h2>Gentoo Installation</h2>
<p>Gentoo ebuild's for the Phoronix Test Suite have been created by users and can be currently found in the <ahref="http://bugs.gentoo.org/show_bug.cgi?id=216656">Gentoo BugZilla</a>.</p>
<h2>Mandriva Installation</h2>
<p>Phoronix Test Suite packages are available through Mandriva Cooker starting with the Mandriva Linux 2009 release.</p>
<h2>OpenSolaris Installation</h2>
<p>The Phoronix Test Suite core (pts-core) is supported on Solaris and OpenSolaris platforms, but some features may not fully function. Additionally, the PTS External Dependencies feature is supported on OpenSolaris using IPS (the Image Packaging System). However, not all test profiles are supported on Solaris / OpenSolaris, and it may be in violation of your end-user agreement to perform such benchmarks on the Sun Solaris operating system. Using the OpenSolaris Image Packaging System, installing <em>SUNWphp524</em> will provide PHP, PHP GD, and related dependencies. The Phoronix Test Suite has also been tested on Oracle Solaris 11 Express, OpenIndiana, StormOS, and Nexenta Core Platform.</p>
<p>The Phoronix Test Suite can be installed on Fedora, Red Hat Enterprise Linux, and CentOS systems using the generic installation method. Alternatively, a <em>phoronix-test-suite</em> package is available in recent versions of the Fedora repository and in the EPEL (Extra Packages for Enterprise Linux) repository for Red Hat Enterprise Linux. However, at times this package may be out-of-date compared to upstream stable.</p>
<h2>BSD Installation</h2>
<p>The Phoronix Test Suite also supports *BSD operating systems. However, like the Solaris support, not all test profiles are compatible with BSD operating systems, but pts-core has been tested against FreeBSD 7.x/8.x/9.x, NetBSD, PC-BSD 7/8/9, DragonFlyBSD 3.0/3.2/3.4/3.6/4.2, and OpenBSD 4.4/4.6. The Phoronix Test Suite will also work with Debian GNU/kFreeBSD.</p>
<p>For DragonFlyBSD, it's a matter of just using <em>pkg_radd</em> with php5, php5-json, php5-dom, and php5-zip or <em>pkgsrc</em>. With DragonFlyBSD using dports, the command is <em>pkg install php5 php5-dom php5-zip php5-json php5-simplexml</em>. Under FreeBSD/PC-BSD, PHP can be obtained from the <em>php5</em> and <em>php5-extensions</em> Ports collection.</p>
<h2>Mac OS X Installation</h2>
<p>The Phoronix Test Suite is fully supported on Apple's Mac OS X operating system as of Mac OS X 10.5 with improved support under Mac OS X 10.6. PHP ships with Mac OS X by default so it's simply a matter of downloading the Phoronix Test Suite package, extracting it, and running the executable. For tests that rely upon a compiler, Apple's XCode with GCC and LLVM can be utilized.</p>
<h2>Windows Installation</h2>
<p>The Phoronix Test Suite support on Microsoft Windows is in development and will function just fine, but is not yet feature complete compared to the other operating systems support. Only a small subset of test profiles, mostly related to graphics, are supported. In terms of the version support, right now the Phoronix Test Suite is developed and tested solely against Microsoft Windows 7 x64 and Microsoft Windows 8 x64.</p>
<p>At this time the Phoronix Test Suite client is dependent upon the <em>php.exe</em> executable being installed to <em>C:\Program Files (x86)\PHP\ </em> or one of its subdirectories (see PHP installation notes above). Once this requirement is met, simply download the Phoronix Test Suite package, extract it to a directory of your choice, and run <em>phoronix-test-suite.bat</em></p>
<p>The Phoronix Test Suite also uses <ahref="http://www.cpuid.com/cpuz.php">CPU-Z</a> for much of the hardware detection support on Windows and is dependent upon CPU-Z being installed to <em>C:\Program Files\CPUID\CPU-Z\cpuz.exe</em> if you wish to utilize this hardware reporting feature. </p>
<p>NOTE: because of lack of external dependencies support, it is necessary to manually download and install the files for some test profiles, such as the Unigine graphics benchmarks. See Troubleshooting for more information.</p>
<h2>Facebook HipHop</h2>
<p>The Phoronix Test Suite can use Facebook's <ahref="https://github.com/facebook/hiphop-php">HipHop HHVM</a> virtual machine as an alternative to the de facto PHP implementation. The Phoronix Test Suite has been tested against HHVM 2.0. If HHVM is present on the system but not PHP, it will automatically be used by the Phoronix Test Suite. Alternatively, the <em>PHP_BIN</em> environment variable can be set to point to an alternative <em>hhvm</em> binary.</p>
<p>The Phoronix Test Suite also supports the older version of Facebook HipHop that serves as a PHP to C++ translator and compiler with GCC. This support though is primitive and not officially supported. To compile the Phoronix Test Suite using HipHop/GCC, run <em>find . -name "*.php" > files.list && hphp --input-list=files.list -k 1 --log=3 --include-path="." --cluster-count=50 -v "AllDynamic=true" -v "AllVolatile=true"</em> from the root <em>phoronix-test-suite/</em> directory. It can then be executed in the form of <em>/tmp/hphp_XXX/program -f pts-core/phoronix-test-suite.php system-info</em>.</p>
<p>The Phoronix Test Suite also supports *BSD operating systems. However, like the Solaris support, not all test profiles are compatible with BSD operating systems, but should run well on the likes of FreeBSD and DragonFlyBSD.</p>
<h2>MacOS Installation</h2>
<p>The Phoronix Test Suite is fully supported on Apple's macOS operating system. PHP ships with macOS by default on macOS 12 and older so it's simply a matter of downloading the Phoronix Test Suite package, extracting it, and running the executable. For tests that rely upon a compiler, Apple's XCode with GCC and LLVM can be utilized. On newer versions of macOS not shipping with PHP by default, <ahref="https://brew.sh/">Homebrew</a> can be used for installing PHP or building PHP from source. The Phoronix Test Suite also supports making use of Homebrew for acquiring necessary Phoronix Test Suite dependencies on macOS.</p>
<p>Phoronix Test Suite 8.0 introduced rewritten Windows support that is at near feature parity to the program's long-standing support for Linux, macOS, and BSD operating systems.</p>
<p>The Phoronix Test Suite Windows support currently targets <strong>Windows 10 x64</strong>, <strong>Windows 11 x64</strong> and <strong>Windows Server 2016 x64</strong> and later. Earlier versions of Windows, namely Windows Server 2012 and Windows 8, may work to some extent but some hardware/software reporting features and other capabilities may be missing or report warning messages. The Phoronix Test Suite Windows support is also exclusively focused on x86 64-bit support: the Phoronix Test Suite itself will run on x86 32-bit but many of the program dependencies are configured for making use of 64-bit binaries.</p>
<h2>Windows Setup / Dependencies</h2>
<p>As with Phoronix Test Suite on Linux and other operating systems, the principal dependency is on PHP. Running the <em>phoronix-test-suite.bat</em> file launcher for the Phoronix Test Suite on Windows will attempt to download and setup PHP on the system under <em>C:\PHP</em> as the default location should PHP support not be found within your system's <em>Program Files</em> directories. The PHP Windows build does depend upon Microsoft Visual C++ redistributable libraries, which the Windows launcher will also attempt to download and install if needed.</p>
<p>The Phoronix Test Suite on Windows does depend upon <ahref="https://www.cygwin.com/">Cygwin</a> for its Bash interpreter and other basic utilities to ease the process of porting test profiles to Windows with being able to use many of the same test installation scripts on Windows/Linux/macOS/BSD/Solaris then largely unmodified. Most of the Windows tests depend upon their respective native Windows applications/binaries while this Cygwin support is a convenience for handling these Bash setup scripts and also some test profiles that depend upon a GNU toolchain. The Phoronix Test Suite will attempt to download and setup Cygwin on the system if Cygwin isn't found in its default location of <em>C:\cygwin64</em>.</p>
<p>Various test profiles may depend upon other "external dependencies" like Python, PERL, Steam, and Java, as examples. The Phoronix Test Suite as with its support for other operating systems and Linux distributions will attempt to install these needed dependencies on a per-test basis when needed if existing support is not detected on the system.</p>
<h2>Running The Phoronix Test Suite On Windows</h2>
<p>The Phoronix Test Suite can run from its local directory and does not need to be "installed" to a system path or any other "setup" process prior to execution. On a clean install of Windows or Windows Server, deploying the Phoronix Test Suite is designed to be as easy and straight-forward as possible:</p>
<p>1. Download the Phoronix Test Suite from <ahref="https://github.com/phoronix-test-suite/phoronix-test-suite">Phoronix-Test-Suite on GitHub</a> (<ahref="https://github.com/phoronix-test-suite/phoronix-test-suite/archive/master.zip">zip file</a>).</p>
<p>2. From the Command Prompt or PowerShell, enter the <em>phoronix-test-suite</em> directory whether it be from Git or a zipped download.</p>
<p>3. Run the <em>phoronix-test-suite.bat</em> file that should proceed to run the Phoronix Test Suite just as you would on any other operating system. If needed the Phoronix Test Suite will try to initially download and setup PHP if needed followed by the attempted automatic Cygwin setup, etc.</p>
<p>4. Any of the Phoronix Test Suite commands from other operating systems should work on Windows. If you are new to the Phoronix Test Suite, you may enjoy a bit more guided experience by running the <strong>phoronix-test-suite shell</strong> command.</p>
<h2>Test Profiles On Windows</h2>
<p>As of 2021, around 100 test profiles are currently compatible with the Phoronix Test Suite on Windows. This includes many of the popular benchmarks and other interesting test cases. Over time more test profiles will continue to be ported to Windows where applicable and there are also some Windows-only tests also supported for execution by the Phoronix Test Suite.</p>
<h2>Getting Started</h2>
<p>Besides <strong>phoronix-test-suite shell</strong> and <strong>phoronix-test-suite help</strong>, there is also <strong>phoronix-test-suite interactive</strong> for helping new users understand Phoronix Test Suite benchmarking. Long story short, it should be as easy as running <strong>phoronix-test-suite benchmark stockfish</strong> or <strong>phoronix-test-suite benchmark crafty</strong> as some examples for carrying out automated, cross-platform benchmarks in a side-by-side and fully-reproducible manner.</p>
<html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>External Dependencies</title></head><body><p>The Phoronix Test Suite has a feature known as "External Dependencies" where the Phoronix Test Suite can attempt to automatically install some of the test-specific dependencies on supported distributions. If running on a distribution where there is currently no External Dependencies profile, the needed package name(s) are listed for manual installation.</p><p>Below are a list of the operating systems that currently have external dependencies support within the Phoronix Test Suite for the automatic installation of needed test files.<hr><ul></ul><li>Alpine Linux</li><li>Amazon</li><li>Angstrom</li><li>Arch Linux</li><li>CentOS</li><li>ClearOS</li><li>ClearOS Core Server</li><li>Debian</li><li>DragonFlyBSD</li><li>Fedora</li><li>Fluxbuntu</li><li>FreeBSD</li><li>GNU KFreeBSD</li><li>Gentoo</li><li>Goobuntu</li><li>HP</li><li>Joli Cloud</li><li>Linaro</li><li>Linux Mint</li><li>MEPIS</li><li>Mac OS X</li><li>MacPorts</li><li>Mageia</li><li>Mandriva</li><li>MeeGo</li><li>Moblin</li><li>Mythbuntu</li><li>NetBSD</li><li>Nexenta Core</li><li>OLPC</li><li>OpenIndiana</li><li>OpenMandriva</li><li>OpenSolaris</li><li>OpenSuSE</li><li>Optware</li><li>Oracle Server</li><li>PCLinuxOS</li><li>PTS Desktop Live</li><li>PTS Linux Live</li><li>Palm</li><li>Pardus Linux</li><li>Red Hat Enterprise</li><li>Red Hat Enterprise Server</li><li>SUSE</li><li>SUSE Linux</li><li>Scientific</li><li>ScientificSL</li><li>Solus</li><li>Solus Linux</li><li>Ubuntu</li><li>Void Linux</li><li>Zenwalk</li><li>gNewSense</li></p></body></html>
<p>The Phoronix Test Suite has a feature known as "External Dependencies" where the Phoronix Test Suite can attempt to automatically install some of the test-specific dependencies on supported distributions. If running on a distribution where there is currently no External Dependencies profile, the needed package name(s) are listed for manual installation.</p>
<p>Below are a list of the operating systems that currently have external dependencies support within the Phoronix Test Suite for the automatic installation of needed test files.<hr><ul></ul><li>Alpine Linux</li><li>Amazon</li><li>Angstrom</li><li>Arch Linux</li><li>Clear Linux</li><li>ClearOS</li><li>ClearOS Core Server</li><li>Debian</li><li>DragonFlyBSD</li><li>Fedora</li><li>Gentoo</li><li>Linux Embedded Development Environment</li><li>Linux Mint</li><li>Mac OS X</li><li>MacPorts</li><li>Mageia</li><li>Mandriva</li><li>Microsoft Windows</li><li>MidnightBSD</li><li>NetBSD</li><li>OpenBSD</li><li>OpenIndiana</li><li>OpenMandriva</li><li>OpenMandrivaLinux</li><li>OpenSolaris</li><li>Optware</li><li>Oracle Server</li><li>PCLinuxOS</li><li>Pardus Linux</li><li>Red Hat Enterprise</li><li>Red Hat Enterprise Server</li><li>SUSE Enterprise Linux</li><li>SUSE Linux</li><li>Scientific</li><li>ScientificSL</li><li>Solus</li><li>Solus Linux</li><li>Termux</li><li>Ubuntu</li><li>Void Linux</li><li>Zenwalk</li><li>macOS Brew</li><li>openSUSE</li><li>openSUSE Leap</li><li>openSUSE Tumbleweed</li></p>
<p>These files/folders are the default locations when running as a non-root Phoronix Test Suite user. When running as root, the paths may appear in standard system paths like <em>/etc/phoronix-test-suite.xml</em>.</p>
<p>This is a per-user configuration file. Among the information stored here is the test options, locations for storing files, and batch mode options. This file is formatted in XML.</p>
<p>This is a per-user configuration file. Among the information stored here is the test options, locations for storing files, and batch mode options. This file is formatted in XML. When run as root, this path is <em>/etc/phoronix-test-suite.xml</em>.</p>
<p>This is a per-user configuration file for storing graph attributes. The adjustable options include HTML hex color codes for different areas of the graph, dimensions of the graph, and font sizes. This file is formatted in JSON.</p>
<p>This directory is where tests are installed by default. Each test has its own directory within a sub-directory of <em>installed-tests/</em> based upon its OpenBenchmarking.org repository. In the test's folder is a <em>pts-install.xml</em> file used for managing the installation.</p>
<p>This directory is where tests are installed by default. Each test has its own directory within a sub-directory of <em>installed-tests/</em> based upon its OpenBenchmarking.org repository. In the test's folder is a <em>pts-install.json</em> file used for managing the installation.</p>
<p>This directory is where tests results are saved by default. Each saved file has its own directory. In the saved directory is then a <em>composite.xml</em> file containing the useful results while in the <em>test-X.xml</em> files are back-ups of the results.</p>
<p>This is the directory where test suites are stored.</p>
<h1>Environment Variables</h1>
<p><strong>TEST_RESULTS_NAME</strong></p>
<p>When this variable is set, the value will be used as the name for automatically saving the test results.</p>
<p><strong>TEST_RESULTS_IDENTIFIER</strong></p>
<p>When this variable is set, the value will be used as the test identifier when automatically saving the test results.</p>
<p><strong>TEST_RESULTS_DESCRIPTION</strong></p>
<p>When this variable is set, the value will be used as the test results description when saving the test results.</p>
<p><strong>PRESET_OPTIONS</strong></p>
<p>For setting any test option(s) from an environment variable rather than being prompted for the options when running a test. Example: <em>PRESET_OPTIONS="stream.run-type=Add" ./phoronix-test-suite benchmark stream</em>. Multiple options can be passed to this environment variable when delimited by a semicolon.</p>
<p><strong>SKIP_TESTS</strong></p>
<p>If there are any test(s) to exempt from the testing process, specify them in this variable. Multiple tests can be waived by delimiting each test identifier by a comma. A test hardware type (i.e. Graphics) can also be supplied for skipping a range of tests.</p>
<p><strong>RUN_TESTS_IN_RANDOM_ORDER</strong></p>
<p>Setting this environment variable will cause the tests to be run in a random order.</p>
<p><strong>SKIP_TESTING_SUBSYSTEMS</strong></p>
<p>If you are running a set of benchmarks (namely a result file) but wish to skip some of the tests that don't belong to a certain test type group, you can set the hardware types to test via this environment variable. E.g. setting <em>SKIP_TESTING_SUBSYSTEMS=Graphics</em> will skip all test profiles to run that are not of the graphics test group. Multiple types should be delimited by a comma.</p>
<p><strong>PTS_MODULE_SETUP</strong></p>
<p>This variable can be used to load Phoronix Test Suite module settings automatically when using the <em>module-setup</em> option. An example would be: <em>PTS_MODULE_SETUP="phoromatic.remote_host=http://www.phoromatic.com/; phoromatic.remote_account=123456; phoromatic.remote_verifier=ABCD" phoronix-test-suite module-setup phoromatic</em>.</p>
<p><strong>PTS_MODULES</strong></p>
<p>If there are any Phoronix Test Suite modules to additionally load, they can be specified here. Multiple modules can be supplied by delimiting them with a comma. The more appropriate way of loading Phoronix Test Suite modules for longer periods of time is by using the <em>~/.phoronix-test-suite/user-config.xml</em> configuration.</p>
<p><strong>NO_PHODEVI_CACHE</strong></p>
<p>This is a debugging option to disable the Phodevi cache from being loaded of cached software/hardware information. Instead, all software/hardware will be polled from the Phodevi library without caching.</p>
<p><strong>EXTERNAL_PHODEVI_CACHE</strong></p>
<p>This option can be used for loading an external Phodevi cache. Such as loading the native hardware/software information from within a Windows Wine client from a native system host.</p>
<p><strong>PTS_DISPLAY_MODE</strong></p>
<p>If you wish to load a non-default display mode for a single instance, specify the mode in this variable.</p>
<p><strong>TOTAL_LOOP_TIME</strong></p>
<p>When running any test(s), if you would like the test(s) to continue running as a loop until a certain time has been reached, this variable can be used. The value should be the number of minutes to run the testing process before the loop is ended. The testing will finish whenever the currently active test has finished once the time has elapsed. The minimum value allowed is 10 minutes.</p>
<p><strong>LIMIT_ELAPSED_TEST_TIME</strong></p>
<p>If you want to ensure that the time for a given Phoronix Test Suite process doesn't elapse past a certain number of minutes, specify the number of minutes for this environment variable. When the amount of time spent testing exceeds that amount, the testing will end prematurely while still saving the tests that were completed in time.</p>
<p><strong>TOTAL_LOOP_COUNT</strong></p>
<p>When running any test(s), if you would like the test(s) to continue running for a number of times, this variable can be used. The value should be the number of times to loop the testing process before ending.</p>
<p><strong>FORCE_TIMES_TO_RUN</strong></p>
<p>If you wish to override the number of times to run each test -- rather than the Phoronix Test Suite using the number of times specified in each test profile -- this variable can be used.</p>
<p><strong>FORCE_MIN_TIMES_TO_RUN</strong></p>
<p>This is similar to the FORCE_TIMES_TO_RUN option but will only be used if the test profile's run count is less than this defined value.</p>
<p><strong>NO_FILE_HASH_CHECKS</strong></p>
<p>To disable MD5/SHA256 check-sums from being checked when downloading test files, set this variable to 1. This variable used to be known as <em>NO_MD5_CHECKS</em>, which is still honored but was changed to <em>NO_FILE_HASH_CHECKS</em> to reflect other kind of file hash sum checks.</p>
<p><strong>NO_HTTPS</strong></p>
<p>Set this environment variable to 1 if you don't wish to use HTTPS download links for test profiles (or the system/network lacks HTTPS support). When enabled, HTTPS links will then be done over HTTP.</p>
<p><strong>PTS_DOWNLOAD_CACHE</strong></p>
<p>While non-standard Phoronix Test Suite download caches can be specified within the <em>user-config.xml</em> file, an additional directory to look for potential Phoronix Test Suite download files can be specified by this variable.</p>
<p><strong>GRAPH_HIGHLIGHT</strong></p>
<p>If this variable is set with a valid test identifer from a result file whether you are using the <em>refresh-graphs</em> command or any other related to the rendering of test results on a bar graph, the specified test identifier's result will be highlighted in a different color than the other rendered test results. Multiple identifiers can be specified when delimited by a comma.</p>
<p><strong>VIDEO_MEMORY</strong></p>
<p>If Phodevi fails to detect the system's video memory capacity or is incorrectly detected, the video memory capacity (in MB) can be specified by this variable.</p>
<p><strong>OVERRIDE_VIDEO_MODES</strong></p>
<p>If Phodevi fails to detect all of the system's monitor video modes or a separate set of modes would be preferred, the modes can be specified in this variable. Example: <em>OVERRIDE_VIDEO_MODES=800x600,1024x768,1280x1024 phoronix-test-suite benchmark nexuiz</em>.</p>
<p><strong>SKIP_TEST_SUPPORT_CHECKS</strong></p>
<p>If this environment variable is set, it will not honor the support checks made by individual test profiles. I.e. test profiles that would normally be considered un-supported on a given platform are attempted to install and run regardless.</p>
<p>If this environment variable is set, all tests will be permitted on the client for execution. SKIP_ALL_TEST_SUPPORT_CHECKS is more liberal than SKIP_TEST_SUPPORT_CHECKS in letting disk tests run on RAM-based file-systems, attempt to run 2D/3D tests on VESA display drivers, and other special cases.</p>
<p><strong>DEFAULT_VIDEO_MODE</strong></p>
<p>If Phodevi fails to detect the system's monitor standard / default resolution, the mode can be specified in this variable. Example: <em>DEFAULT_VIDEO_MODE=1680x1050 phoronix-test-suite benchmark nexuiz</em>.</p>
<p>To skip the Phoronix Test Suite external dependency checking/installation when installing a test, set this environment variable to <em>1</em>. If wishing to skip only certain external dependencies, set this variable's value to the name of the external dependencies (the generic dependency names used by the Phoronix Test Suite) to not install. Multiple dependencies to skip can be delimited by a comma.</p>
<p>The main configuration file is <em>user-config.xml</em> (located at <em>~/.phoronix-test-suite/user-config.xml</em> or <em>/etc/phoronix-test-suite.xml</em> when running as root/admin) contains the user configuration options for the Phoronix Test Suite. To edit any option, open the configuration file within your preferred text editor. Alternatively, you can use the <em>user-config-set</em> option with the Phoronix Test Suite to update settings. For example, to set the download cache with the Phoronix Test Suite, execute <em>phoronix-test-suite user-config-set CacheDirectory=~/cache-directory/</em>.</p>
<h1>OpenBenchmarking Options</h1>
<h3>AnonymousUsageReporting</h3>
<p>If this option is set to <em>TRUE</em>, anonymous usage information and statistics, like the tests that are run and their length of run, will be reported to <ahref="http://www.openbenchmarking.org/">OpenBenchmarking.org</a> for analytical reasons. All submitted information is kept anonymous. For more information on the anonymous usage reporting, read the Phoronix Test Suite documentation.</p>
<h3>IndexCacheTTL</h3>
<p>The time to live for OpenBenchmarking.org index caches. This is an integer representing the number of days before an index cache should be automatically refreshed from OpenBenchmarking.org. The default value is <em>3</em> while setting the value to <em>0</em> will disable automatic refreshing of caches (caches can be manually updated at anytime using the respective command).</p>
<h3>AlwaysUploadSystemLogs</h3>
<p>If this option is set to <em>TRUE</em>, the system logs (i.e. dmesg, lspci, lsusb, Xorg.0.log) will always be uploaded to OpenBenchmarking.org when uploading your test results. Otherwise the user is prompted whether to attach the system logs with their results.</p>
<h3>AllowResultUploadsToOpenBenchmarking</h3>
<p>This option defines whether to allow/support result uploads to OpenBenchmarking.org. If set to <em>FALSE</em>, the user will not be prompted to allow uploading of test results to the public site.</p>
<h1>General Options</h1>
<h3>DefaultBrowser</h3>
<p>The Phoronix Test Suite will automatically attempt to launch the system's default web browser when needed. This is done first by checking for x-www-browser and then xdg-open. If neither command is available, the Phoronix Test Suite will fallback to checking for Firefox, Epiphany, Mozilla, or the open command. If you wish to override the default browser that the Phoronix Test Suite selects, set this tag to the command name of the browser you wish to use. Leaving this tag empty will have the Phoronix Test Suite determine the default web browser.</p>
<h3>UsePhodeviCache</h3>
<p>If this option is set to <em>TRUE</em>, the Phoronix Test Suite will use the Phodevi smart cache (if available). The Phodevi smart cache will automatically cache relevant system hardware/software attributes that can be safely stored and will be used until the system's software/hardware has changed or the system rebooted. Enabling this option will speed up the detection of installed hardware and software through the Phoronix Test Suite. If this option is set to <em>FALSE</em>, Phodevi will not generate a smart cache. The default value is <em>TRUE</em>.</p>
<h3>DefaultDisplayMode</h3>
<p>This option affects how text is displayed on the command-line interface during the testing process. If this option is set to <em>DEFAULT</em>, the text interface will be the traditional Phoronix Test Suite output. If this option is set to <em>CONCISE</em>, the display mode is shorter and more concise. This is the default mode used during batch testing. The default value is <em>DEFAULT</em>.</p>
<h3>PhoromaticServers</h3>
<p>This option can be used to specify the IP address(es) and port(s) of any Phoromatic Servers you wish to connect to for obtaining cached data, connecting to Phoromatic as a client test system, etc. The Phoronix Test Suite will attempt zero-conf network discovery but if that fails you can add the <em>IP:port</em> (the Phoromatic Server's HTTP port) to this element for targeted probing by the Phoronix Test Suite. Multiple Phoromatic Servers can be added if delimited by a comma; e.g. <em>IP:port,IP:port, IP:port</em>.</p>
<h1>Modules Options</h1>
<h3>AutoLoadModules</h3>
<p>This tag contains a string of the names of the Phoronix Test Suite modules to load by default when running the Phoronix Test Suite. Multiple modules can be listed when delimited by a comma. Modules that load via setting an environment variable can also be specified here (i.e. <em>FORCE_AA=8</em> as an option in this string to load the <em>graphics_override</em> module with the 8x forced anti-aliasing). The default value is <em>toggle_screensaver, update_checker</em>.</p>
<h1>Installation Options</h1>
<h3>RemoveDownloadFiles</h3>
<p>If this option is set to <em>TRUE</em>, once a test has been installed the downloaded files will be removed. Enabling this option will conserve disk space and in nearly all circumstances will not result in any problems. However, if a test profile directly depends upon a file that was downloaded (as opposed to something extracted from a downloaded file during the installation process), enabling this option will cause issues. If this option is set to <em>FALSE</em>, the downloaded files will not be removed unless the test is uninstalled. The default value is <em>FALSE</em>.</p>
<h3>SearchMediaForCache</h3>
<p>If this option is set to <em>TRUE</em>, when installing a test it will automatically look for a Phoronix Test Suite download cache on removable media that is attached and mounted on the system. On the Linux operating system, the Phoronix Test Suite looks for devices mounted within the <em>/media/</em> or <em>/Volumes/</em> directories. If a download cache is found (a <em>download-cache/</em> folder within the drive's root directory) and a file it is looking for with matching MD5/SHA256 check-sum, the file will be automatically copied. Otherwise the standard download cache is checked. If this option is set to <em>FALSE</em>, removable media devices are not checked. The default value is <em>TRUE</em>.</p>
<h3>SymLinkFilesFromCache</h3>
<p>If this option is set to <em>TRUE</em>, during the test installation process when a file is found in a Phoronix Test Suite download cache, instead of copying the file just provide a symbolic link to the file. Enabling this option will conserve disk space and in nearly all circumstances will not result in any issues, permitting the download cache files are always mounted during testing and are not located on removable media. If this option is set to <em>FALSE</em>, the files will be copied from the download cache. The default value is <em>FALSE</em>.</p>
<h3>PromptForDownloadMirror</h3>
<p>If this option is set to <em>TRUE</em>, when downloading a test file the user will be prompted to select a mirror when multiple mirrors available. This option is targeted for those in remote regions or where their download speed may be greatly affected depending upon the server. If this option is set to <em>FALSE</em>, the Phoronix Test Suite will randomly pick a mirror. The default value is <em>FALSE</em>.</p>
<h3>EnvironmentDirectory</h3>
<p>This option sets the directory where tests will be installed to by the Phoronix Test Suite. The full path to the directory on the local file-system should be specified, though <em>~</em> is a valid character for denoting the user's home directory. The default value is <em>~/.phoronix-test-suite/installed-tests/</em>.</p>
<h3>CacheDirectory</h3>
<p>This option sets the directory for the main download cache. The download cache is checked when installing a test while attempting to locate a needed test file. If the file is found in the download cache, it will not be downloaded from there instead of an Internet mirror. When running <em>phoronix-test-suite make-download-cache</em>, files are automatically copied to this directory. The full path to the directory should be specified, though <em>~</em> is a valid character for denoting the user's home directory. Specifying an HTTP or FTP URL is valid. The default value is <em>~/.phoronix-test-suite/download-cache/</em>. Multiple cache directories can be specified as of Phoronix Test Suite 2.2 with each directory being delimited by a colon.</p>
<h1>Testing Options</h1>
<h3>SleepTimeBetweenTests</h3>
<p>This option sets the time (in seconds) to sleep between running tests. The default value is <em>6</em>.</p>
<h3>SaveSystemLogs</h3>
<p>If this option is set to <em>TRUE</em>, when saving the results from a test it will also save various system details and logs to a sub-directory of the result file's location. Among the logs that will be archived include the X.Org log, dmesg, and lspci outputs. These system details may also be saved if a test suite explicitly requests this information be saved. If this option is set to <em>FALSE</em>, the system details / logs will not be saved by default. The default value is <em>FALSE</em>. When running in batch mode or using a Phoronix Certification and Qualification Suite, the logs will be saved regardless of this user setting.</p>
<h3>SaveInstallationLogs</h3>
<p>If this option is set to <em>TRUE</em>, when saving the results from a test it will archive the complete output generated by the test during its earlier installation process. The log(s) are then saved to a sub-directory of the result file's location. If this option is set to <em>FALSE</em>, the full test logs will not be saved. The default value is <em>FALSE</em>. When running in batch mode or using a Phoronix Certification and Qualification Suite, the logs will be saved regardless of this user setting.</p>
<h3>RemoveTestInstallOnCompletion</h3>
<p>If this option is set to <em>TRUE</em>, after a test has been completed, if that test profile is no longer present later in the test queue, the test installation will be removed from the disk. If the test is to be run at a later time, it will need to be re-installed. This is useful for embedded environments or Live CD/DVDs where the available memory (RAM) for storage may be limited.</p>
<h3>SaveTestLogs</h3>
<p>If this option is set to <em>TRUE</em>, when saving the results from a test it will archive the complete output of each test's run generated by the application under test itself. The default value is <em>FALSE</em>.</p>
<h3>ResultsDirectory</h3>
<p>This option sets the directory where test results will be saved by the Phoronix Test Suite. The full path to the directory on the local file-system should be specified, though <em>~</em> is a valid character for denoting the user's home directory. The default value is <em>~/.phoronix-test-suite/test-results/</em>.</p>
<h3>AlwaysUploadResultsToOpenBenchmarking</h3>
<p>This option defines whether test results should always be uploaded to OpenBenchmarking.org upon their completion. If this value is set to <em>FALSE</em>, the user will be prompted each time whether the results should be uploaded to OpenBenchmarking.org, unless running in batch mode where the value is pre-defined. The default value is <em>FALSE</em>.</p>
<h3>AutoSortRunQueue</h3>
<p>This option defines whether the Phoronix Test Suite should sort the queue of tests to run based upon their title and category of tests. If <em>FALSE</em>, the run queue won't be sorted and they will be run in the order they were added.</p>
<h3>ShowPostRunStatistics</h3>
<p>If <em>TRUE</em>, the Phoronix Test Suite will show various test run statistics / comparison data based upon the test results / result file being tested after the testing has finished.</p>
<h1>TestResultValidation Options</h1>
<h3>DynamicRunCount</h3>
<p>If this option is set to <em>TRUE</em>, the Phoronix Test Suite will automatically increase the number of times a test is to be run if the standard deviation of the test results exceeds a predefined threshold. This option is set to <em>TRUE</em> by default and is designed to ensure the statistical signifiance of the test results. The run count will increase until the standard deviation falls below the threshold or when the total number of run counts exceeds twice the amount that is set to run by default from the given test profile. Under certain conditions the run count may also increase further.</p>
<h3>LimitDynamicToTestLength</h3>
<p>If <em>DynamicRunCount</em> is set to <em>TRUE</em>, this option sets a limit on the maximum length per trial run that a test can execute (in minutes) for the run count to be adjusted. This option is to prevent tests that take a very long amount of time to run from consuming too much time. By default this value is set to <em>20</em> minutes.</p>
<h3>StandardDeviationThreshold</h3>
<p>This option defines the overall standard deviation threshold (as a percent) for the Phoronix Test Suite to dynamically increase the run count of a test if this limit is exceeded. The default value is <em>3.50</em>.</p>
<h3>ExportResultsTo</h3>
<p>This option can specify a file (either the absolute path or relative if contained within <em>~/.phoronix-test-suite/</em> where a set of test results will be passed as the first argument as a string with each of the test results being delimited by a colon. If the executed script returns an exit status of <em>0</em> the results are considered valid, if the script returns an exit status of <em>1</em> the Phoronix Test Suite will request the test be run again.</p>
<h1>ResultViewer Options</h1>
<h3>WebPort</h3>
<p>The default HTTP web port to use for launching the web-based result viewer. If the value is set to <em>RANDOM</em>, a random open web port will be used.</p>
<h3>LimitAccessToLocalHost</h3>
<p>If this value is set to <em>TRUE</em> (default), the web-based result viewer is only accessible by the local host. If the value is <em>FALSE</em>, anyone with access to the IP/port can access the result viewer.</p>
<h3>AccessKey</h3>
<p>An access key / password can be optionally supplied as a basic precaution particularly for web-accessible result viewers that aren't limited to the local host. Set the string value here of the desired key/password that the user will be prompted to enter when trying to access the result viewer.</p>
<h3>AllowSavingResultChanges</h3>
<p>This allows saving result file changes (notes, modifying result files, etc) of result files from the web-based result viewer. Besides needing to be set to <em>TRUE</em>, the result file directory must also be write-enabled.</p>
<h3>AllowDeletingResults</h3>
<p>This option is similar to <em>AllowSavingResultChanges</em> but controls the behavior of whether results can be permanently removed. Besides needing to be set to <em>TRUE</em>, the result file directory must also be write-enabled.</p>
<h1>Batch Mode Options</h1>
<p>The batch mode options are only used when using either the <em>batch-run</em> or <em>batch-benchmark</em> options with the Phoronix Test Suite. This mode is designed to fully automate the operation of the Phoronix Test Suite except for areas where the user would like to be prompted. To configure the batch mode options, it is recommended to run <em>phoronix-test-suite batch-setup</em> instead of modifying these values by hand.</p>
<h3>SaveResults</h3>
<p>If this option is set to <em>TRUE</em>, when running in batch mode the test results will be automatically saved.</p>
<h3>OpenBrowser</h3>
<p>If this option is set to <em>TRUE</em>, when running in batch mode the web-browser will automatically open when displaying test results. If this option is set to <em>FALSE</em>, the web-browser will not be opened.</p>
<h3>UploadResults</h3>
<p>If this option is set to <em>TRUE</em>, when running in batch mode the test results will be automatically uploaded to <ahref="http://www.openbenchmarking.org/">OpenBenchmarking.org</a>.</p>
<h3>PromptForTestIdentifier</h3>
<p>If this option is set to <em>TRUE</em>, when running in batch mode the user will be prompted to enter a test identifier. If this option is set to <em>FALSE</em>, a test identifier will be automatically generated.</p>
<h3>PromptForTestDescription</h3>
<p>If this option is set to <em>TRUE</em>, when running in batch mode the user will be prompted to enter a test description. If this option is set to <em>FALSE</em>, the default test description will be used.</p>
<h3>PromptSaveName</h3>
<p>If this option is set to <em>TRUE</em>, when running in batch mode the user will be prompted to enter a test name. If this option is set to <em>FALSE</em>, a test name will be automatically generated.</p>
<h1>Networking Options</h1>
<h3>NoInternetCommunication</h3>
<p>If you wish to disable Internet communication within the Phoronix Test Suite by default, set this option to <em>TRUE</em>. The default value is <em>FALSE</em>. Setting this to <em>FALSE</em> will still allow Phoromatic to communicate with network servers such as for intranet-based download caches or a Phoromatic Server. Internet support is generally required for downloading test profiles from OpenBenchmarking.org, acquiring necessary test files from their respective sources, etc.</p>
<h3>NoNetworkCommunication</h3>
<p>If you wish to disable network support (including Internet access) entirely within the Phoronix Test Suite, set this option to <em>TRUE</em>. The default value is <em>FALSE</em>.</p>
<h3>Timeout</h3>
<p>This is the read timeout (in seconds) for network connections. The default value is <em>20</em>.</p>
<h3>ProxyAddress</h3>
<p>If you wish to use a HTTP proxy server to allow the Phoronix Test Suite to communicate with OpenBenchmarking.org and other web services, enter the IP address / server name of the proxy server in this tag. If the proxy address and port tags are left empty but the <em>http_proxy</em> environment variable is set, the Phoronix Test Suite will attempt to use that as the proxy information.</p>
<h3>ProxyPort</h3>
<p>If using a proxy server, enter the TCP port in this tag.</p>
<h1>Server Options</h1>
<h3>RemoteAccessPort</h3>
<p>If you wish to allow remote access to the built-in web-based interface to the Phoronix Test Suite when running its built-in web server, set the port number for remote access here. Port 80 is the common HTTP port but the Phoronix Test Suite web-interface can be easily set to other port numbers. If you do not wish to allow remote access, use the default value of <em>FALSE</em> or <em>-1</em>. If the value is set to <em>RANDOM</em>, a random port number will be chosen.</p>
<h3>Password</h3>
<p>If you wish to require a password when entering the web-based interface to the Phoronix Test Suite -- either locally or remotely -- specify the password here using the password's SHA256 sum as the value.</p>
<h3>WebSocketPort</h3>
<p>The default port to use when running a WebSocket server. If no port is assigned or <em>RANDOM</em> is set, a random port will be chosen.</p>
<h3>AdvertiseServiceZeroConf</h3>
<p>If this option is set to <em>TRUE</em> when starting a Phoromatic Server instance, the software will attempt to broadcast its service using zeroconf networking (Avahi on Linux assuming <em>avahi-publish</em> is present).</p>
<h3>AdvertiseServiceOpenBenchmarkRelay</h3>
<p>If this option is set to <em>TRUE</em> when starting a Phoromatic Server instance, the software will broadcast the local IP/port of the server to a private OpenBenchmarking.org service so that if any other user on the local IP block from the same global IP address is in search of a Phoromatic Server, the IP address will be relayed. This is an alternative or complementary to the zero-conf/Avahi option above to help systems running the Phoronix Test Suite client on a LAN discover a Phoromatic Server for easy setup and/or download cache support for faster test setup/installation.</p>
<h3>PhoromaticStorage</h3>
<p>The location for the Phoromatic Server to store test results of connected systems, account information, etc. The default location is <em>~/.phoronix-test-suite/phoromatic/</em>.</p>
<p><em>If this value is true, the Phoronix Test Suite stress-run manager will not attempt to distribute the selected test(s) among available hardware subsystems. For stress runs with tests covering multiple subsystems (e.g. CPU, GPU, RAM), the default behavior is try to ensure the tests to run concurrently are as balanced across the tested subsystems as possible.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
The variable is relevant for: stress-run mode.
</p>
<h2>DONT_TRY_TO_ENSURE_TESTS_ARE_UNIQUE</h2>
<p><em>When running in the stress-run mode, the default behavior will try to ensure when tests are running concurrently that as many unique tests as possible are being run. Setting this value to try will avoid that check and just attempt to truly randomize the tests being run concurrently without regard for trying to avoid duplicates.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
The variable is relevant for: stress-run mode.
</p>
<h2>FORCE_ABSOLUTE_MIN_TIMES_TO_RUN</h2>
<p><em>This option is similar to FORCE_MIN_TIMES_TO_RUN but is *absolute* in ensuring each test will run at least that number of times and not subject to change of any timed cut-offs or other factors.</em></p>
<p>The value can be of type: positive integer.
The variable is relevant for: test execution / benchmarking.
</p>
<h2>FORCE_MIN_DURATION_PER_TEST</h2>
<p><em>This option can be used to specify the minimum number of times to run a given benchmark. Rather than relying on a static times-to-run count, the test will keep looping until the time has exceeded this number (in minutes).</em></p>
<p>The value can be of type: positive integer.
The variable is relevant for: test execution / benchmarking.
</p>
<h2>FORCE_MIN_TIMES_TO_RUN</h2>
<p><em>This option is similar to FORCE_TIMES_TO_RUN but is used for specifying the minimum possible number of times to run. Unlike FORCE_TIMES_TO_RUN, the run count can still exceed this value if the deviation between results or other factors are too high.</em></p>
<p>The value can be of type: positive integer.
The variable is relevant for: test execution / benchmarking.
</p>
<h2>FORCE_MIN_TIMES_TO_RUN_CUTOFF</h2>
<p><em>Used in conjunction with the FORCE_MIN_TIMES_TO_RUN, the FORCE_MIN_TIMES_TO_RUN_CUTOFF can be used for specifyingg the amount of time (in minutes) before foregoing additional runs. This allows cutting off the testing early if this time threshold has been reached.</em></p>
<p>The value can be of type: positive integer.
The variable is relevant for: test execution / benchmarking.
</p>
<h2>FORCE_TIMES_TO_RUN</h2>
<p><em>This option can be used to override the default number of times a given test is run. Rather than being specified by the individual test profile, FORCE_TIMES_TO_RUN allows for specifying the number of times to run each benchmark.</em></p>
<p>The value can be of type: positive integer.
The variable is relevant for: test execution / benchmarking.
</p>
<h2>FORCE_TIMES_TO_RUN_MULTIPLE</h2>
<p><em>This option is similar to FORCE_TIMES_TO_RUN but the value is a multiple for how many times the test profile should be run respective to its default value. If the value is set to 2 and a given test profile by default is set to run 3 times, it would now instead be run a total of 6 times. This can be used for increasing the statistical significance of test results by using a multiple of the default rather than a static number as is the case with FORCE_TIMES_TO_RUN.</em></p>
<p>The value can be of type: positive integer.
The variable is relevant for: test execution / benchmarking.
</p>
<h2>GRAPH_HIGHLIGHT</h2>
<p><em>If automatically generating an HTML or PDF result file from the command-line and wanting to highlight desired result identifier(s), GRAPH_HIGHLIGHT can be set to a comma delimited list of result identifiers to highlight / color differently than the rest.</em></p>
<p>The value can be of type: string.
The variable is relevant for: result output generation.
</p>
<h2>IGNORE_RUNS</h2>
<p><em>This option can be used if wanting the Phoronix Test Suite to automatically toss out a specified result position when running a test profile multiple times. E.g. setting this value to 1 will toss out automatically the first run of each test profile or a value of 3 will toss out the third run of a given test. This overrides the IgnoreRuns option also available to individual test profiles. Multiple values for runs to ignore can be specified by delimiting with a comma.</em></p>
<p>The value can be of type: string.
The variable is relevant for: test execution / benchmarking.
</p>
<h2>LIMIT_ELAPSED_TEST_TIME</h2>
<p><em>This option can be used for limiting the amount of time the benchmarking process runs. The value specified is the number of minutes to allow for benchmarking. After a test finishes if that number of minutes has been exceeded, the testing process will abort early and not run any remaining tests.</em></p>
<p>The value can be of type: positive integer.
The variable is relevant for: test execution / benchmarking.
</p>
<h2>LINUX_PERF</h2>
<p><em>This option allows providing additional complementary per-test graphs looking at various Linux perf subsystem metrics such as cache usage, instructions executed, and other metrics. This requires you to have Linux's perf user-space utility already installed and performance counter access.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
The variable is relevant for: test execution / benchmarking.
The variable depends upon functionality provided by the Phoronix Test Suite module: linux_perf.
</p>
<h2>LOG_CLI_OUTPUT</h2>
<p><em>[EXPERIMENTAL] When this option is enabled, the Phoronix Test Suite standard output from the terminal will be logged to any relevant Phoronix Test Suite / Phoromatic log file. This is mainly useful for debugging purposes and if wishing to always archive the standard output as part of Phoronix Test Suite logs.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
</p>
<h2>MONITOR</h2>
<p><em>This option can be used for system sensor monitoring during test execution. The Phoronix Test Suite system_monitor module can monitor various exposed sensors and record them as part of the result file and present them as additional graphs / metrics in the result viewer. The exposed sensors varies by platform hardware/software. This functionality also requires PHP PCNTL support and thus is not available for some platforms (i.e. Windows).</em></p>
<p>The value can be of type: enumeration (all, cpu.peak-freq, cpu.temp, cpu.power, cpu.usage, gpu.freq, gpu.power, gpu.temp, hdd.temp, memory.usage, swap.usage, sys.power, sys.temp)
Multiple options can be supplied when delimited by a comma..
The variable is relevant for: test execution / benchmarking.
The variable depends upon functionality provided by the Phoronix Test Suite module: system_monitor.
</p>
<h2>NO_COLOR</h2>
<p><em>This option when enabled will force-disable the CLI/TUI text coloring. By default the Phoronix Test Suite will attempt to use CLI/TUI text colors and bolding of text for supported terminals.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
</p>
<h2>NO_COMPILER_MASK</h2>
<p><em>By default the Phoronix Test Suite attempts to determine the intended system code compilers (namely C / C++ / Fortran) and to intercept the arguments being passed to them during test installation in order to record the prominent compiler flags being used. If this behavior causes problems for your system, NO_COMPILER_MASK can be enabled for debugging purposes to avoid this compiler intercepting/symlinking behavior.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
The variable is relevant for: test installation.
</p>
<h2>NO_DOWNLOAD_CACHE</h2>
<p><em>Enable this option if the Phoronix Test Suite should not attempt to discover and use any local/remote Phoronix Test Suite download cache when installing tests and attempting to find those files locally or on a LAN resource.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
The variable is relevant for: test installation.
</p>
<h2>NO_EXTERNAL_DEPENDENCIES</h2>
<p><em>Enabling this option will have the Phoronix Test Suite skip over attempting to detect and install any system/external dependencies needed to run desired test profiles. This should just be used in case of testing/evaluation purposes and may leave some tests unable to successfully build/install.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
The variable is relevant for: test installation.
</p>
<h2>NO_FILE_HASH_CHECKS</h2>
<p><em>Enable this option if you want to skip the MD5 / SHA256 file hash checks after downloading files with known MD5/SHA256 hashsums for verification. This is namely useful for select debugging scenarios and other situations where a file may have been trivially changed / re-packaged and wishing to still install a test even though the hash no longer matches until the test profile has been updated.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
The variable is relevant for: test installation.
</p>
<h2>NO_HTTPS</h2>
<p><em>Enable this option if wanting the Phoronix Test Suite when downloading resources to attempt to only use HTTP without any HTTPS connections. Note: some downloads may fail for servers that only support HTTPS.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
</p>
<h2>NO_PHODEVI_CACHE</h2>
<p><em>This option will disable use of the built-in Phodevi (Phoronix Device Interface) cache of system software/hardware details. When enabled, the information is not cached and will be re-computed on each query. This is mainly useful for debugging purposes.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
</p>
<h2>OUTPUT_DIR</h2>
<p><em>When exporting a result file, this option can be used for specifying the writable directory path where the exported result files should be saved to. The file-name will be automatically generated.</em></p>
<p>The value can be of type: string.
The variable is relevant for: result output generation.
</p>
<h2>OUTPUT_FILE</h2>
<p><em>When exporting a result file, this option can be used for specifying the file name / file path and name of where to save the exported result file to rather than assuming the user home directory.</em></p>
<p>The value can be of type: string.
The variable is relevant for: result output generation.
</p>
<h2>PHODEVI_SANITIZE</h2>
<p><em>This option can be used for stripping out part of a string on Phodevi (Phoronix Device Interface) hardware/software properties. Namely around the reported hardware/software information in result files if wanting any values / portions of strings stripped out from that information, such as for confidential hardware strings or other privacy concerns, PHODEVI_SANITIZE can be set. The value will be removed from read Phodevi hardware/software properties if set. Multiple strings to search for can be set by delimiting with a comma. If wanting to limit the sanitization to a particular property, the property value can be specified such as [property]=[value] to sanitisze like a value of "motherboard=ABCVENDOR" or CPU=ENGINEERING-SAMPLE to delete those strings rather than simply the string to remove that will look for matches in any property."</em></p>
<p>The value can be of type: string.
</p>
<h2>PRESET_OPTIONS</h2>
<p><em>PRESET_OPTIONS can be used for seeding the values of test profile run options from the environment (though the preferred approach for pre-configuring tests in an automated manner would be by constructing your own local test suite). For setting any test option(s) from an environment variable rather than being prompted for the options when running a test. Example: "PRESET_OPTIONS='stream.run-type=Add' phoronix-test-suite benchmark stream".</em></p>
<p>The value can be of type: string.
The variable is relevant for: test execution / benchmarking.
</p>
<h2>PRESET_OPTIONS_VALUES</h2>
<p><em>This option is similar to PRESET_OPTIONS and uses the same syntax but rather than seeding the selected run option it uses the value verbatim as for what is passed to the test profile run option.</em></p>
<p>The value can be of type: string.
The variable is relevant for: test execution / benchmarking.
</p>
<h2>PTS_CONCURRENT_TEST_RUNS</h2>
<p><em>This option is used in the stress run/benchmarking mode to indicate the number of tests to run concurrently as part of the stress run process.</em></p>
<p>The value can be of type: positive integer.
The variable is relevant for: stress-run mode.
</p>
<h2>PTS_DISPLAY_MODE</h2>
<p><em>If you wish to load a non-default display mode for a single instance, specify the mode in this variable as an alternative to adjusting the user configuration file.</em></p>
<p>The value can be of type: enumeration (BASIC, BATCH, CONCISE, SHORT, DEFAULT).
</p>
<h2>PTS_DOWNLOAD_CACHE</h2>
<p><em>PTS_DOWNLOAD_CACHE can be used for setting a path to a directory on the system containing a Phoronix Test Suite download cache if located outside one of the default locations.</em></p>
<p>The value can be of type: string.
The variable is relevant for: test installation.
</p>
<h2>PTS_EXTRA_SYSTEM_LOGS_DIR</h2>
<p><em>By default the Phoronix Test Suite collects common system logs (cpuinfo, lscpu, dmesg) during the benchmarking process when saving test results. If wanting to collect additional, arbitrary system log files specific to your operating environment or for other niche system information, this option can be set as a path to a directory containing such log files. Prior to running the Phoronix Test Suite simply set PTS_EXTRA_SYSTEM_LOGS_DIR to the directory where any files should be captured from following test completion.</em></p>
<p>The value can be of type: string.
The variable is relevant for: test execution / benchmarking.
</p>
<h2>PTS_IGNORE_MODULES</h2>
<p><em>Enabling this option can be used for temporarily disabling Phoronix Test Suite modules from being loaded on a given run. This is primarily for debugging purposes.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
The variable is relevant for: modules.
</p>
<h2>PTS_MODULES</h2>
<p><em>This option can be used for specifying a comma-separated list of Phoronix Test Suite modules to load at start-time, complementary to the modules specified in the user configuration file. PTS_MODULES is namely used for development purposes or wanting to temporarily enable a given module.</em></p>
<p>The value can be of type: string.
The variable is relevant for: modules.
</p>
<h2>PTS_MODULE_SETUP</h2>
<p><em>This option can be used for seeding a module's settings when running the phoronix-test-suite module-setup command. An example would be: "PTS_MODULE_SETUP='phoromatic.remote_host=http://www.phoromatic.com/; phoromatic.remote_account=123456; phoromatic.remote_verifier=ABCD' phoronix-test-suite module-setup phoromatic".</em></p>
<p>The value can be of type: string.
The variable is relevant for: modules.
</p>
<h2>PTS_SILENT_MODE</h2>
<p><em>This option when enabled will yield slightly less verbose Phoronix Test Suite terminal output by silencing unnecessary messages / prompts.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
</p>
<h2>PTS_TEST_INSTALL_ROOT_PATH</h2>
<p><em>This option can be used for overriding where tests are installed to on the system. An absolute writable directory path can be the value if wanting to override the default (or user configuration file specified) test installation directory path.</em></p>
<p>The value can be of type: string.
The variable is relevant for: test installation, test execution / benchmarking, stress-run mode.
</p>
<h2>REMOVE_TESTS_OLDER_THAN</h2>
<p><em>This option with the cleanup module can be used for automatically un-installing/removing installed tests if they have not been run in a period of time. The value for REMOVE_TESTS_OLDER_THAN is the number of days the test can be installed without running until this module will clean-up/remove older tests.</em></p>
<p>The value can be of type: positive integer.
The variable is relevant for: test execution / benchmarking.
The variable depends upon functionality provided by the Phoronix Test Suite module: cleanup.
</p>
<h2>REMOVE_TESTS_ON_COMPLETION</h2>
<p><em>When this option is set to true, installed test profiles will be automatically removed/uninstalled when they are no longer in the current test execution queue. This is used for saving disk space / resources by automatically removing installed tests after they have been executed. For more persistent behavior is the RemoveTestInstallOnCompletion option within the Phoronix Test Suite user configuration file.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
The variable is relevant for: test execution / benchmarking.
</p>
<h2>SKIP_EXTERNAL_DEPENDENCIES</h2>
<p><em>Rather than NO_EXTERNAL_DEPENDENCIES to outright disable the Phoronix Test Suite external dependency handling, SKIP_EXTERNAL_DEPENDENCIES can be used with a value of a comma separated list of specific external dependencies to avoid. This is mostly useful for any external dependencies that may be out of date or fail to install on your platform.</em></p>
<p>The value can be of type: string.
The variable is relevant for: test installation.
</p>
<h2>SKIP_TESTING_SUBSYSTEMS</h2>
<p><em>This option is similar to SKIP_TESTS but allows for specifying hardware subsystems (e.g. Graphics) to skip from installing/running any test profiles beloning to that subsystem type. Multiple subsystems can be specified when delimited by a comma.</em></p>
<p>The value can be of type: string.
The variable is relevant for: test installation, test execution / benchmarking.
</p>
<h2>SKIP_TESTS</h2>
<p><em>SKIP_TESTS will skip the test installation and execution of any test identifiers specified by this option. Multiple test identifiers can be specified, delimited by a comma.</em></p>
<p>The value can be of type: string.
The variable is relevant for: test installation, test execution / benchmarking.
</p>
<h2>SKIP_TESTS_HAVING_ARGS</h2>
<p><em>SKIP_TESTS_HAVING_ARGS will skip the test installation and execution of any tests where the specified test arguments match the given string. E.g. if wanting to skip all Vulkan tests in a result file but run just the OpenGL tests or similar where wanting to limit the tests being run from within a result file. Multiple values can be specified when delimited by a comma.</em></p>
<p>The value can be of type: string.
The variable is relevant for: test installation, test execution / benchmarking.
</p>
<h2>SKIP_TEST_SUPPORT_CHECKS</h2>
<p><em>This debugging/validation option will have the Phoronix Test Suite skip any test support checks for a test profile (architecture compatibility, OS compatibility, etc) and just assume all tests are supported.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
The variable is relevant for: test installation, test execution / benchmarking.
</p>
<h2>SORT_BY</h2>
<p><em>This option can be used for specifying the sort order for commands like auto-sort-result-file whether to sort by identifier name, test length, etc.</em></p>
<p><strong>Default Value:</strong> identifier</p>
<p>The value can be of type: enumeration (date, date-asc, date-desc, identifier).
</p>
<h2>TERMINAL_WIDTH</h2>
<p><em>This option is used for overriding the detected default of the terminal width for the CLI/TUI interface.</em></p>
<p>The value can be of type: positive integer.
</p>
<h2>TEST_EXECUTION_SORT</h2>
<p><em>This option can be used for controlling the sort order that the test profiles / benchmarks are run in, whether sorted or not and in what manner.</em></p>
<p>The value can be of type: enumeration (none, random, dependencies, test-estimated-time, test-estimated-time-desc, test, default).
The variable is relevant for: test execution / benchmarking.
</p>
<h2>TEST_EXEC_PREPEND</h2>
<p><em>This option can be used if wanting to specify a binary (e.g. sudo, cgroup or other resource limiting binaries or performance counters) to be called as the binary pre-pended prior to running a test profile binary/script. This option is namely used for specialized use-cases.</em></p>
<p>The value can be of type: string.
The variable is relevant for: test execution / benchmarking.
</p>
<h2>TEST_RESULTS_DESCRIPTION</h2>
<p><em>This option can be used for specifying the result file description for saving that string and not be prompted for providing a description during the test execution process.</em></p>
<p>The value can be of type: string.
The variable is relevant for: test execution / benchmarking, stress-run mode.
</p>
<h2>TEST_RESULTS_IDENTIFIER</h2>
<p><em>This option can be used for specifying the result identifier for distinguishing this run within the saved result file.</em></p>
<p>The value can be of type: string.
The variable is relevant for: test execution / benchmarking, stress-run mode.
</p>
<h2>TEST_RESULTS_NAME</h2>
<p><em>This option can be used for specifying the result file name for saving the test/benchmark results automatically to the given name.</em></p>
<p>The value can be of type: string.
The variable is relevant for: test execution / benchmarking, stress-run mode.
</p>
<h2>TEST_TIMEOUT_AFTER</h2>
<p><em>When this variable is set, the value will can be set to "auto" or a positive integer. The value indicates the number of minutes until a test run should be aborted, such as for a safeguard against hung/deadlocked processes or other issues. Setting this to a high number as a backup would be recommended for fending off possible hangs / stalls in the testing process if the test does not quit. If the value is "auto", it will quit if the time of a test run exceeds 3x the average time it normally takes the particular test to complete its run. In the future, auto might be enabled by default in a future PTS release. This functionality requires system PHP PCNTL support (i.e. no Windows support).</em></p>
<p>The value can be of type: positive integer.
The variable is relevant for: test execution / benchmarking.
The variable depends upon functionality provided by the Phoronix Test Suite module: test_timeout.
</p>
<h2>TOTAL_LOOP_COUNT</h2>
<p><em>This option is used to specify a multiple if wishing to run each test multiple times rather than just once per saved result file.</em></p>
<p>The value can be of type: positive integer.
The variable is relevant for: test execution / benchmarking.
</p>
<h2>TOTAL_LOOP_TIME</h2>
<p><em>This option is used to specify the amount of time (in minutes) to loop the testing during the Phoronix Test Suite stress run or normal benchmarking process.</em></p>
<p>The value can be of type: positive integer.
The variable is relevant for: stress-run mode, test execution / benchmarking.
</p>
<h2>TURBOSTAT_LOG</h2>
<p><em>This option allows attaching "turbostat" outputs to the end of archived benchmark/test log files if interested in the Linux TurboStat information. This assumes you have turbostat available on the Linux system(s) and have permissions (root) for running turbostat.</em></p>
<p>The value can be of type: boolean (TRUE / FALSE).
The variable is relevant for: test execution / benchmarking.
The variable depends upon functionality provided by the Phoronix Test Suite module: turbostat.
</p>
<h2>WATCHDOG_MAXIMUM_WAIT</h2>
<p><em>Used in conjunction with the WATCHDOG_SENSOR option, this is the maximum amount of time to potentially wait when the watchdog is triggered for surpassing the threshold value. The value is the maximum number of minutes to wait being above the threshold.</em></p>
<p>The value can be of type: positive integer.
The variable is relevant for: test execution / benchmarking.
The variable depends upon functionality provided by the Phoronix Test Suite module: watchdog.
</p>
<h2>WATCHDOG_SENSOR</h2>
<p><em>This option will enable the watchdog module that checks system sensor values pre/interim/post benchmark execution. If the selected sensor(s) exceed the static threshold level, testing will be paused before continuing to any additional tests so that the system can sleep. Ideally this will allow the system to return to a more suitable state before resuming testing after the sensor value is back below the threshold or after a pre-defined maximum time limit to spend sleeping. This module is mostly focused on pausing testing should system core temperatures become too elevated to allow time for heat dissipation.</em></p>
<p>The value can be of type: enumeration (cpu.temp, gpu.temp, hdd.temp, sys.temp)
Multiple options can be supplied when delimited by a comma..
The variable is relevant for: test execution / benchmarking.
The variable depends upon functionality provided by the Phoronix Test Suite module: watchdog.
</p>
<h2>WATCHDOG_SENSOR_THRESHOLD</h2>
<p><em>Used in conjunction with the WATCHDOG_SENSOR option, the WATCHDOG_SENSOR_THRESHOLD specifies the threshold for the sensor reading when the testing should be paused (e.g. the Celsius cut-off temperature).</em></p>
<p>The value can be of type: positive integer.
The variable is relevant for: test execution / benchmarking.
The variable depends upon functionality provided by the Phoronix Test Suite module: watchdog.
<p><strong><em>Q:</em> May I use the Phoronix Test Suite when running benchmarks for my own publication or blog? Are there any publishing restrictions?</strong></p>
<p><strong>A:</strong> Anyone is more than welcome to use the Phoronix Test Suite for their own publication or purpose. While the Phoronix Test Suite came out of our internal test tools for carrying out Linux hardware reviews at <ahref="http://www.phoronix.com/">Phoronix.com</a>, we invite other hardware review web-sites, technology journals, and independent publications to use our software too. While not required, we would just kindly ask that you mention in your review/article that the <em>Phoronix Test Suite</em> was used for carrying out your testing, and ideally to link to <ahref="http://www.phoronix-test-suite.com/">www.phoronix-test-suite.com</a> so that your readers will know where to obtain the software if they are interested in running the tests. You are also more than welcome to upload your results to <ahref="http://www.openbenchmarking.org/">OpenBenchmarking.org</a> so that others may compare their results against yours in an easy manner.</p>
<p><strong>A:</strong> Anyone is more than welcome to use the Phoronix Test Suite for their own publication or purpose. While the Phoronix Test Suite came out of our internal test tools for carrying out Linux hardware reviews at <ahref="https://www.phoronix.com/">Phoronix.com</a>, we invite other hardware review web-sites, technology journals, and independent publications to use our software too. While not required, we would just kindly ask that you mention in your review/article that the <em>Phoronix Test Suite</em> was used for carrying out your testing, and ideally to link to <ahref="http://www.phoronix-test-suite.com/">www.phoronix-test-suite.com</a> so that your readers will know where to obtain the software if they are interested in running the tests. You are also more than welcome to upload your results to <ahref="http://www.openbenchmarking.org/">OpenBenchmarking.org</a> so that others may compare their results against yours in an easy manner.</p>
<p>We also try to make the Phoronix Test Suite easy-to-use by independent publications. For example, if you would like to watermark your web-site's URL into the graphs containing your test results, that can be easily modified in <em>~/.phoronix-test-suite/graph-config.json</em>. The colors and other graph settings are also stored in this XML file. If you are a publication and run into any issues with the Phoronix Test Suite or have a feature request, please let us know.</p>
<p>A partial list of other publications using the Phoronix Test Suite can be found in <ahref="http://www.phoronix.com/forums/showthread.php?t=12925">this forum thread</a>.</p>
<p><strong><em>Q:</em> Why does the Phoronix Test Suite not use my distribution's package management system for acquiring all needed packages?</strong></p>
<p><strong>A:</strong> The tests themselves are generally downloaded from source and built locally on the machine, rather than fetching any distribution-specific packages. This is done to ensure more comparable results across operating systems / releases, etc. The distribution packager could be applying a number of unknown patches to the software, building the software with unique build options, or making other changes to the software that could skew the results.</p>
<p><strong><em>Q:</em> Besides being a developer, documentation writer, or having any other unique technical abilities, how else can I contribute to the Phoronix Test Suite?</strong></p>
<p><strong>A:</strong> Independent code contributions are very welcome as well as creating your own test profiles and suites. We also appreciate any feedback, comments, or other ideas either by emailing us, posting on the forums, or sending a message to the mailing list. You can also see this (outdated) <ahref="http://www.phoronix.com/forums/showthread.php?t=16180">forum thread</a>.</p>
<p><strong>A:</strong> Independent code contributions are very welcome as well as creating your own test profiles and suites. We also appreciate any feedback, comments, or other ideas either by emailing us, posting on GitHub, or sending a message to the mailing list.</p>
<p><strong><em>Q:</em> Do you offer technical support for the Phoronix Test Suite</strong></p>
<p><strong>A:</strong> Paid, professional support is available and is done via <ahref="http://commercial.phoronix-test-suite.com/">our commercial services</a>. We also offer Phoromatic licenses for use within a corporate intranet and other custom services. Free, community support is offered via our <ahref="http://phoronix-test-suite.com/mailman/listinfo/trondheim-pts_phoronix-test-suite.com">mailing list</a>, IRC channel (<em>#phoronix</em> on <em>FreeNode.net</em>, and the <ahref="http://www.phoronix.com/forums/">Phoronix Forums</a>.</p>
<p><strong>A:</strong> Paid, professional support is available and is done via <ahref="http://commercial.phoronix-test-suite.com/">our commercial services</a>. Free, community support is offered via <ahref="https://github.com/phoronix-test-suite">GitHub</a>.</p>
<p><strong><em>Q:</em> May I put the Phoronix Test Suite logo on my company's web-site or on my product packaging?</strong></p>
<p><strong>A:</strong><ahref="http://www.phoronix-test-suite.com/?k=contact">Contact us</a> for licensing information and details regarding the Phoronix Certification & Qualification Suite.</p>
<p><strong><em>Q:</em> How often is the Phoronix Test Suite updated?</strong></p>
<p><strong>A:</strong> We provide major updates on a quarterly basis with an occasional point release to fix outstanding bugs or address other issues. The latest work going into the Phoronix Test Suite is accessible via our Git repository at <ahref="https://github.com/phoronix-test-suite/phoronix-test-suite/">GitHub.com/phoronix-test-suite</a>.</p>
<p><strong>A:</strong> We provide major updates on a quarterly basis with an occasional point release to fix outstanding bugs or address other issues. The latest work going into the Phoronix Test Suite is accessible via our Git repository at <ahref="https://github.com/phoronix-test-suite/phoronix-test-suite/">github.com/phoronix-test-suite</a>.</p>
<h1>Tips & Tricks</h1>
<h2>General</h2>
<p>- The desktop's screensaver will automatically be shutdown when a test is running and will be restored to its previous state upon the test's completion. This is supported for GNOME, KDE, and other XDG-supportive desktop environments.</p>
<p>A majority of the test profiles provided by OpenBenchmarking.org to the Phoronix Test Suite are source-based tests. Relying upon the upstream source-code for each program under test allows for the tests to be easily brought to new platforms and architectures, avoids any out-of-tree / non-default packaging differences by different distributions and operating systems, and to allow the Phoronix Test Suite user to easily test new compilers and/or compiler options. For the source-based tests, the Phoronix Test Suite relies upon a compiler (e.g. GCC, LLVM/Clang, Sun Studio, Open64, et al) being present on the system under test. The Phoronix Test Suite does respect <em>CC/CXX</em> environment variables and test profiles are expected to honor <em>CFLAGS/CXXFLAGS</em> and other compiler settings.</p>
<p>As of Phoronix Test Suite 3.8, a compiler masking method is utilized for logging compiler options and other settings with each test profile installation. Prior to installing an open-source test, the Phoronix Test Suite determines the intended compiler to be used based upon the pre-set environment variables or the pre-set compiler(s) within the <em>PATH</em> environment variable. The Phoronix Test Suite then masks the compiler to ensure that any options/flags submitted to the compiler are first passed through pts-core so that they can be logged for later use, then is linked to the original, intended compiler. Additionally, other compiler binary names of the same type are blacklisted to prevent their un-intended use (i.e. if a test profile has hard-coded <em>gcc</em> in its build script, but <em>clang</em> is set as the compiler via <em>CC</em>, a sym-link will automatically be created from <em>gcc</em> to the masked <em>clang</em> for the duration of its test installation).</p>
<p>The Phoronix Test Suite utilizes a compiler masking method for logging compiler options and other settings with each test profile installation. Prior to installing an open-source test, the Phoronix Test Suite determines the intended compiler to be used based upon the pre-set environment variables or the pre-set compiler(s) within the <em>PATH</em> environment variable. The Phoronix Test Suite then masks the compiler to ensure that any options/flags submitted to the compiler are first passed through pts-core so that they can be logged for later use, then is linked to the original, intended compiler. Additionally, other compiler binary names of the same type are blacklisted to prevent their un-intended use (i.e. if a test profile has hard-coded <em>gcc</em> in its build script, but <em>clang</em> is set as the compiler via <em>CC</em>, a sym-link will automatically be created from <em>gcc</em> to the masked <em>clang</em> for the duration of its test installation).</p>
<p>The logged compiler data is then used by the Phoronix Test Suite following the test execution process for automated result analysis. If there is a detected change in compiler settings, the differences are automatically reported to the test result graphs. Additionally, key compiler information (e.g. the compiler optimization level and key libraries that were linked at compile-time) is reported as a footnote on result graphs. The Phoronix Test Suite handles all of this in a fully automated manner; test profiles require no changes to take advantage of these compiler-reporting capabilities.</p>
<p>Separately, the Phoronix Test Suite attempts to automatically log the system compiler's build configuration (i.e. GCC's <em>gcc -v</em>"Configured with") output. If the Phoronix Test Suite detects there is a compiler build configuration change between test runs in a result file, it will report each compiler's build configuration to the system information table within the results viewer. Reported to the table is a reduced view of the build configuration options, with less relevant items being stripped away from this view to reduce verbosity. Upon clicking the text, the raw compiler information output can be viewed in full.</p>
<h1>Disk / File-System Testing</h1>
<p>By default tests are installed to <em>~/.phoronix-test-suite/installed-tests/</em>. However, the location can be updated from <em>~/.phoronix-test-suite/user-config.xml</em> or dynamically via the <em>PTS_TEST_INSTALL_ROOT_PATH</em> environment variable.</p>
<p>When any disk tests are executed, the Phoronix Test Suite will attempt to log the mount options and scheduler of the disk/partition being used for testing. This information is subsequently displayed within the system information table. If the scheduler / mount options are maintained the same throughout all test runs, only a single line is displayed otherwise the options for each test run will be automatically displayed. The file-system in use is always captured and shown in the system information table.</p>
<p>The Phoronix Test Suite now features its own built-in Phoromatic server and client implementations. See the <em>phoromatic.pdf</em> / <em>phoromatic.html</em> documentation for more information on this advanced capability.</p>
<h1>Phoromatic Server</h1>
<h2>Introduction</h2>
<p>Phoromatic is a remote management system for the Phoronix Test Suite. Phoromatic allows the automatic (hence the name <em>Phoro-matic</em>) scheduling of tests, remote installation of new tests, and the management of multiple test systems all through an intuitive, easy-to-use web interface. Tests can be scheduled to automatically run on a routine basis across multiple test systems. The test results are then available from this central, secure location.</p>
<h2>Features</h2>
<p>Built atop the Phoronix Test Suite, Phoromatic offers many features for both enterprise and community/personal users:</p>
<h3>Automated Scheduling</h3>
<p>Whether it is every evening at 6:00PM, once every Thursday at 10:00AM or somewhere in between, Phoromatic can schedule tests to be run at user-defined intervals. The testing schedules can be updated through Phoromatic web interface. After the test(s) have run, the results will be immediately uploaded to Phoromatic.</p>
<h3>Extensible</h3>
<p>Any test profile or test suite that is compliant with the Phoronix Test Suite specification will work with Phoromatic. Phoromatic is able to leverage the hundreds of test profiles and test suites currently in the Phoronix Test Suite via OpenBenchmarking.org, along with any custom or proprietary test profiles you or your company utilize. Additionally, the Phoromatic interface allows the user to construct their own test suite(s).</p>
<h3>Remote Testing</h3>
<p>Once the test system is setup, all testing and management of that system can be done remotely. There is no need to execute Phoronix Test Suite commands locally using the GUI or command line version, but instead nearly all of the same features are accessible from the Phoromatic interface.</p>
<h3>Multi-System Support</h3>
<p>A single Phoromatic account is able to manage multiple test systems running the Phoronix Test Suite. Phoromatic supports grouping together test systems, tagging, and other features to support effectively managing many test systems. From the Phoromatic interface, installed system hardware and software from a given system can also be viewed.</p>
<h3>Turn-Key Deployment</h3>
<p>No additional software needs to be installed to support Phoromatic; all that's needed is Phoronix Test Suite 5.4 or later for full compatibility. New test systems can easily be synced with a given Phoromatic account by running a single command from the Phoronix Test Suite client.</p>
<h3>Result Management</h3>
<p>Test results are automatically uploaded to the Phoromatic account and remain private unless you opt to upload them to OpenBenchmarking.org. From the Phoromatic interface, results from multiple test systems can easily be compared and multiple results from the same systems can be used to track performance over time. There are also options to look at the statistical significance of the results and other features to efficiently and effectively analyze the system's performance.</p>
<h3>Decentralized / Offline Testing</h3>
<p>Once the Phoronix Test Suite running on the Phoromatic Server has been able to cache all of the OpenBenchmarking.org test files and the needed files for each test, Phoromatic with any Phoronix Test Suite clients on your LAN can run fully decentralized without the need for a constant stream of OpenBenchmarking.org communication or Internet connection for that matter. (The only exception would be if your local systems don't have all their needed external dependencies and your system's package manager would need to install components like a compiler or necessary system libraries.</p>
<h3>Fully Open-Source</h3>
<p>Phoromatic is now fully open-source within the Phoronix Test Suite code-base for fostering greater development and new capabilities. Patches are welcome and Phoronix Media is available to provide commercial support and custom engineering services around Phoromatic and the Phoronix Test Suite.</p>
<h2>Phoromatic Server Setup</h2>
<p>Phoromatic is built into the Phoronix Test Suite code-base and should be found in all packaged versions of the <strong>phoronix-test-suite</strong>. Starting the Phoromatic Server entails running phoronix-test-suite start-phoromatic-server after configuring the server information within <em>~/.phoronix-test-suite/user-config.xml</em>. The Phoromatic Server can with or without root permissions depending upon your firewall and the port numbers you wish to use for the server.</p>
<p>On the "client side", any up-to-date version of the Phoronix Test Suite can automatically communicate with the Phoromatic Server. If Avahi support is available (commonly in Linux distribution repositories as <u>avahi-tools</u>), there should be zero-conf discovery if the Phoromatic Server and client systems are on the same LAN. If a Phoronix Test Suite client discovers a Phoromatic Server, it will attempt to use it automatically as a local download cache. In the event of no Internet connection, it will also attempt to obtain the needed OpenBenchmarking.org test/suite meta-data from the Phoromatic Server based upon its archived meta-data. This allows the Phoronix Test Suite / Phoromatic deployment on the LAN to be self-sustaining without an Internet connection as long as the systems have all installed test dependencies.</p>
<p>Further configuration of the setup parameters for the Phoromatic Server and Phoronix Test Suite clients can be tuned via the <em>~/.phoronix-test-suite/user-config.xml</em> file. All control and configuration of the Phoromatic Server is done via the web-based interface when the Phoromatic Server is active.</p>
<p>The Phoromatic Server utilizes PHP's built-in web-server capabilities and there's also a Phoronix Test Suite built-in WebSocket server that's also initiated for back-end processing. At this time there are no ports set by default for these services but must be defined within the user configuration file. With the Avahi zero-conf network discovery and other automated detection in place, there's little restrictions over the port selection.</p>
<p>Systemd service files are shipped with the Phoronix Test Suite for those that wish to have the services automatically run as daemons. The only new requirements over the basic Phoronix Test Suite system requirements is having PHP-SQLite support installed and the newer version of PHP is recommended for offering the best support.</p>
<h2>Example Deployments</h2>
<h3>Use Case A: Unrestricted Internet Access, Local Result Storage</h3>
<p>Systems on your network with unrestricted Internet access is the easiest and simplest deployment for the Phoronix Test Suite and Phoromatic. After installing the Phoronix Test Suite on the system you wish to designate the Phoromatic Server and have configured the <em>user-config.xml</em> file, simply run:</p>
<p>Assuming you have no firewall or permission issues, the built-in web server and WebSocket server should proceed to initiate along with outputting the IP/port information for these services. Unless otherwise disabled from the user configuration file and if avahi-tools is present, the Phoromatic Server will be advertised with Avahi for zero-configuration networking.</p>
<p>From the Phoromatic web interface you are able to create an account and from there proceed with the creating of test schedules, updating settings, and connecting systems. From the "client systems" you wish to use as the benchmarking nodes, it's simply a matter of running <strong>phoronix-test-suite phoromatic.connect</strong> with zero-conf networking or otherwise follow the information from the Phoromatic web interface for manual setup with the IP/port information.</p>
<h3>Use Case B: No Internet Available To Client Systems</h3>
<p>It's possible to run the Phoronix Test Suite and Phoromatic Server without a persistent Internet connection as long as you are able to first download the necessary files to the Phoromatic Server. After installing the Phoronix Test Suite on the system you wish to designate the Phoromatic Server and have configured the <em>user-config.xml</em> file, a few commands from the system while having an Internet connection will be able to cache the needed data:</p>
<p>This command will simply download all of the needed test files for the tests/suites passed to the sub-command. Alternatively you could also pass pts/all to cache all tests. It's important though to just cache the tests/suites you'll be using on your network. This will generate the test file download cache by default to <em>~/.phoronix-test-suite/download-cache/</em> or <em>/usr/share/phoronix-test-suite/download-cache/</em> depending upon your write permissions. You can always run this command later with more test files. Alternatively, if you already have a number of tests installed on the system, simply running "phoronix-test-suite make-download-cache" will generate the cache based upon the currently installed tests.</p>
<p>This command will cache as much of the OpenBenchmarking.org meta-data as possible for test profiles and test suites. After the above commands, the Phoromatic Server should no longer need a persistent Internet connection.</p>
<p>Proceed to start the Phoromatic Server and operate as normal.</p>
<p>For the test clients without an Internet connection, as long as they're able to reach the Phoromatic Server, the Phoromatic Server should be able to automatically serve all of the needed test files download cache and OpenBenchmarking.org meta-data to the systems locally.</p>
<h3>Use Case C: Phoromatic Across The Internet</h3>
<p>If wishing to use the same Phoromatic Server across multiple geographic locations, it's easily possible -- you just lose out on the zero-conf networking ability. To let the Phoronix Test Suite client systems know about the remote Phoromatic Server, simply add the Phoromatic Server information to the client's <em>PhoromaticServers</em> element within the <em>user-config.xml</em>. Of course, make sure the Phoromatic Server has a globally resolvable IP address and its Phoromatic HTTP/WebSocket ports are open. Once informing the client of the Phoromatic Server, the use cases as above apply in the same manner.</p>
<h2>Client Setup</h2>
<p>From Phoronix Test Suite client systems running on the LAN, the following command will report all available detected Phoromatic Servers along with important server and debugging information:</p>
<p>Phoromatic Servers are detected by the Phoronix Test Suite through Avahi or if manually configuring the Phoronix Test Suite clients to point to Phoromatic Servers. For networks without Avahi/auto-discovery support or for test systems that may be connecting from another network, the IP address and HTTP port number can be added to the local system's <em>~/.phoronix-test-suite/user-config.xml</em> with the <em>PhoromaticServers</em> element. Adding the <em>IP:port</em> (the Phoromatic Server's HTTP port) to the PhoromaticServers <em>user-config.xml</em> element for will perform targeted probing by the Phoronix Test Suite without any dependence on Avahi. Multiple Phoromatic Servers can be added if each IP:port is delimited by a comma.</p>
<p>To connect a Phoronix Test Suite system for benchmarking to an account, log into your Phoromatic account from the web-interface and on the main/system pages will be instructions along with a specially formed string to run, e.g. <em>phoronix-test-suite phoromatic.connect 192.168.1.211:5447/I0SSJY</em>. When running that command once on the system(s) to be synced to that account, as the administrator you'll be able to validate/approve the systems from the Phoromatic web interface. After that, whenever the system(s) are to be running benchmarks, simply have the <strong>phoronix-test-suite phoromatic.connect</strong> command running on the system (after the initial account has been synced, simply running <strong>phoronix-test-suite phoromatic.connect</strong> is enough for the system to find the server and its account).</p>
<h2>Root Administrator</h2>
<p>The root administrator account is able to manage the server-level settings, e.g. Phoromatic storage location and other global settings related to the Phoronix Test Suite / Phoromatic Server, from the web user-interface.</p>
<p>To enable the root administrator log-in, first from the server's command-line interface run <strong>phoronix-test-suite phoromatic.set-root-admin-password</strong> to set the password. Following that, you can log into the root administrator account via the web interface via the <em>rootadmin</em> user-name and the set password.</p>
<h2>Other Advice</h2>
<h3>Disable Internet Precaution</h3>
<p>If you have an Internet connection but want to ensure your Phoronix Test Suite client doesn't attempt to use it for any matter, via the <em>~/.phoronix-test-suite/user-config.xml</em> you can set <em>NoInternetCommunication</em> to <em>TRUE</em>. There's also a NoNetworkCommunication tag, but setting that to TRUE will disable any form of network communication -- including communication with the Phoromatic Server.</p>
<h3>Ports / Services</h3>
<p>The Phoromatic Server process currently relies upon a PHP built-in web server process and a PTS-hosted WebSocket server. The web server process handles the web UI and much of the responsibilities of the Phoromatic Server. Over time the PTS WebSocket server will be increasingly utilized for bi-directional, real-time communication between the server and clients -- including for features like viewing real-time hardware sensors of client systems from the server UI.</p>
<h3>Systemd</h3>
<p>Packaged with the Phoronix Test Suite are basic <em>phoromatic-client</em> and <em>phoromatic-server</em> configurations for systemd. The <em>phoromatic-server</em> configuration will launch the Phoronix Test Suite's Phoromatic Server and the <em>phoromatic-client</em> service will attempt to connect to a <u>pre-configured</u> Phoromatic Server. The systemd service files will automatically be installed via the Phoronix Test Suite <em>install-sh</em> process.</p>
<h3>Cache Verification</h3>
<p>To confirm the files accessible to Phoronix Test Suite client systems, from the Phoromatic Server web user-interface go to the <em>settings</em> page followed by the <em>cache settings</em> link to view information about the download and OpenBenchmarking.org caches. From the client systems, running <strong>phoronix-test-suite phoromatic.explore</strong> will also supply cache statistics.</p>
<h3>Log Files</h3>
<p>The Phoromatic Server will produce a log file of events / debugging information to <em>~/.phoronix-test-suite/phoromatic.log</em> or <em>/var/log/phoromatic.log</em> depending upon the service's permissions. When running the Phoronix Test Suite Phoromatic client, the log will be written to one of the respective locations in <em>phoronix-test-suite.log</em>.</p>
<h3>Multi-User Accounts</h3>
<p>For each time a user account is made from the Phoromatic web UI's log-in page, all of the test schedules, systems, and other account information is separate to allow for a completely isolated multi-user system. If a main administrator (the one creating the account) wishes to have multiple users sharing the same account data, that user can create additional accounts from the <em>Users</em> tab of their account. The main administrator can make an additional administrator account or a "viewer" account that can consume the account's data but not create/modify the schedules, systems, or other account details.</p>
<h3>
<h3>File Locations</h3>
<p>When running the Phoronix Test Suite Phoromatic Server as root, rather than using the <em>~/.phoronix-test-suite/</em> directory, the standard Linux file-system hierarchy standard is honored. The main storage path is <em>/var/lib/phoronix-test-suite/</em>, the user configuration file is <em>/etc/phoronix-test-suite.xml</em>, and <em>/var/cache/phoronix-test-suite/</em> for cache files.</p>
<h3>Uploading Other Test Results</h3>
<p>Unscheduled test results and other results found on connected systems to a Phoromatic account can upload the data to the Phoromatic Server using the <em>phoronix-test-suite phoromatic.upload-result <result file identifier ></em> sub-command.</p>
<h3>User Context File Logging</h3>
<p>For those utilizing custom set context script files as part of the Phoromatic test schedule, any important notes / log information can be written to the file specified by the <em>PHOROMATIC_LOG_FILE</em> environment variable set while running the user context scripts. The contents of that file is then sent to the Phoromatic Server otherwise the standard output of the script's execution is submitted to the Phoromatic Server for logging. These logs can then be viewed by the Phoromatic Server along with the test results. Other environment variables accessible when running a user context script include <em>PHOROMATIC_TRIGGER</em>, <em>PHOROMATIC_SCHEDULE_ID</em>, and <em>PHOROMATIC_SCHEDULE_PROCESS</em>.</p>
<h1>Offline Testing/Benchmarking For Single System Environments</h1>
<p>The Phoronix Test Suite ships with a cache (up to date as of release time) of the available OpenBenchmarking.org test profile / test suite metadata but external download files are necessary for the test profiles to function. Due to hundreds of different test profiles and consisting of software under test that is of varying software licenses, there is no centralized archive of all possible test files.</p>
<p>To obtain a cache of the files needed for the desired test(s), from a machine with a working Internet connection, run the <strong>phoronix-test-suite make-download-cache</strong> sub-command and pass the name of the tests/suites you wish to download. The make-download-cache will download the files for the desired test profiles so you can then transfer them for use on individual computer(s) lacking an Internet connection.</p>
<p>By default the files will be cached to <em>~/.phoronix-test-suite/download-cache</em> and when transferred to an offline system in the same location it should then be automatically utilized by the Phoronix Test Suite when going to install the test(s). The individual download-cache directory can be copied to the offline system or otherwise more broadly the <em>~/.phoronix-test-suite</em> directory can also be copied to the offline system(s). If running as root, the default download cache directory is <strong>/var/cache/phoronix-test-suite/download-cache/</strong>.</p>
<p>When the Phoronix Test Suite download cache is transferred to the offline system, the Phoronix Test Suite should begin automatically making use of those files when detected in the appropriate directory and having a matching hash-sum for the given file.</p>
<p>If not able to run the Phoronix Test Suite on a machine with a working Internet connection, manually downloading the files referenced within the test profiles XML metadata and placing them within the respective download-cache directory on a system is another manual alternative.</p>
<p>Note that the make-download-cache will only cache the files downloaded by the Phoronix Test Suite. Depending upon the test(s) and the state of your operating system, you may also need packages obtained from your package manager / distribution (e.g. compiler, dependency libraries, etc) that are not cached by the Phoronix Test Suite due to the diverse nature of different supported operating systems.</p>
<Title>Confidential Testing / Avoiding Accidental Result Uploads</Title>
</head>
<body>
<h1>Offline Enhancement Via Local Cache</h1>
<p>Since Phoronix Test Suite 9.0, there have been improvements to improve the out-of-the-box experience if running the Phoronix Test Suite in a strictly offline environment / behind-the-firewall without access to OpenBenchmarking.org for being able to obtain test profiles / test suites. From Phoronix Test Suite 3.0 when OpenBenchmarking.org was introduced until Phoronix Test Suite 9.0, Internet connectivity was initially required for obtaining the test profiles/suites as the cloud/repository. OpenBenchmarking.org allows for tests to be updated independently of the Phoronix Test Suite releases as well as allowing new tests to be introduced on-demand. Aside from when new tests require explicit new PTS features, this allows tests/suites to be seamlessly used by older versions of the Phoronix Test Suite without any upgrade process required, assuming Internet connectivity is available.</p>
<p>A static snapshot of the official tests/suites is included as part of the Phoronix Test Suite package. The intention with this is to provide a static snapshot with all tests/suites as of release time, similar to the behavior with pre-3.0 releases. The benefit to including this static snapshot is helping those that are running strictly offline/isolated to be able to have at least recent tests/suites available without first needing to query OpenBenchmarking.org for this data. But Internet support is certainly desired in order to be able to obtain updated and new test profiles.</p>
<p>This static snapshot is provided in the <em>ob-cache/</em> Phoronix Test Suite folder. If this cache is not needed or wish to customize/extend it, it can be safely removed and or altered without causing issues. When the Phoronix Test Suite has Internet connectivity, it will continue to query OpenBenchmarking.org for new/updated tests and suites.</p>
<p>This local cache does provide current and previous versions of test profiles to allow users to continue running older versions of tests/results even when upgrading their Phoronix Test Suite offline copy.</p>
<p>Even with the local cache, there still is the need for obtaining any necessary files needed to run the selected test(s). For those wishing to optimize that workflow for offline usage, see the existing <em>phoronix-test-suite make-download-cache</em> sub-command documentation. The <em>phoronix-test-suite make-openbenchmarking-cache</em> sub-command may also be desirable depending upon setup.</p>
<h1>Disabling OpenBenchmarking.org Result Upload Functionality</h1>
<p>Phoronix Test Suite 9.0 improved the workflow around disabling OpenBenchmarking.org result uploading functionality for those carrying out confidential tests or otherwise wish to provide safeguards for ensuring no results may be accidentally uploaded publicly.</p>
<p>Removal of OpenBenchmarking.org upload support can be done by deleting <em>phoronix-test-suite/pts-core/objects/pts_openbenchmarking_upload.php</em>. If that file is removed, the Phoronix Test Suite should respond gracefully and not prompt users about any upload and within that file is the only logic for actually uploading the results to Openbenchmarking. So simply by removing that file you should be covered from any accidental uploading of results. Removal/disabling of this file also prevents any anonymous usage reporting.</p>
<p>For those without the ability to remove that file from their Phoronix Test Suite installation or as a secondary safeguard, from the Phoronix Test Suite user configuration file (<em>/etc/phoronix-test-suite.xml<em> as root or <em>~/.phoronix-test-suite/user-config.xml<em> for most users) is a "<em>AllowResultUploadsToOpenBenchmarking</em>" option. If setting that value to <em>FALSE</em>, it should apply the same behavior as if deleting the pts_openbenchmarking_upload file.</p>
<p>If distributing a customized/local copy of the Phoronix Test Suite, the default behavior of the configuration file (in addition to deleting the pts_openbenchmarking_upload file) can be done via the user configuration defaults defined within <em>pts-core/static/user-config-defaults.xml</em>.</p>
<h1>PTS Desktop Live 2010.1 "Anzhofen"</h1>
<p>PTS Desktop Live and PTS Netbook Live are Linux-based operating systems designed to provide a free software platform for carrying out system tests and hardware benchmarks in an automated, reproducible, and effective manner. The Phoronix Test Suite operating systems are designed around the <ahref="http://www.phoronix-test-suite.com/">Phoronix Test Suite</a> with the operating system itself consisting of a stripped down Linux environment, then built upon that is the Phoronix Test Suite with its test profiles and suites. This is not a standard Linux desktop with the normal throng of packages.</p>
<p>Testing with PTS Desktop Live is intended to be via a Live DVD or Live USB (i.e. flash drive or memory card) environment. PTS Netbook Live is similar to PTS Desktop Live but designed for testing on lightweight x86 systems and netbooks. Both PTS Desktop Live and PTS Netbook Live make it very easy to deploy the Phoronix Test Suite across an array of systems, isolates any software differences when seeking to perform hardware comparisons, and is designed to be very easy to carry out these Linux benchmarks even for a first-time Linux user.</p>
<p>The inaugural release of this operating system was PTS Desktop Live 2009.3 (codenamed "Gernlinden") and was based upon the Phoronix Test Suite 2.0 release. The Gernlinden release shipped with more than 50 open-source test profiles and all needed files being located on the disc image. PTS Desktop Live uses the GTK2 GUI dialog for the Phoronix Test Suite by default, but the CLI options are also accessible. PTS Desktop Live also features optimizations to the Linux kernel and related components for use on the latest high-end hardware and other performance related tweaking. PTS Netbook Live features optimizations for the Intel Atom processor.</p>
<p>The mission of the Phoronix Test Suite and related products will not be achieved until it has made Linux benchmarking incredibly robust and innovative, drop dead easy to perform nearly any kind of benchmark, and when it out-paces other leading operating systems for its benchmarking abilities. These operating systems are being updated quarterly in conjunction with new Phoronix Test Suite releases. The Phoronix Test Suite will continue to be supported under all other Linux distributions, OpenSolaris, Mac OS X, Windows, and *BSD operating systems, but this is just another addition on top of that.</p>
<p>PTS Desktop Live is designed to run on x86_64 compatible systems with 2GB or more of system memory (ideally 4GB+ if you wish to run many of the tests in a live environment) being highly recommended along with a modern CPU and graphics processor. No proprietary graphics drivers are shipped with PTS Desktop Live at this time, so depending upon the hardware you may not have OpenGL acceleration to run the few graphics-related tests that are included with this release. Only graphics drivers are provided for ATI/AMD, NVIDIA, and Intel hardware. An Internet connection is not required but is needed for communication with OpenBenchmarking.org and for utilizing some of the other Phoronix Test Suite features.</p>
<p>PTS Netbook Live is designed for netbooks and nettop computers with an Intel Atom processor.</p>
<h2>Quick Start Guide</h2>
<p>When the operating system has fully booted, the end-user agreement for the Phoronix Test Suite will be displayed, followed by initializing the main GTK user interface for the Phoronix Test Suite. The Phoronix Test Suite has more than 100 test profiles while there are about 50 test profiles featured within live environment, which are free software, do not pose significant install size problems, and are suitable for benchmarking from a live environment. By default, PTS Desktop Live and PTS Netbook Live will only show the test profiles and suites where all of the needed test files and dependencies ship with this open-source operating system. However, to access any of the test profiles that may require downloading additional files or external dependencies, use the <em>View</em> menu to toggle the different options. The system's hardware and software information can also be viewed in a graphical window from this menu.</p>
<p>From the <em>Available Tests</em> tab, any test/suite can be selected to view more information. If you wish to install the test, simply click on the install button while waiting shortly for it to install. Afterwards, the test can be run by selecting it again and clicking on the run/benchmark button. If you have a <ahref="http://www.openbenchmarking.org/">OpenBenchmarking.org</a> account, you can login from the <em>File</em> menu while Phoronix Test Suite settings are adjustable from the <em>Edit</em> menu.</p>
<p>When the testing has completed, the graphical user interface will reappear. Via the buttons that appear at the top of the interface, the test results can then be opened within the web browser. Depending upon the test profile, it may also be possible to immediately compare the test result(s) against a set of reference systems. If the completed test(s) do have reference results available, a list of the comparable systems are shown, so that you can click on one or more of these reference systems to see how the given system performs in comparison. Results from OpenBenchmarking.org can also be compared with any of the test results.</p>
<p>Assuming you did not launch any commands from the terminal to alter the disk(s) or its contents or carry out any other changes; PTS Desktop Live will have not touched your data or the installed operating system(s). If you wish to archive any of your test results, upload the results to OpenBenchmarking.org. Alternatively, when going to the <em>Test Results</em> tab and selecting a test, the <em>File</em> menu presents options for exporting results to text, CSV, and PDF files. The contents of the <em>~/.phoronix-test-suite/test-results/</em> folder can also be backed up for preserving the test results.</p>
<p>If you wish to use the Phoronix Test Suite from the command-line, open a terminal and run <em>phoronix-test-suite</em>.</p>
<p>The Phoronix Test Suite is based upon the extensive testing and internal tools developed by <ahref="http://www.phoronix.com/">Phoronix.com</a> since 2004 along with support from leading tier-one computer hardware and software vendors. The principal architects of the Phoronix Test Suite are <ahref="http://www.michaellarabel.com/">Michael Larabel</a> and Matthew Tippett. The phoronix-test-suite, pts_Graph, Phoromatic, Phodevi, tandem_Xml, and nye_Xml are some of the related open-source projects provided by <ahref="http://www.phoronix-media.com/">Phoronix Media</a>.</p>
<p>The Phoronix Test Suite is based upon the extensive testing and internal tools developed by <ahref="http://www.phoronix.com/">Phoronix.com</a> since 2004 along with support from leading tier-one computer hardware and software vendors. The principal architects of the Phoronix Test Suite are <ahref="http://www.michaellarabel.com/">Michael Larabel</a> and Matthew Tippett. The phoronix-test-suite, pts_Graph, Phoromatic, Phodevi, and nye_Xml are some of the related open-source projects provided by <ahref="http://www.phoronix-media.com/">Phoronix Media</a>.</p>
The Phoronix Test Suite itself is an open-source framework for conducting automated tests along with reporting of test results, detection of installed system software/hardware, and other features. Modules for the Phoronix Test Suite also allow for integration with git-bisect and other revision control systems for per-commit regression testing, system sensor monitoring, and other extras.
This framework is designed to be an extensible architecture so that new test profiles and suites can be easily added to represent performance benchmarks, unit tests, and other quantitative and qualitative (e.g. image quality comparison) measurements. Available through OpenBenchmarking.org, a collaborative storage platform developed in conjunction with the Phoronix Test Suite, are more than 200 individual test profiles and more than 60 test suites available by default from the Phoronix Test Suite. Independent users are also able to upload their test results, profiles, and suites to OpenBenchmarking.org. A test profile is a single test that can be executed by the Phoronix Test Suite -- with a series of options possible within every test -- and a test suite is a seamless collection of test profiles and/or additional testsuites. A test profile consists of a set of Bash/shell scripts and XML files while a test suite is a single XML file.
[Phoronix Test Suite Documentation](https://github.com/phoronix-test-suite/phoronix-test-suite/blob/master/documentation/phoronix-test-suite.md)
[OpenBenchmarking.org](http://www.openbenchmarking.org/) also allows for conducting side-by-side result comparisons, a central location for storing and sharing test results, and collaborating over test data. [Phoromatic](http://www.phoromatic.com/) is a complementary platform to OpenBenchmarking.org and the Phoronix Test Suite for interfacing with Phoronix Test Suite client(s) to automatically execute test runs on a timed, per-commit, or other trigger-driven basis. Phoromatic is designed for enterprise and allows for the easy management of multiple networked systems running Phoronix Test Suite clients via a single web-based interface.
The Phoronix Test Suite itself is an open-source framework for conducting automated tests along with reporting of test results, detection of installed system software/hardware, and other features. This framework is designed to be an extensible architecture so that new test profiles and suites can be easily added to represent performance benchmarks, unit tests, and other quantitative and qualitative (e.g. image quality comparison and pass/fail) measurements. Available through OpenBenchmarking.org, a collaborative storage platform developed in conjunction with the Phoronix Test Suite, are more than 600 individual test profiles and more than 200 test suites available by default from the Phoronix Test Suite. Independent users are also able to upload their test results, profiles, and suites to OpenBenchmarking.org.
Professional support and custom engineering for the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org is available by contacting <http://www.phoronix-test-suite.com/>.
A test profile is a single test that can be executed by the Phoronix Test Suite -- with a series of options possible within every test -- and a test suite is a seamless collection of test profiles and/or additional test suites. A test profile consists of a set of Bash/shell scripts and XML files while a test suite is a single XML file. Modules for the Phoronix Test Suite also allow for integration with git-bisect and other revision control systems for per-commit regression testing, system sensor monitoring, and other extras.
Full details on the Phoronix Test Suite setup and usage is available from the included HTML/PDF documentation within the phoronix-test-suite package and from the Phoronix Test Suite website.
[OpenBenchmarking.org](https://www.openbenchmarking.org/) also allows for conducting side-by-side result comparisons, a central location for storing and sharing test results, and collaborating over test data. [Phoromatic](https://www.phoromatic.com/) is a complementary platform to OpenBenchmarking.org and the Phoronix Test Suite for interfacing with Phoronix Test Suite client(s) to automatically execute test runs on a timed, per-commit, or other trigger-driven basis. Phoromatic is designed for enterprise and allows for the easy management of multiple networked systems running Phoronix Test Suite clients via a single web-based interface.
Professional support and custom engineering for the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org is available by contacting <https://www.phoronix-test-suite.com/>.
Full details on the Phoronix Test Suite setup and usage is available from the included HTML/PDF documentation within the phoronix-test-suite package and from the [Phoronix Test Suite documentation directory](documentation/).
## Installation & Setup
The Phoronix Test Suite is supported on Linux, *BSD, Solaris, MacOS X, and Windows systems. However, the most full-featured and well supported operating system for conducting the tests is Linux with some non-basic functionality not being available under all platforms. The Phoronix Test Suite software/framework is compatible with all major CPU architectures (e.g. i686, x86_64, ARM, PowerPC), but not all of the test profiles/suites are compatible with all architectures.
The Phoronix Test Suite is supported on Linux, *BSD, Solaris, macOS, and Windows systems. However, the most full-featured and well supported operating system for conducting the tests is Linux with some non-basic functionality not being available under all platforms. The Phoronix Test Suite software/framework is compatible with all major CPU architectures (e.g. i686, x86_64, ARM / AArch64, RISC-V, POWER 64-bit), but not all of the test profiles/suites are compatible with all architectures.
The Phoronix Test Suite can be installed for system-wide usage or run locally without installation from the extracted tar.gz/zip package. The only hard dependency on the Phoronix Test Suite is having command-line support for PHP (PHP 5.3+) installed. A complete PHP stack (e.g. with web server) is **not** needed, but merely the PHP command-line support, which is widely available from operating system package managers under the name `php`, `php5-cli`, or `php5`.
The Phoronix Test Suite can be installed for system-wide usage or run locally without installation from the extracted tar.gz/zip package. The only hard dependency on the Phoronix Test Suite is having command-line support for PHP (PHP 5.3+) installed. A complete PHP stack (e.g. with web server) is **not** needed, but merely the PHP command-line support, which is widely available from operating system package managers under the name `php`, `php7-cli`, `php5-cli`, `php7` or `php8`.
## Usage
The process to download, install/setup, execute, and report the results of a benchmark can be as simple as a command such as `phoronix-test-suite benchmark smallpt` to run a simple CPU test profile. If wishing to simply install a test, it's a matter of running `phoronix-test-suite install <test or suite name>` and to run it's `phoronix-test-suite run <test or suite name>`. There's also a batch mode for non-interactive benchmarking by first running `phoronix-test-suite batch-setup` and then using the `batch-run` sub-command rather than `run`.
The process to download, install/setup, execute, and report the results of a benchmark can be as simple as a command such as `phoronix-test-suite benchmark smallpt` to run a simple CPU test profile. If wishing to simply install a test, it's a matter of running `phoronix-test-suite install <test or suite name>` and to run it's `phoronix-test-suite run <test or suite name>`. There's also a batch mode for non-interactive benchmarking by first running `phoronix-test-suite batch-setup` and then using the `batch-run` sub-command rather than `run`. For more guidance see the [Phoronix Test Suite documentation](documentation/phoronix-test-suite.md).
Viewing installed system hardware and software is available via `phoronix-test-suite system-info` or `phoronix-test-suite detailed-system-info` for greater verbosity.
Viewing installed system hardware and software is available via `phoronix-test-suite system-info`.
Facilitating a result comparison from OpenBenchmarking.org can be done by running, for example, `phoronix-test-suite benchmark 1204293-BY-PHORONIX357` if wishing to compare the results of the `http://openbenchmarking.org/result/1204293-BY-PHORONIX357` result file.
Additional information is available from the Phoronix Test Suite website <http://www.phoronix-test-suite.com/> and the material bundled within the `phoronix-test-suite/documentation/` directory. A man page is also bundled with the phoronix-test-suite software.
Facilitating a result comparison from OpenBenchmarking.org can be done by running, for example, `phoronix-test-suite benchmark 1204293-BY-PHORONIX357` if wishing to compare the results of the `https://openbenchmarking.org/result/1204293-BY-PHORONIX357` result file.
*This test profile creation documentation is a work in progress.*
*Note: For some of the sample/debug test profiles mentioned on this page you may also need to first run the `phoronix-test-suite enable-repo debug` command to enable access to the tests on your local system.*
The easiest way to get started with creating a test at this time would be by modifying an existing test profile, such as:
> (Edit the test contents within ~/.phoronix-test-suite/test-profiles/local/build-llvm/ )
> ./phoronix-test-suite benchmark local/build-llvm # to try out the modified test profile
Some built-in Phoronix Test Suite commands that may help in test profile creation are `phoronix-test-suite create-test-profile` to help in the generation of the standard XML metadata for test profiles and other boilerplate code, `phoronix-test-suite debug-install [test]` to see the output of the install process, `phoronix-test-suite debug-run [test]` to debug the test run-time behavior, `phoronix-test-suite debug-result-parser [test]` if trying to debug the result parser XML handling, and `phoronix-test-suite inspect-test-profile [test]` to view the parsed Phoronix Test Suite test profile.
The `phoronix-test-suite diagnostics` output can also be beneficial for seeing the environment variables that by default are exported to all test profiles if needing to query certain software/hardware information.
## Pass/Fail Tests
The Phoronix Test Suite is primarily focused on quantitative tests, but does support pass/fail type testing (e.g. success / failure). See `phoronix-test-suite benchmark debug/pass-fail` as an example test profile for how to setup a pass/fail test. Similarly, there is `phoronix-test-suite benchmark debug/multi-pass-fail` for the multi-pass/fail of multiple pass/failures as part of a single result.
## Tests With Single Run, Multiple Results Output
See test profiles such as *pts/hpcc* and *pts/fio* for test profiles having a *results-definition.xml* where multiple results are generated from a single run.
## Sensor-Based Monitoring As A Test Result
See *pts/video-cpu-usage* as an (old) example of a working test centered around CPU usage tracking during video playback.
## Triggering Reboot During Test Install Or Test Run-Time
Since Phoronix Test Suite 10.6 is a built-in helper if a test profile during installation or at run-time needs to trigger a system reboot. This can be done by having the test install script or run script write to *~/reboot-needed*. If *~/reboot-needed* is created by the test profile, the Phoronix Test Suite will attempt to reboot the system in a cross-platform compatible manner.
The default behavior if reboot-needed is present is to reboot as soon as the test script execution finishes. This is the "immediate" mode and the default. Alternatively, if "queued" is written to the reboot-needed file, the Phoronix Test Suite will wait until after all other tests are either installed or run before triggering the reboot (or until running a test requesting an immediate reboot). The queued mode is intended to cut-down on the possible number of reboots needed, depending upon the constraints and intentions of the test profile rebooting.
When the test is recovering/re-run after a reboot, the Phoronix Test Suite will set the *$TEST_RECOVERING_FROM_REBOOT* environment variable to let the test profile know a reboot happened. Note that the $TEST_RECOVERING_FROM_REBOOT behavior will only report if it's the first subsequent run of the Phoronix Test Suite since the reboot was initiated, i.e. if there was an interruption and running PTS later on past that point of the test in question, the $TEST_RECOVERING_FROM_REBOOT would not be set. The $TEST_RECOVERING_FROM_REBOOT will also not be set if the Phoronix Test Suite client version was upgraded/changed during the reboot process.
Running `phoronix-test-suite benchmark debug/reboot-now` is a sample test profile demonstrating the reboot interface. Similarly, `phoronix-test-suite benchmark debug/reboot-during-install` demonstrates the reboot-needed activity on test installation.
:: This program is free software; you can redistribute it and/or modify
:: it under the terms of the GNU General Public License as published by
:: the Free Software Foundation; either version 3 of the License, or
:: (at your option) any later version.
::
:: This program is distributed in the hope that it will be useful,
:: but WITHOUT ANY WARRANTY; without even the implied warranty of
:: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
:: GNU General Public License for more details.
::
:: You should have received a copy of the GNU General Public License
:: along with this program. If not, see <http://www.gnu.org/licenses/>.
:: Generic Phoronix Test Suite installer for Windows
:: Ensure the user is in the correct directory
IfNotExist"pts-core\phoronix-test-suite.php"(
echo"To install the Phoronix Test Suite you must first change directories to phoronix-test-suite. For support visit: http://www.phoronix-test-suite.com/"
exit
)
setdestination="C:\phoronix-test-suite"
md%destination%
:: cd /d %destination%
:: for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)
xcopy "%cd%"%destination% /E
echo Phoronix Test Suite installed to %destination%
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Generic Phoronix Test Suite installer
# To install into a chroot, set $DESTDIR to the corresponding directory.
die() {
printf '%s\n' "$1" >&2
exit "${2:-1}"
}
if [ "X$1" = "X" ]
then
INSTALL_PREFIX="/usr"
else
INSTALL_PREFIX="$1"
fi
# Ensure the user is in the correct directory
if [ ! -f pts-core/phoronix-test-suite.php ]
then
die '
To install the Phoronix Test Suite you must first change directories to phoronix-test-suite/. For support visit: http://www.phoronix-test-suite.com/
'
fi
mkdir -p "$DESTDIR$INSTALL_PREFIX"
if [ ! -w "$DESTDIR$INSTALL_PREFIX" ]
then
die "ERROR: $DESTDIR$INSTALL_PREFIX is not writable. Run this installer as root or specify a different directory prefix as the first argument sent to this script."
The files in this directory are optional, providing a static cache of test profiles / test suites available via OpenBenchmarking.org.
Patches to this directory will not be accepted but test profile changes should be submitted via https://github.com/phoronix-test-suite/test-profiles/
This "ob-cache" is intended to help those running the Phoronix Test Suite behind firewalls / offline where they may not be able to query OpenBenchmarking.org for obtaining test data.
{"overview":{"244a0e9a456f6a8561ce62689c1c96b783484955":{"description":"AV1 Video Encoding","test_version":"1.1.x","app_version":"Git","unit":"Frames Per Second","samples":48,"timing_samples":47,"hib":1,"first_appeared":1552068371,"last_appeared":1681404639,"run_time_avg":1344,"stddev_avg":0.45,"percentiles":[0.01,0.01,0.01,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.02,0.03,0.03,0.03,0.03,0.05,0.05,0.05,0.05,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.07,0.08,0.08,0.08,0.13,0.13,0.13,0.13,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.14,0.15,0.15,0.15,0.15,0.23,0.23,0.23,0.3,0.3,3.56,3.56,4.55,4.55,5.87,5.87,16.14,16.14,69.08,69.08,70.89,70.89,71.24,71.24,71.41,71.41,73.11,73.11,136.37,136.37],"run_time_percentiles":[2.5100000000000002,2.5100000000000002,2.5100000000000002,4.449999999999999,4.449999999999999,4.56,4.56,4.58,4.58,4.640000000000001,4.640000000000001,4.719999999999999,4.719999999999999,10,10,13,13,13,15,15,17,17,200,200,263,263,390,390,396,396,438,438,438,438,438,439,439,439,439,440,440,442,442,442,442,779,779,822,822,847,847,847,851,851,852,852,893,893,1162,1162,1173,1173,1761,1761,1791,1791,1802,1802,1802,2300,2300,2643,2643,3111,3111,3113,3113,3116,3116,3121,3121,3123,3123,3123,3123,3123,3133,3133,3140,3140,3173,3173,3207,3207,3225,3225,3236,3236,3262,3262],"tested_archs":["x86_64","aarch64"]}}}
<Description>ClickHouse is an open-source, high performance OLAP data management system. This test profile uses ClickHouse's standard benchmark recommendations per https://clickhouse.com/docs/en/operations/performance-test/ / https://github.com/ClickHouse/ClickBench/tree/main/clickhouse with the 100 million rows web analytics dataset. The reported value is the query processing time using the geometric mean of all separate queries performed as an aggregate. This test profile is currently an experimental build of ClickHouse from Git and setup for Intel QPL accelerator use.</Description>
<ResultScale>Queries Per Minute, Geo Mean</ResultScale>
{"1.0.1":{"last_updated":"1579721829","commit_description":"Ensure dav1d-git build folder is cleaned on reinstall."},"1.0.0":{"last_updated":"1579697045","commit_description":"Add a Git version of dav1d benchmark."}}
<Description>Dav1d is an open-source, speedy AV1 video decoder. This test profile times how long it takes to decode sample AV1 video content.</Description>
{"1.1.0":{"last_updated":"1647888021","commit_description":"Update download links, adjust for v1.0+ that have changed CLI options, add threads\/framedelay options."},"1.0.1":{"last_updated":"1579721829","commit_description":"Ensure dav1d-git build folder is cleaned on reinstall."},"1.0.0":{"last_updated":"1579697045","commit_description":"Add a Git version of dav1d benchmark."}}
<Description>Dav1d is an open-source, speedy AV1 video decoder. This test profile times how long it takes to decode sample AV1 video content. The git/dav1d test profile builds against current dav1d Git, for the static version use the pts/dav1d test profile.</Description>
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.