Phoronix Test Suite

Phoronix Test Suite

The Leading Software For Automated, Open-Source Testing & Benchmarking

Latest Release
Phoronix Test Suite 5.8.1
Released on 23 June 2015


Phoronix The Phoronix Test Suite was developed out of the tools developed at since its founding in 2004. The Phoronix Test Suite is designed for Linux benchmarking but also supports other operating systems. Read more about the Phoronix Test Suite. was launched with Phoronix Test Suite 3.0 as a means of sharing benchmark results with the greater community, collectively collaborate over test results, store test profiles and test suites within a centralized cloud repository, and carry out other tests. Visit to learn more.


Phoromatic Phoromatic is an enterprise-designed component to the Phoronix Test Suite to centrally manage entire test farms/clusters of systems, carry out tests on a time or triggered basis, and provide support for other centralized test management purposes. Learn more at

Commercial Support

Commercial Support The Phoronix Test Suite's future development is dependent upon the continued support from organizations and other stakeholders taking advantage of this long-standing, open-source benchmarking software. We are happy to offer custom engineering services, commercial support, sponsorship of new open-source software features, custom test profiles, and other commercial support options for those interested in helping advance this automated Linux benchmarking software. Contact us to learn more.

Phoronix Test Suite 1.6 Changes

Phoronix Test Suite 1.6.0
January 20, 2009

- pts-core: Add support for installing and running virtual suites
- pts-core: Add hardware subsystem and "all" virtual suites
- pts-core: Provide symlink for Xauthority instead of copy
- pts-core: Deprecate install-all and force-install-all commands to be replaced by "install all" and "force-install all"
- pts-core: Add results overview table to result-file-to-pdf generator
- pts-core: Move graph generating code to pts_generate_graphs()
- pts-core: Fix for downloading files from remote download-cache directories
- pts-core: Support preset assignments through pts_run_option_next()
- pts-core: Setup batch-benchmark, batch-run, default-run, default-benchmark to use option interface with new preset assignment capabilities
- pts-core: Move all of the command / option handler into pts-core from phoronix-test-suite shell script and add option-command-aliases
- pts-core: Eliminate use of COMMAND assignment
- pts-core: Eliminate command descriptor from PTS run option API
- pts-core: Move list of options on command failure out of phoronix-test-suite and into pts-core
- pts-core: Fix round to calculation in pts_format_time_string()
- pts-core: Add SymLinkFilesFromCache option to user-config.xml for linking files from download-cache instead of copy
- pts-core: Improve GPU detection for some X Server / GPU configurations
- pts-core: Add pts_swap_variables() for performing variable swaps
- pts: Documentation updates
- pts: Resolution fix for smokin-guns test profile
- pts: Add Pardus external dependencies support
- pts: Add linux-system test suite
- pts_Graph: Switch font calculation to using bilde_renderer::soft_text_string_dimensions()
- pts_Graph: Switch to using new infrastructure in bilde_renderer
- pts_Graph: Don't print market for tick when display value is 0
- system_monitor: Fix for handling file extension through bilde_renderer
- bilde_renderer: Add bilde_renderer::setup_renderer()
- bilde_renderer: Add internal text/font width and height calculator
- bilde_swf_renderer: Render rectangles, borders, and right-aligned text correctly

Phoronix Test Suite 1.6.0 Beta 3
January 12, 2009

- pts-core: Add FORCE_TIMES_TO_RUN environmental variable for forcing the number of times to run a test
- pts-core: Add result-file-to-pdf option that will read a results file and save a copy of it as an Adobe PDF file
- pts-core: When installing multiple tests/suites, report the total install size and download size
- pts-core: When running multiple tests/suites, report the estimated run length
- pts-core: Improve detection of EXT2, EXT3, and EXT4 file-systems on Linux instead of just reporting "ext2/ext3"
- pts-core: Battery monitor reading support through hw_sys_power_consumption_rate()
- pts-core: Stabilize memory / SWAP reading API
- pts-core: Miscellaneous fixes
- pts-core: Copy ~/.Xauthority file to installed test directory upon installation
- pts-core: Improve GPU detection on OpenSolaris
- pts-core: Add memory speed detection on OpenSolaris
- pts: Add smokin-guns test profile for Quake 3 Smokin' Guns game
- pts: Minor update to iozone test profile
- pts: Update tcsh external dependency for Fedora (from ndim)
- pts: Remove x bit from a few php scripts without #! (from ndim)
- pts: Update download locations for several tests
- pts: Update Gentoo External Dependencies
- pts: Improve configure / build process of specviewperf10 test profile
- pts: Improve configure / build process of specviewperf9 test profile
- pts: Updates to jxrendermark test profile
- install-sh: Add $DESTDIR support to make packaging easier
- system_monitor: Add support for reading battery from BAT1

