From 59dd313836243593f3fdf73df40b38abefd31109 Mon Sep 17 00:00:00 2001 From: Michael Larabel Date: Sun, 13 Feb 2022 04:30:06 -0600 Subject: [PATCH] Prepare for PTS 10.8.2 to get out Phoromatic sanitization updates and other small fixes --- ChangeLog | 9 +++-- README.md | 2 +- documentation/man-pages/phoronix-test-suite.1 | 2 +- documentation/phoronix-test-suite.html | 38 ++++++++++++------ documentation/phoronix-test-suite.md | 38 ++++++++++++------ documentation/phoronix-test-suite.pdf | Bin 451273 -> 455237 bytes documentation/stubs/55_virtual_suites.html | 38 ++++++++++++------ pts-core/commands/dump_documentation.php | 6 +-- pts-core/objects/pts_virtual_test_suite.php | 8 ++-- pts-core/pts-core.php | 6 +-- 10 files changed, 93 insertions(+), 54 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1fc3277aee..24dc997c93 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,13 +1,16 @@ PHORONIX TEST SUITE CHANGE-LOG -Phoronix Test Suite (Git) +Phoronix Test Suite 10.8.2 +13 February 2022 +pts-core: Arch Linux external dependency updates pts-core: Workaround/fix PHP 5.4 usage with RHEL7-based distributions pts-core: Convert compiler / multicore / single-threaded test suites into virtual test suites since their properties can be auto-determined based on OB metadata to avoid manually maintaining them pts-core: Add virtual test suites for "riscv" and "aarch64" to make it easy to show test profiles that can run successfully on RISC-V and 64-bit Arm hardware +phodevi: Improved detection for components found on the Steam Deck and other hardware phodevi: Add Arm Cortex-X1C detection -phodevi: CPU temperature reporting for additional SoCs -phoromatic: Additional input sanitization +phodevi: CPU temperature reporting for additional SoCs such as the Raspberry Pi 400 +phoromatic: Additional input sanitization and validation improvements Phoronix Test Suite 10.8.1 23 January 2022 diff --git a/README.md b/README.md index ed245665d6..5f0a98bddd 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Phoronix Test Suite 10.8.1 +# Phoronix Test Suite 10.8.2 ![Phoronix Test Suite](pts-core/static/images/pts-308x160.png) The **Phoronix Test Suite** is the most comprehensive testing and benchmarking diff --git a/documentation/man-pages/phoronix-test-suite.1 b/documentation/man-pages/phoronix-test-suite.1 index fdbb2ab200..3edc304cd8 100644 --- a/documentation/man-pages/phoronix-test-suite.1 +++ b/documentation/man-pages/phoronix-test-suite.1 @@ -1,4 +1,4 @@ -.TH phoronix-test-suite 1 "www.phoronix-test-suite.com" "10.8.1" +.TH phoronix-test-suite 1 "www.phoronix-test-suite.com" "10.8.2" .SH NAME phoronix-test-suite \- The Phoronix Test Suite is an extensible open-source platform for performing testing and performance evaluation. .SH SYNOPSIS diff --git a/documentation/phoronix-test-suite.html b/documentation/phoronix-test-suite.html index e98eb8ab4e..69577589a0 100644 --- a/documentation/phoronix-test-suite.html +++ b/documentation/phoronix-test-suite.html @@ -1294,7 +1294,10 @@

Module Writing


Virtual Test Suites

Virtual test suites are not like a traditional test suite defined by the XML suite specification. Virtual test suites are dynamically generated in real-time by the Phoronix Test Suite client based upon the specified test critera. Virtual test suites can automatically consist of all test profiles that are compatible with a particular operating system or test profiles that meet other critera. When running a virtual suite, the OpenBenchmarking.org repository of the test profiles to use for generating the dynamic suite must be prefixed.