Phoronix Test Suite 1.6.0 Beta 2
January 2, 2009

- pts-core: Improve size detection of low-capacity hard disks
- pts-core: Improve lspci support for distributions using /sbin/lspci (such as OpenSuSE)
- pts-core: Move base test profiles and resources to pts/base-test-profiles/ and pts/base-test-resources/
- pts-core: Improve motherboard southbridge detection for some Intel ICH Chipsets
- pts-core: Add pts_test_installed() boolean function
- pts-core: Add pts_installed_test_tandem_XmlReader object
- pts-core: Clean up Display / X.Org server reported string
- pts-core: Eliminate use of most preg_ functions
- pts-core: Archive installation output of tests in the test's directory in file install.log
- pts-core: Add install-all-dependencies option to install all available external dependencies for that distribution
- pts-core: When installing or running a test, only print to standard output if under 10KB
- pts-core: Rewrite pts_remove() function
- pts-core: Allow reading CPU usage percent from individual cores
- pts-core: Cache reading of hw_cpu_core_count() since that shouldn't change while pts-core is running
- pts-core: Add auto-removable-media field to auto test options support
- pts: Add UXA acceleration check to GtkPerf test note reporting
- pts: Add 2d-test base profile that reports 2D acceleration mode using Cascading Test Profiles
- pts: Add build-mysql test profile for timed build of MySQL 5.1
- pts: Add system-disk test suite for real world disk / encryption tests
- pts: Add libperl-dev to Ubuntu External Dependencies XML to perl package
- pts: Add photo-sample base test profile for providing sample photographs
- pts: Add graphics-magick test profile for GraphicsMagick 1.3 image testing
- pts: Add graphics-magick to multicore test suite due to its use of OpenMP
- pts: Update lzma download link for compress-lzma test profile
- pts: Adjust more test profiles from using $argv to $LOG_FILE
- pts: Update and fix specviewperf10 test profile
- pts: Update wine-unstable test profile to WINE v1.1.12
- pts_Graph: Tweak formatting of basic graph attributes
- pts_Graph: When rendering a graph on a percent basis, format scale for 100-point basis
- pts_Graph: Add more stock colors to painter
- bilde_renderer: Add and implement draw_polygon and draw_ellipse to drawing API
- bilde_renderer: When setting the image quality level to use with the render_image() function, base it on a 100-point scale
- bilde_renderer: Add support for dynamically resizing the image drawing buffer
- bilde_renderer: Add experimental Adobe Flash / SWF renderer
- bilde_renderer: Add a generic abstract GD library renderer and then have bilde_png_renderer extend that
- bilde_renderer: Add a JPEG renderer using the GD library
- system_monitor: When monitoring CPU usage, monitor the usage on each individual core (and still overall too)

Phoronix Test Suite 1.6.0 Beta 1
December 18, 2008

- pts-core: Add result-file-to-suite option that will convert the relevant parts of a saved results file into a suite
- pts-core: Verify Attributes tag matches (instead of just the Arguments tag) when merging results
- pts-core: Don't sort current test identifiers when being prompted to enter a new identifier
- pts-core: Add Mode tag to suite XML specification for allowing individual tests within a suite to be run in the batch or defaults mode
- pts-core: Embed pts_location_test() into constructor of pts_test_tandem_XmlReader()
- pts-core: Add pts_suite_tandem_XmlReader() object for providing pts_location_suite() in the constructor
- pts-core: Add pts_results_tandem_XmlReader() object for providing file handling in the constructor
- pts-core: Ensure no spaces in pts_vendor_identifier()
- pts-core: Add support for abstracting the package vendor identifier (should fix OpenSuSE External Dependencies support on 11.1)
- pts-core: When using pts_display_web_browser, point to the index.html redirect instead of directly to composite.xml
- pts-core: Add pts-functions_vars.php, pts-functions_assignments.php
- pts-core: Check all supplied arguments for a PCQS test when determining if PCQS needs to be installed
- pts-core: Store aliases for distributions used in package identification in pts-core/static/software-vendor-aliases.txt
- pts-core: Rework option counting in pts_auto_process_test_option()
- pts-core: Add support for specifying multiple possible points in read_acpi() to provide some fallback support
- pts-core: Allow reading from TZ00 thermal zone over ACPI for CPU temperature
- pts-core: Add auto-file-select and auto-directory-selection options to PTS auto options support
- pts: Add more tests to netbook suite
- pts: Update download links in mrbayes and md-gromacs

Phoronix Test Suite 1.6.0 Alpha 3
December 11, 2008

- pts-core: Cut down on use of pts_exit() command due to the new option architecture, instead use returns appropriately
- pts-core: Various PHP notice fixes
- pts-core: Fix fatal error in list-installed-tests option
- pts-core: Disable SCTP until the new version is working
- pts-core: Fix regression that disabled benchmarking against Phoronix Global by simply supplying the global ID
- pts-core: Fix regression in clone command that didn't download the XML from Phoronix Global
- pts-core: Add pts-functions_io.php and pts-functions_global.php
- pts-core: Add pts_load_function_set() for loading functions within PTS options
- pts-core: Rename various options
- pts-core: Shorten phoronix-test-suite text
- pts-core: Add XSL-powered results overview chart to PTS Results Viewer
- pts-core: Improve reporting of Xfce in sw_desktop_environment()
- pts-core: Eliminate need to statically code options and arguments in phoronix-test-suite, but handle most of it dynamically
- pts-core: Allow multiple tests/suites/identifiers to be passed using the install (and force-install) option
- pts-core: Allow multiple tests/suites/identifiers to be passed using the run and benchmark options
- pts-core: Add pts_result_file object
- pts-core: Add DefaultEntry tag to XML test specification for specifying defaults mode
- pts-core: Switch IS_BATCH_MODE from using defines to PTS assignment functions
- pts-core: Add and implement default-run and default-benchmark options
- pts-core: Add auto-disks and auto-disk-partitions to automatic population of test profile menus from identifiers
- pts-core: Add initial functions needed for virtual suite support
- pts-core: Don't report "6.00 PG" in motherboard string
- pts-core: Improve detection of CPU processor temperature
- pts: Remove bonnie test profile until clarifications made
- pts: Add filesystem test suite
- pts: Add jxrendermark as new X Render benchmark test profile
- pts: Add prey retail game client test profile
- system_monitor: Update sensors every 9 seconds

Phoronix Test Suite 1.6.0 Alpha 2
December 2, 2008

- pts-core: Fix for Self-Contained Test Profiles (SCTP) support
- pts-core: Fix in memory type detection
- pts-core: Improve usability for those without the PHP preg_* functions
- pts-core: When rendering graph results, report the PTS version number from the results file, not current PTS_VERSION
- pts-core: Add support for detecting and reporting the desktop environment / version in use
- pts-core: Add support for dynamically loading objects from sub-directories of pts-core/objects/
- pts-core: Add validate-result mode that PTS test profiles can implement
- pts-core: Fix reporting erroneous motherboard string (Found on QEMU virtualized system)
- pts-core: Add and implement RawString to XML results specification for storing raw result values from all trial runs
- pts-core: Rename analyze option to analyze-batch
- pts-core: Add analyze-all-runs option to generate a candlestick graph showing the distribution of results from all trial runs
- pts-core: Update phoronix-test-suite text
- pts-core: Rework the pts_run_option interface to set options to run next
- pts-core: Change benchmark option to using the revised pts_run_option interface to avoid double pts-core initialization
- pts-core: Eliminate use of SILENT_INSTALL environmental variable
- pts-core: Ensure all PTS options extend the pts_option_interface
- pts-core: Allow pts_Graph to set the default image renderer for blide_renderer
- pts-core: Adjust some tag locations within the user-config.xml (NOTE: USERS MAY NEED TO UPDATE THEIR SETTINGS)
- pts-core: Fix regression in hw_gpu_xrandr_available_modes()
- pts-core: Fix regression in list-all-tests not listing unsupported tests
- pts-core: Remove DownloadSize tag that was deprecated from the test profiles since PTS 1.4 since it's been replaced in the downloads.xml specification
- pts-core: Update CSS and XSL for results viewer, fix table column alignment bug
- pts-core: Fix recent regression in pts_download_test_files() that caused only the first file to be downloaded
- pts-core: Remove old un-used files and installed files prior to installing/reinstalling a test
- pts-core: Add download-test-files option to download files for a test/suite but don't install
- pts-core: Add build-suite option that guides the user through automatically building their own test suite
- pts-core: Clean up / functionize more benchmark run code
- pts-core: Major Self-Contained Test Profile (SCTP) update. Also adds in convert-test-to-sctp option.
- pts: Add adjustable file size support for bonnie test profile
- pts: Update sqlite test profile to version
- pts: Update iozone test profile to version 3.315 and add size user option
- pts: Update openarena test profile to use OpenArena 0.8.1 game and new demo file
- tandem_XmlReader: Major performance improvements and optimizations
- bilde_renderer: New PTS-spawned abstracted image rendering interface that supports SVG and PNG rendering with a standard API
- pts_Graph: Various changes to the graphing object
- pts_Graph: Switch from internal image rendering functions to using bilde_renderer
- pts_Graph: Add loadGraphRawValues() for storing raw result data from RawString
- pts_CandleStickGraph: A new graph type that displays results from all test runs and is modeled after Japanese Candlestick charting