Virtual test suites can be installed and run just like a normal XML test suite and shares nearly all of the same capabilities. However, when running a virtual suite, the user will be prompted to input any user-configuration options for needed test profiles just as they would need to do if running the test individually. When running a virtual suite, the user also has the ability to select individual tests within the suite to run or to run all of the contained test profiles. Virtual test suites are also only supported for an OpenBenchmarking.org repository if there is no test profile or test suite of the same name in the repository. Below is a list of common virtual test suites for the main Phoronix Test Suite repository, but the dynamic list of available virtual test suites based upon the enabled repositories is available by running phoronix-test-suite list-available-virtual-suites.


-

All Tests In Pts pts/all +

64-bit Arm / AArch64 Tests In pts pts/aarch64 +

+

This is a collection of test profiles where there have been successful benchmark results submitted to OpenBenchmarking.org from 64-bit Arm / AArch64 CPU architecture hardware, i.e. these tests are proven to be 64-bit Arm / AArch64 compatible though not necessarily all compatible test profiles for the given architecture - just those with submitted public results previously on OpenBenchmarking.org.

+

All Tests in pts pts/all

This is a collection of all supported test profiles found within the specified OpenBenchmarking.org repository.

Application Tests pts/application @@ -1309,16 +1312,16 @@

BLAS (Basic Linear Algebra Sub-Routine) Tests pts/blas

C++ Boost Tests pts/boost

This is a collection of test profiles having an external dependency on C++ Boost

-

Bsd Operating System Tests pts/bsd +

BSD Operating System Tests pts/bsd

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the bsd Operating System.

-

C/C++ Compiler Benchmark Workloads In Pts pts/compiler +

C/C++ Compiler Benchmark Workloads In pts pts/compiler

This is a collection of test profiles often useful for C/C++ compiler benchmarks and where the test profiles will respect CFLAGS/CXXFLAGS environment variables.

Disk Subsystem Tests pts/disk

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the disk sub-system.

-

Everything In Pts pts/everything +

Everything in pts pts/everything

This is a collection of all test profiles found within the specified OpenBenchmarking.org repository, including unsupported tests, etc.

Fortran Tests pts/fortran @@ -1351,7 +1354,7 @@

Macosx Operating System Tests pts/macosx

Memory Subsystem Tests pts/memory

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the memory sub-system.

-

Multi-Core/Multi-Threaded Workloads In Pts pts/multicore +

Multi-Core/Multi-Threaded Workloads In pts pts/multicore

This is a collection of test profiles that have been detected to be CPU multi-threaded capable.

Network Subsystem Tests pts/network @@ -1366,7 +1369,7 @@

OpenCV Tests pts/opencv

Openmpi Tests pts/openmpi

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing openmpi.

-

Os Subsystem Tests pts/os +

OS Subsystem Tests pts/os

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the os sub-system.

Processor Subsystem Tests pts/processor @@ -1375,6 +1378,9 @@

Processor Subsystem Tests pts/processor

Python Tests pts/python

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing python.

+

RISC-V Tests In pts pts/riscv +

+

This is a collection of test profiles where there have been successful benchmark results submitted to OpenBenchmarking.org from RISC-V CPU architecture hardware, i.e. these tests are proven to be RISC-V compatible though not necessarily all compatible test profiles for the given architecture - just those with submitted public results previously on OpenBenchmarking.org.

Ruby Tests pts/ruby

This is a collection of test profiles having an external dependency on Ruby

@@ -1387,7 +1393,7 @@

Scientific Tests pts/scientific

Simulator Tests pts/simulator

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a simulator software test.

-

Single-Threaded Workloads In Pts pts/single-threaded +

Single-Threaded Workloads In pts pts/single-threaded

This is a collection of test profiles that have been detected to be single-threaded or only very poorly CPU threaded.

Solaris Operating System Tests pts/solaris @@ -1438,7 +1444,10 @@

Video Tests pts/video

Responsiveness Tests pts/responsiveness

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing responsiveness.

-

All Tests In System system/all +

64-bit Arm / AArch64 Tests In system system/aarch64 +

+

This is a collection of test profiles where there have been successful benchmark results submitted to OpenBenchmarking.org from 64-bit Arm / AArch64 CPU architecture hardware, i.e. these tests are proven to be 64-bit Arm / AArch64 compatible though not necessarily all compatible test profiles for the given architecture - just those with submitted public results previously on OpenBenchmarking.org.

+

All Tests in system system/all

This is a collection of all supported test profiles found within the specified OpenBenchmarking.org repository.

Application Tests system/application @@ -1453,13 +1462,13 @@

BLAS (Basic Linear Algebra Sub-Routine) Tests system/blas

C++ Boost Tests system/boost

This is a collection of test profiles having an external dependency on C++ Boost

-

Bsd Operating System Tests system/bsd +

BSD Operating System Tests system/bsd

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the bsd Operating System.

Disk Subsystem Tests system/disk

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the disk sub-system.

-

Everything In System system/everything +

Everything in system system/everything

This is a collection of all test profiles found within the specified OpenBenchmarking.org repository, including unsupported tests, etc.

Game Tests system/game @@ -1489,6 +1498,9 @@

Processor Subsystem Tests system/processor

Python Tests system/python

This is a collection of test profiles having an external dependency on Python

+

RISC-V Tests In system system/riscv +

+

This is a collection of test profiles where there have been successful benchmark results submitted to OpenBenchmarking.org from RISC-V CPU architecture hardware, i.e. these tests are proven to be RISC-V compatible though not necessarily all compatible test profiles for the given architecture - just those with submitted public results previously on OpenBenchmarking.org.

Scientific Tests system/scientific

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a scientific software test.

@@ -1513,13 +1525,13 @@

Cuda Tests system/cuda

Smp Tests system/smp

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing smp.

-

All Tests In Git git/all +

All Tests in git git/all

This is a collection of all supported test profiles found within the specified OpenBenchmarking.org repository.

-

Bsd Operating System Tests git/bsd +

BSD Operating System Tests git/bsd

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the bsd Operating System.

-

Everything In Git git/everything +

Everything in git git/everything

This is a collection of all test profiles found within the specified OpenBenchmarking.org repository, including unsupported tests, etc.