Phoronix Test Suite 1.6.0 Alpha 1
November 22, 2008

- pts-core: Add pts_set_assignment(), pts_read_assignment(), pts_is_assignment(), pts_set_assignment_once(), pts_clear_assignment() and pts_clear_assignments()
- pts-core: Switch over relevant define statements to using new PTS assignment functions for program-wide option-specific variable constants
- pts-core: Add pts_test_profile_details class
- pts-core: Add pts_test_suite_details class
- pts-core: Add pts_user_module_details class
- pts-core: Add pts_installed_test_details class
- pts-core: Add pts_test_usage_details class
- pts-core: Add pts_test_results_details class
- pts-core: Add pts_test_result_info_details class
- pts-core: Readjust pts-run-cmd.php code to not be reliant on some items
- pts-core: Drop pts-functions-extras.php and move those functions to other files
- pts-core: Modularize all Phoronix Test Suite run-time user options into options/ classes and using phoronix-test-suite.php interface
- pts-core: Remove pts-run-cmd.php now that all options are modularized
- pts-core: Remove pts-run-test.php now that now that its code is modularized as option run_test
- pts-core: Relocate initialization code to be called from phoronix-test-suite.php
- pts-core: Add STATIC_DIR (pts-core/static/) for some static files
- pts-core: Add static/hal-values-remove.txt to contain a list of all HAL strings to remove if found, instead of having it coded within an array
- pts-core: Add static/info-strings-remove.txt to contain a list of all information strings to remove if found, instead of having it coded within an array
- pts-core: Add static/info-strings-replace.txt to contain a list of all information strings to replace with another value if found, instead of having it coded within an array
- pts-core: Move module-variables.txt to STATIC_DIR
- pts-core: Add static/process-reporting-checks.txt to contain a list of processes to check for and report to the results viewer, instead of having it coded within an array
- pts-core: Switch a few global variables to static
- pts-core: Unify the XSL for the PTS Results Viewer and use a PHP function to insert the respective PNG/SVG markup when saving the results
- pts-core: Add pts_run_option_command() for modularizing executing PTS tasks
- pts-core: Add __pre_option_process() and __post_option_process() to PTS module system
- pts-core: Add "null" to hal-values-remove.txt
- pts-core: Only install external dependencies for tests that are supported on the system (such as with platform and architecture limitations)
- pts-core: Fix for URL empty bug (reported by Stef Telford and Bene18)
- pts-core: Drop ArgumentName profile tag code that's been deprecated since PTS 1.4+ in favor of ArgumentPrefix
- pts-core: Add SearchMediaForCache option that's enabled by default in user-config.xml to automatically search for download caches on removable devices (mounted within /media/)
- pts-core: Use static variable for PTS type caching
- pts-core: Branch out classes from pts-generic-classes.php
- pts-core: Standardize all pts-core official functions with pts_, sw_, hw_, or read_ prefix
- pts-core: Fix graphics constant warnings generated in pts_extended_init()
- pts-core: PTS_START_TIME -> PTS_INIT_TIME and add pts_elapsed_time() function to return the time (in seconds) that the option or pts-core has been running
- pts-core: Eliminate THIS_RUN_TIME constant and add preferred way of using pts_unique_runtime_identifier()
- pts-core: Add fallback option support for read_sysctl()
- pts-core: Add internal caching support for lspci and lsb_release information
- pts-core: Fixes in FreeBSD 7 support
- pts-core: Return false on failure from read_pci() instead of "Unknown" string
- pts-core: Return false on failure from read_lsb() instead of "Unknown" string
- pts-core: Return false on failure from read_sysctl() instead of "Unknown" string
- pts-core: Return false on failure from read_hal(), read_system_hal() instead of "Unknown" string
- pts-core: Eliminate use of global variables in PTS modules support
- pts-core: Finish eliminating use of all global variables throughout pts-core
- pts-core: Implement RequiresRoot tag that has been part of the PTS test profile specification for some time
- pts: Add External Dependencies support for FreeBSD using pkg_add command
- pts: Update most test profiles to reflect whether they are supported on *BSD operating systems
- pts: Enable hdparm test profile to use RequiresRoot capabilities
- tandem_XmlReader: Switch caching from using a GLOBALS variable to using a static variable within the XML reading class
- tandem_XmlReader: Write internal regular expression matcher for systems where preg_match and preg_match_all aren't available
- system_monitor: Update it to work with new APIs
- graphics_override, email_results, toggle_screensaver: Update to take advantage of latest API