Linux Operating System Tests git/linux diff --git a/documentation/phoronix-test-suite.md b/documentation/phoronix-test-suite.md index ad1658d265..ad753f31a6 100644 --- a/documentation/phoronix-test-suite.md +++ b/documentation/phoronix-test-suite.md @@ -1575,7 +1575,10 @@ Virtual test suites can be installed and run just like a normal XML test suite a --- -#### All Tests In Pts pts/all +#### 64-bit Arm / AArch64 Tests In pts pts/aarch64 +This is a collection of test profiles where there have been successful benchmark results submitted to OpenBenchmarking.org from 64-bit Arm / AArch64 CPU architecture hardware, i.e. these tests are proven to be 64-bit Arm / AArch64 compatible though not necessarily all compatible test profiles for the given architecture - just those with submitted public results previously on OpenBenchmarking.org. + +#### All Tests in pts pts/all This is a collection of all supported test profiles found within the specified OpenBenchmarking.org repository. #### Application Tests pts/application @@ -1590,16 +1593,16 @@ This is a collection of test profiles having an external dependency on BLAS (Bas #### C++ Boost Tests pts/boost This is a collection of test profiles having an external dependency on C++ Boost -#### Bsd Operating System Tests pts/bsd +#### BSD Operating System Tests pts/bsd This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the bsd Operating System. -#### C/C++ Compiler Benchmark Workloads In Pts pts/compiler +#### C/C++ Compiler Benchmark Workloads In pts pts/compiler This is a collection of test profiles often useful for C/C++ compiler benchmarks and where the test profiles will respect CFLAGS/CXXFLAGS environment variables. #### Disk Subsystem Tests pts/disk This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the disk sub-system. -#### Everything In Pts pts/everything +#### Everything in pts pts/everything This is a collection of all test profiles found within the specified OpenBenchmarking.org repository, including unsupported tests, etc. #### Fortran Tests pts/fortran @@ -1632,7 +1635,7 @@ This is a collection of test profiles found within the specified OpenBenchmarkin #### Memory Subsystem Tests pts/memory This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the memory sub-system. -#### Multi-Core/Multi-Threaded Workloads In Pts pts/multicore +#### Multi-Core/Multi-Threaded Workloads In pts pts/multicore This is a collection of test profiles that have been detected to be CPU multi-threaded capable. #### Network Subsystem Tests pts/network @@ -1647,7 +1650,7 @@ This is a collection of test profiles having an external dependency on OpenCV #### Openmpi Tests pts/openmpi This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing openmpi. -#### Os Subsystem Tests pts/os +#### OS Subsystem Tests pts/os This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the os sub-system. #### Processor Subsystem Tests pts/processor @@ -1656,6 +1659,9 @@ This is a collection of test profiles found within the specified OpenBenchmarkin #### Python Tests pts/python This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing python. +#### RISC-V Tests In pts pts/riscv +This is a collection of test profiles where there have been successful benchmark results submitted to OpenBenchmarking.org from RISC-V CPU architecture hardware, i.e. these tests are proven to be RISC-V compatible though not necessarily all compatible test profiles for the given architecture - just those with submitted public results previously on OpenBenchmarking.org. + #### Ruby Tests pts/ruby This is a collection of test profiles having an external dependency on Ruby @@ -1668,7 +1674,7 @@ This is a collection of test profiles found within the specified OpenBenchmarkin #### Simulator Tests pts/simulator This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a simulator software test. -#### Single-Threaded Workloads In Pts pts/single-threaded +#### Single-Threaded Workloads In pts pts/single-threaded This is a collection of test profiles that have been detected to be single-threaded or only very poorly CPU threaded. #### Solaris Operating System Tests pts/solaris @@ -1719,7 +1725,10 @@ This is a collection of test profiles found within the specified OpenBenchmarkin #### Responsiveness Tests pts/responsiveness This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing responsiveness. -#### All Tests In System system/all +#### 64-bit Arm / AArch64 Tests In system system/aarch64 +This is a collection of test profiles where there have been successful benchmark results submitted to OpenBenchmarking.org from 64-bit Arm / AArch64 CPU architecture hardware, i.e. these tests are proven to be 64-bit Arm / AArch64 compatible though not necessarily all compatible test profiles for the given architecture - just those with submitted public results previously on OpenBenchmarking.org. + +#### All Tests in system system/all This is a collection of all supported test profiles found within the specified OpenBenchmarking.org repository. #### Application Tests system/application @@ -1734,13 +1743,13 @@ This is a collection of test profiles having an external dependency on BLAS (Bas #### C++ Boost Tests system/boost This is a collection of test profiles having an external dependency on C++ Boost -#### Bsd Operating System Tests system/bsd +#### BSD Operating System Tests system/bsd This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the bsd Operating System. #### Disk Subsystem Tests system/disk This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the disk sub-system. -#### Everything In System system/everything +#### Everything in system system/everything This is a collection of all test profiles found within the specified OpenBenchmarking.org repository, including unsupported tests, etc. #### Game Tests system/game @@ -1770,6 +1779,9 @@ This is a collection of test profiles found within the specified OpenBenchmarkin #### Python Tests system/python This is a collection of test profiles having an external dependency on Python +#### RISC-V Tests In system system/riscv +This is a collection of test profiles where there have been successful benchmark results submitted to OpenBenchmarking.org from RISC-V CPU architecture hardware, i.e. these tests are proven to be RISC-V compatible though not necessarily all compatible test profiles for the given architecture - just those with submitted public results previously on OpenBenchmarking.org. + #### Scientific Tests system/scientific This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a scientific software test. @@ -1794,13 +1806,13 @@ This is a collection of test profiles found within the specified OpenBenchmarkin #### Smp Tests system/smp This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing smp. -#### All Tests In Git git/all +#### All Tests in git git/all This is a collection of all supported test profiles found within the specified OpenBenchmarking.org repository. -#### Bsd Operating System Tests git/bsd +#### BSD Operating System Tests git/bsd This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the bsd Operating System. -#### Everything In Git git/everything +#### Everything in git git/everything This is a collection of all test profiles found within the specified OpenBenchmarking.org repository, including unsupported tests, etc. #### Linux Operating System Tests git/linux diff --git a/documentation/phoronix-test-suite.pdf b/documentation/phoronix-test-suite.pdf index ba23050b5e5efea532d61e6a6c10e7aa12982db3..f3536b1fb5a2d61a70452b3a82dace5f6a22effd 100644 GIT binary patch delta 18397 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 delta 16563 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 abMTnVx5o^7IZlJ+z5cj*_1bsu5cj`4Rxbbm diff --git a/documentation/stubs/55_virtual_suites.html b/documentation/stubs/55_virtual_suites.html index 6a35400d36..d1d840545c 100644 --- a/documentation/stubs/55_virtual_suites.html +++ b/documentation/stubs/55_virtual_suites.html @@ -6,7 +6,10 @@

Virtual test suites are not like a traditional test suite defined by the XML suite specification. Virtual test suites are dynamically generated in real-time by the Phoronix Test Suite client based upon the specified test critera. Virtual test suites can automatically consist of all test profiles that are compatible with a particular operating system or test profiles that meet other critera. When running a virtual suite, the OpenBenchmarking.org repository of the test profiles to use for generating the dynamic suite must be prefixed.

Virtual test suites can be installed and run just like a normal XML test suite and shares nearly all of the same capabilities. However, when running a virtual suite, the user will be prompted to input any user-configuration options for needed test profiles just as they would need to do if running the test individually. When running a virtual suite, the user also has the ability to select individual tests within the suite to run or to run all of the contained test profiles. Virtual test suites are also only supported for an OpenBenchmarking.org repository if there is no test profile or test suite of the same name in the repository. Below is a list of common virtual test suites for the main Phoronix Test Suite repository, but the dynamic list of available virtual test suites based upon the enabled repositories is available by running phoronix-test-suite list-available-virtual-suites.


-

All Tests In Pts pts/all +

64-bit Arm / AArch64 Tests In pts pts/aarch64 +

+

This is a collection of test profiles where there have been successful benchmark results submitted to OpenBenchmarking.org from 64-bit Arm / AArch64 CPU architecture hardware, i.e. these tests are proven to be 64-bit Arm / AArch64 compatible though not necessarily all compatible test profiles for the given architecture - just those with submitted public results previously on OpenBenchmarking.org.

+

All Tests in pts pts/all

This is a collection of all supported test profiles found within the specified OpenBenchmarking.org repository.

Application Tests pts/application @@ -21,16 +24,16 @@

BLAS (Basic Linear Algebra Sub-Routine) Tests pts/blas

C++ Boost Tests pts/boost

This is a collection of test profiles having an external dependency on C++ Boost

-

Bsd Operating System Tests pts/bsd +

BSD Operating System Tests pts/bsd

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the bsd Operating System.

-

C/C++ Compiler Benchmark Workloads In Pts pts/compiler +

C/C++ Compiler Benchmark Workloads In pts pts/compiler

This is a collection of test profiles often useful for C/C++ compiler benchmarks and where the test profiles will respect CFLAGS/CXXFLAGS environment variables.

Disk Subsystem Tests pts/disk

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the disk sub-system.

-

Everything In Pts pts/everything +

Everything in pts pts/everything

This is a collection of all test profiles found within the specified OpenBenchmarking.org repository, including unsupported tests, etc.

Fortran Tests pts/fortran @@ -63,7 +66,7 @@

Macosx Operating System Tests pts/macosx

Memory Subsystem Tests pts/memory

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the memory sub-system.

-

Multi-Core/Multi-Threaded Workloads In Pts pts/multicore +

Multi-Core/Multi-Threaded Workloads In pts pts/multicore

This is a collection of test profiles that have been detected to be CPU multi-threaded capable.

Network Subsystem Tests pts/network @@ -78,7 +81,7 @@

OpenCV Tests pts/opencv

Openmpi Tests pts/openmpi

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing openmpi.

-

Os Subsystem Tests pts/os +

OS Subsystem Tests pts/os

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the os sub-system.

Processor Subsystem Tests pts/processor @@ -87,6 +90,9 @@

Processor Subsystem Tests pts/processor

Python Tests pts/python

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing python.

+

RISC-V Tests In pts pts/riscv +

+

This is a collection of test profiles where there have been successful benchmark results submitted to OpenBenchmarking.org from RISC-V CPU architecture hardware, i.e. these tests are proven to be RISC-V compatible though not necessarily all compatible test profiles for the given architecture - just those with submitted public results previously on OpenBenchmarking.org.

Ruby Tests pts/ruby

This is a collection of test profiles having an external dependency on Ruby

@@ -99,7 +105,7 @@

Scientific Tests pts/scientific

Simulator Tests pts/simulator

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a simulator software test.

-

Single-Threaded Workloads In Pts pts/single-threaded +

Single-Threaded Workloads In pts pts/single-threaded

This is a collection of test profiles that have been detected to be single-threaded or only very poorly CPU threaded.

Solaris Operating System Tests pts/solaris @@ -150,7 +156,10 @@

Video Tests pts/video

Responsiveness Tests pts/responsiveness

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing responsiveness.

-

All Tests In System system/all +

64-bit Arm / AArch64 Tests In system system/aarch64 +

+

This is a collection of test profiles where there have been successful benchmark results submitted to OpenBenchmarking.org from 64-bit Arm / AArch64 CPU architecture hardware, i.e. these tests are proven to be 64-bit Arm / AArch64 compatible though not necessarily all compatible test profiles for the given architecture - just those with submitted public results previously on OpenBenchmarking.org.

+

All Tests in system system/all

This is a collection of all supported test profiles found within the specified OpenBenchmarking.org repository.

Application Tests system/application @@ -165,13 +174,13 @@

BLAS (Basic Linear Algebra Sub-Routine) Tests system/blas

C++ Boost Tests system/boost

This is a collection of test profiles having an external dependency on C++ Boost

-

Bsd Operating System Tests system/bsd +

BSD Operating System Tests system/bsd

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the bsd Operating System.

Disk Subsystem Tests system/disk

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the disk sub-system.

-

Everything In System system/everything +

Everything in system system/everything

This is a collection of all test profiles found within the specified OpenBenchmarking.org repository, including unsupported tests, etc.

Game Tests system/game @@ -201,6 +210,9 @@

Processor Subsystem Tests system/processor

Python Tests system/python

This is a collection of test profiles having an external dependency on Python

+

RISC-V Tests In system system/riscv +

+

This is a collection of test profiles where there have been successful benchmark results submitted to OpenBenchmarking.org from RISC-V CPU architecture hardware, i.e. these tests are proven to be RISC-V compatible though not necessarily all compatible test profiles for the given architecture - just those with submitted public results previously on OpenBenchmarking.org.

Scientific Tests system/scientific

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a scientific software test.

@@ -225,13 +237,13 @@

Cuda Tests system/cuda

Smp Tests system/smp

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing smp.

-

All Tests In Git git/all +

All Tests in git git/all

This is a collection of all supported test profiles found within the specified OpenBenchmarking.org repository.

-

Bsd Operating System Tests git/bsd +

BSD Operating System Tests git/bsd

This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the bsd Operating System.

-

Everything In Git git/everything +

Everything in git git/everything

This is a collection of all test profiles found within the specified OpenBenchmarking.org repository, including unsupported tests, etc.

Linux Operating System Tests git/linux diff --git a/pts-core/commands/dump_documentation.php b/pts-core/commands/dump_documentation.php index 77586ed442..7f84c9cff3 100644 --- a/pts-core/commands/dump_documentation.php +++ b/pts-core/commands/dump_documentation.php @@ -3,8 +3,8 @@ /* Phoronix Test Suite URLs: http://www.phoronix.com, http://www.phoronix-test-suite.com/ - Copyright (C) 2010 - 2021, Phoronix Media - Copyright (C) 2010 - 2021, Michael Larabel + Copyright (C) 2010 - 2022, Phoronix Media + Copyright (C) 2010 - 2022, Michael Larabel 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 @@ -212,7 +212,7 @@ public static function run($r) foreach(pts_virtual_test_suite::available_virtual_suites() as $virtual_suite) { - $sub_header = $dom->createElement('h3', ucwords($virtual_suite->get_title())); + $sub_header = $dom->createElement('h3', $virtual_suite->get_title()); $em = $dom->CreateElement('em', ' ' . $virtual_suite->get_identifier()); $sub_header->appendChild($em); $body->appendChild($sub_header); diff --git a/pts-core/objects/pts_virtual_test_suite.php b/pts-core/objects/pts_virtual_test_suite.php index 2dc0d6152f..5957106ab2 100644 --- a/pts-core/objects/pts_virtual_test_suite.php +++ b/pts-core/objects/pts_virtual_test_suite.php @@ -258,7 +258,7 @@ public function __construct($identifier) } else if(self::is_selector_os($this->virtual)) { - $this->set_title($this->virtual . ' Operating System Tests'); + $this->set_title((strlen($this->virtual) < 4 ? strtoupper($this->virtual) : ucwords($this->virtual)) . ' Operating System Tests'); $this->set_description('This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being compatible with the ' . $this->virtual . ' Operating System.'); foreach($repo_index['tests'] as $test_identifier => &$test) { @@ -286,7 +286,7 @@ public function __construct($identifier) } else if(self::is_selector_subsystem($this->virtual)) { - $this->set_title($this->virtual . ' Subsystem Tests'); + $this->set_title((strlen($this->virtual) < 4 ? strtoupper($this->virtual) : ucwords($this->virtual)) . ' Subsystem Tests'); $this->set_description('This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a test of the ' . $this->virtual . ' sub-system.'); foreach($repo_index['tests'] as $test_identifier => &$test) { @@ -314,7 +314,7 @@ public function __construct($identifier) } else if(self::is_selector_software_type($this->virtual)) { - $this->set_title($this->virtual . ' Tests'); + $this->set_title(ucwords($this->virtual) . ' Tests'); $this->set_description('This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified as being a ' . $this->virtual . ' software test.'); foreach($repo_index['tests'] as $test_identifier => &$test) { @@ -342,7 +342,7 @@ public function __construct($identifier) } else if(self::is_selector_internal_tag($this->repo, $this->virtual)) { - $this->set_title($this->virtual . ' Tests'); + $this->set_title(ucwords($this->virtual) . ' Tests'); $this->set_description('This is a collection of test profiles found within the specified OpenBenchmarking.org repository where the test profile is specified via an internal tag as testing ' . $this->virtual . '.'); foreach($repo_index['tests'] as $test_identifier => &$test) { diff --git a/pts-core/pts-core.php b/pts-core/pts-core.php index f1d4682ec4..a2aca8cb22 100644 --- a/pts-core/pts-core.php +++ b/pts-core/pts-core.php @@ -228,9 +228,9 @@ function pts_needed_extensions() ); } -pts_define('PTS_VERSION', '10.8.1'); -pts_define('PTS_CORE_VERSION', 10812); -pts_define('PTS_RELEASE_DATE', '20220123'); +pts_define('PTS_VERSION', '10.8.2'); +pts_define('PTS_CORE_VERSION', 10820); +pts_define('PTS_RELEASE_DATE', '20220213'); pts_define('PTS_CODENAME', 'Nesseby'); pts_define('PTS_IS_CLIENT', (defined('PTS_MODE') && strstr(PTS_MODE, 'CLIENT') !== false));