diff mbox

show/show_logs: Add dynamic creation of fwts-test logs

Message ID 1467745551-28374-1-git-send-email-debmc@linux.vnet.ibm.com
State Rejected
Headers show

Commit Message

Deb McLemore July 5, 2016, 7:05 p.m. UTC
We added the capability to dynamically create (based on test)
the content of the log files used to validate the show commands.
This allows customization of the Makefile.am to optionally
include objects to be linked.

Signed-off-by: Deb McLemore <debmc@linux.vnet.ibm.com>
---
 configure.ac                                       |    2 +
 .../arg-show-tests-0001/arg-show-tests-0001.log    |  187 ---
 fwts-test/arg-show-tests-0001/test-0001.sh         |   20 +-
 fwts-test/arg-show-tests-0001/test-0002.sh         |   26 +-
 .../arg-show-tests-full-0001.log                   |  930 ------------
 fwts-test/arg-show-tests-full-0001/test-0001.sh    |   19 +-
 src/Makefile.am                                    |    1 +
 src/show/show_logs.c                               | 1480 ++++++++++++++++++++
 8 files changed, 1519 insertions(+), 1146 deletions(-)
 delete mode 100644 fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
 delete mode 100644 fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
 create mode 100644 src/show/show_logs.c

Comments

Colin Ian King July 5, 2016, 7:15 p.m. UTC | #1
On 05/07/16 20:05, Deb McLemore wrote:
> We added the capability to dynamically create (based on test)
> the content of the log files used to validate the show commands.
> This allows customization of the Makefile.am to optionally
> include objects to be linked.
> 
> Signed-off-by: Deb McLemore <debmc@linux.vnet.ibm.com>
> ---
>  configure.ac                                       |    2 +
>  .../arg-show-tests-0001/arg-show-tests-0001.log    |  187 ---
>  fwts-test/arg-show-tests-0001/test-0001.sh         |   20 +-
>  fwts-test/arg-show-tests-0001/test-0002.sh         |   26 +-
>  .../arg-show-tests-full-0001.log                   |  930 ------------
>  fwts-test/arg-show-tests-full-0001/test-0001.sh    |   19 +-
>  src/Makefile.am                                    |    1 +
>  src/show/show_logs.c                               | 1480 ++++++++++++++++++++
>  8 files changed, 1519 insertions(+), 1146 deletions(-)
>  delete mode 100644 fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
>  delete mode 100644 fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
>  create mode 100644 src/show/show_logs.c
> 
> diff --git a/configure.ac b/configure.ac
> index e3e7512..0f15540 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -71,6 +71,8 @@
>  	  ])
>  	  AM_CONDITIONAL([HAVE_LIBFDT],
>  		  [test "x$ac_cv_search_fdt_check_header" != "xno"])
> +	  fwts_srcdir=`readlink -f $srcdir`
> +	  AC_DEFINE_UNQUOTED([FWTS_SRCDIR],["$fwts_srcdir"], [FWTS absolute src path])
>  	  AC_FUNC_MALLOC
>  	  AC_FUNC_FORK
>  	  AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
> diff --git a/fwts-test/arg-show-tests-0001/arg-show-tests-0001.log b/fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
> deleted file mode 100644
> index 1a76b9d..0000000
> --- a/fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
> +++ /dev/null
> @@ -1,187 +0,0 @@
> -ACPI tests:
> - acpiinfo        General ACPI information test.
> - acpitables      ACPI table headers sanity tests.
> - apicinstance    Test for single instance of APIC/MADT table.
> - asf             ASF! Alert Standard Format Table test.
> - aspt            ASPT Table test.
> - bert            BERT Boot Error Record Table test.
> - bgrt            BGRT Boot Graphics Resource Table test.
> - boot            BOOT Table test.
> - checksum        ACPI table checksum test.
> - cpep            CPEP Corrected Platform Error Polling Table test.
> - csrt            CSRT Core System Resource Table test.
> - cstates         Processor C state support test.
> - dbg2            DBG2 (Debug Port Table 2) test.
> - dbgp            DBGP (Debug Port) Table test.
> - dmar            DMA Remapping (VT-d) test.
> - ecdt            ECDT Embedded Controller Boot Resources Table test.
> - einj            EINJ Error Injection Table test.
> - erst            ERST Error Record Serialization Table test.
> - facs            FACS Firmware ACPI Control Structure test.
> - fadt            FADT Fixed ACPI Description Table tests.
> - fpdt            FPDT Firmware Performance Data Table test.
> - gtdt            GTDT Generic Timer Description Table test.
> - hest            HEST Hardware Error Source Table test.
> - hpet            HPET IA-PC High Precision Event Timer Table tests.
> - iort            IORT IO Remapping Table test.
> - lpit            LPIT Low Power Idle Table test.
> - madt            MADT Multiple APIC Description Table (spec compliant).
> - mcfg            MCFG PCI Express* memory mapped config space test.
> - mchi            MCHI Management Controller Host Interface Table test.
> - method          ACPI DSDT Method Semantic tests.
> - msct            MSCT Maximum System Characteristics Table test.
> - msdm            MSDM Microsoft Data Management Table test.
> - pcc             Processor Clocking Control (PCC) test.
> - rsdp            RSDP Root System Description Pointer test.
> - rsdt            RSDT Root System Description Table test.
> - sbst            SBST Smart Battery Specification Table test.
> - slic            SLIC Software Licensing Description Table test.
> - slit            SLIT System Locality Distance Information test.
> - spcr            SPCR Serial Port Console Redirection Table test.
> - spmi            SPMI Service Processor Management Interface Description Table test.
> - srat            SRAT System Resource Affinity Table test.
> - stao            STAO Status Override Table test.
> - tcpa            TCPA Trusted Computing Platform Alliance Capabilities Table test.
> - tpm2            TPM2 Trusted Platform Module 2 test.
> - uefi            UEFI Data Table test.
> - waet            WAET Windows ACPI Emulated Devices Table test.
> - wdat            WDAT Microsoft Hardware Watchdog Action Table test.
> - wmi             Extract and analyse Windows Management Instrumentation (WMI).
> - xenv            XENV Xen Environment Table tests.
> - xsdt            XSDT Extended System Description Table test.
> -
> -Batch tests:
> - acpiinfo        General ACPI information test.
> - acpitables      ACPI table headers sanity tests.
> - apicedge        APIC edge/level test.
> - apicinstance    Test for single instance of APIC/MADT table.
> - asf             ASF! Alert Standard Format Table test.
> - aspm            PCIe ASPM test.
> - aspt            ASPT Table test.
> - autobrightness  Automated LCD brightness test.
> - bert            BERT Boot Error Record Table test.
> - bgrt            BGRT Boot Graphics Resource Table test.
> - bios32          BIOS32 Service Directory test.
> - bios_info       Gather BIOS DMI information.
> - bmc_info        BMC Info
> - boot            BOOT Table test.
> - checksum        ACPI table checksum test.
> - cpep            CPEP Corrected Platform Error Polling Table test.
> - cpufreq         CPU frequency scaling tests.
> - crs             Test PCI host bridge configuration using _CRS.
> - csm             UEFI Compatibility Support Module test.
> - csrt            CSRT Core System Resource Table test.
> - cstates         Processor C state support test.
> - dbg2            DBG2 (Debug Port Table 2) test.
> - dbgp            DBGP (Debug Port) Table test.
> - dmar            DMA Remapping (VT-d) test.
> - dmicheck        DMI/SMBIOS table tests.
> - dt_base         Base device tree validity check
> - dt_sysinfo      Device tree system information test
> - ebda            Test EBDA region is mapped and reserved in memory map table.
> - ecdt            ECDT Embedded Controller Boot Resources Table test.
> - einj            EINJ Error Injection Table test.
> - erst            ERST Error Record Serialization Table test.
> - facs            FACS Firmware ACPI Control Structure test.
> - fadt            FADT Fixed ACPI Description Table tests.
> - fan             Simple fan tests.
> - fpdt            FPDT Firmware Performance Data Table test.
> - gtdt            GTDT Generic Timer Description Table test.
> - hda_audio       HDA Audio Pin Configuration test.
> - hest            HEST Hardware Error Source Table test.
> - hpet            HPET IA-PC High Precision Event Timer Table tests.
> - iort            IORT IO Remapping Table test.
> - klog            Scan kernel log for errors and warnings.
> - lpit            LPIT Low Power Idle Table test.
> - madt            MADT Multiple APIC Description Table (spec compliant).
> - maxfreq         Test max CPU frequencies against max scaling frequency.
> - maxreadreq      Test firmware has set PCI Express MaxReadReq to a higher value on non-motherboard devices.
> - mcfg            MCFG PCI Express* memory mapped config space test.
> - mchi            MCHI Management Controller Host Interface Table test.
> - method          ACPI DSDT Method Semantic tests.
> - microcode       Test if system is using latest microcode.
> - mpcheck         MultiProcessor Tables tests.
> - msct            MSCT Maximum System Characteristics Table test.
> - msdm            MSDM Microsoft Data Management Table test.
> - msr             MSR register tests.
> - mtrr            MTRR tests.
> - nx              Test if CPU NX is disabled by the BIOS.
> - olog            Run OLOG scan and analysis checks.
> - oops            Scan kernel log for Oopses.
> - osilinux        Disassemble DSDT to check for _OSI("Linux").
> - pcc             Processor Clocking Control (PCC) test.
> - pciirq          PCI IRQ Routing Table test.
> - pnp             BIOS Support Installation structure test.
> - prd_info        OPAL Processor Recovery Diagnostics Info
> - rsdp            RSDP Root System Description Pointer test.
> - rsdt            RSDT Root System Description Table test.
> - sbst            SBST Smart Battery Specification Table test.
> - securebootcert  UEFI secure boot test.
> - slic            SLIC Software Licensing Description Table test.
> - slit            SLIT System Locality Distance Information test.
> - spcr            SPCR Serial Port Console Redirection Table test.
> - spmi            SPMI Service Processor Management Interface Description Table test.
> - srat            SRAT System Resource Affinity Table test.
> - stao            STAO Status Override Table test.
> - syntaxcheck     Re-assemble DSDT and SSDTs to find syntax errors and warnings.
> - tcpa            TCPA Trusted Computing Platform Alliance Capabilities Table test.
> - tpm2            TPM2 Trusted Platform Module 2 test.
> - uefi            UEFI Data Table test.
> - uefibootpath    Sanity check for UEFI Boot Path Boot####.
> - version         Gather kernel system information.
> - virt            CPU Virtualisation Configuration test.
> - waet            WAET Windows ACPI Emulated Devices Table test.
> - wakealarm       ACPI Wakealarm tests.
> - wdat            WDAT Microsoft Hardware Watchdog Action Table test.
> - wmi             Extract and analyse Windows Management Instrumentation (WMI).
> - xenv            XENV Xen Environment Table tests.
> - xsdt            XSDT Extended System Description Table test.
> -
> -Interactive tests:
> - ac_adapter      Interactive ac_adapter power test.
> - battery         Battery tests.
> - brightness      Interactive LCD brightness test.
> - hotkey          Hotkey scan code tests.
> - lid             Interactive lid button test.
> - power_button    Interactive power_button button test.
> -
> -Power States tests:
> - s3              S3 suspend/resume test.
> - s3power         S3 power loss during suspend test (takes minimum of 10 minutes to run).
> - s4              S4 hibernate/resume test.
> -
> -Utilities:
> - acpidump        Dump ACPI tables.
> - cmosdump        Dump CMOS Memory.
> - crsdump         Dump ACPI _CRS resources.
> - ebdadump        Dump EBDA region.
> - esrtdump        Dump ESRT table.
> - gpedump         Dump GPEs.
> - memmapdump      Dump system memory map.
> - mpdump          Dump MultiProcessor Data.
> - plddump         Dump ACPI _PLD (Physical Device Location).
> - prsdump         Dump ACPI _PRS resources.
> - romdump         Dump ROM data.
> - uefidump        Dump UEFI variables.
> - uefivarinfo     UEFI variable info query.
> -
> -Unsafe tests:
> - uefirtauthvar   Authenticated variable tests.
> - uefirtmisc      UEFI miscellaneous runtime service interface tests.
> - uefirttime      UEFI Runtime service time interface tests.
> - uefirtvariable  UEFI Runtime service variable interface tests.
> -
> -UEFI tests:
> - csm             UEFI Compatibility Support Module test.
> - esrt            Sanity check UEFI ESRT Table.
> - securebootcert  UEFI secure boot test.
> - uefibootpath    Sanity check for UEFI Boot Path Boot####.
> - uefirtauthvar   Authenticated variable tests.
> - uefirtmisc      UEFI miscellaneous runtime service interface tests.
> - uefirttime      UEFI Runtime service time interface tests.
> - uefirtvariable  UEFI Runtime service variable interface tests.
> -
> -ACPI Spec Compliance tests:
> - fadt            FADT Fixed ACPI Description Table tests.
> - madt            MADT Multiple APIC Description Table (spec compliant).
> - rsdp            RSDP Root System Description Pointer test.
> diff --git a/fwts-test/arg-show-tests-0001/test-0001.sh b/fwts-test/arg-show-tests-0001/test-0001.sh
> index a62071c..ade98a3 100755
> --- a/fwts-test/arg-show-tests-0001/test-0001.sh
> +++ b/fwts-test/arg-show-tests-0001/test-0001.sh
> @@ -3,23 +3,21 @@
>  TEST="Test -s option"
>  NAME=test-0001.sh
>  TMPLOG=$TMP/arg-show-tests.log.$$
> +export FWTS_SHOW_LOGS="BASE"
>  
> -#
> -#  Non-x86 tests don't have WMI so skip this test
> -#
> -$FWTS --show-tests | grep wmi > /dev/null
> -if [ $? -eq 1 ]; then
> +# Dynamically create the log template per test
> +$FWTS show_logs &> /dev/null
> +if [ $? -ne 0 ]; then
>  	echo SKIP: $TEST, $NAME
>  	exit 77
>  fi
>  
> -cols=$(stty -a | tr ';' '\n' | grep "columns" | cut -d' ' -f3) 2> /dev/null
>  #
>  #  If we can't set the tty then we can't test
>  #
> -stty cols 80 2> /dev/null
> -if [ $? -eq 1 ]; then
> -        tset 2> /dev/null
> +stty cols 80 &> /dev/null
> +if [ $? -ne 0 ]; then
> +        tset &> /dev/null
>          echo SKIP: $TEST, $NAME
>          exit 77
>  fi
> @@ -32,8 +30,8 @@ else
>  	echo FAILED: $TEST, $NAME
>  fi
>  
> -stty cols 80 2> /dev/null
> -tset 2> /dev/null
> +stty cols 80 &> /dev/null
> +tset &> /dev/null
>  
>  rm $TMPLOG
>  exit $ret
> diff --git a/fwts-test/arg-show-tests-0001/test-0002.sh b/fwts-test/arg-show-tests-0001/test-0002.sh
> index f92fd8f..078f3e7 100755
> --- a/fwts-test/arg-show-tests-0001/test-0002.sh
> +++ b/fwts-test/arg-show-tests-0001/test-0002.sh
> @@ -3,27 +3,25 @@
>  TEST="Test --show-tests option"
>  NAME=test-0002.sh
>  TMPLOG=$TMP/arg-show-tests.log.$$
> +export FWTS_SHOW_LOGS="BASE"
>  
> -#
> -#  Non-x86 tests don't have WMI so skip this test
> -#
> -$FWTS --show-tests | grep wmi > /dev/null
> -if [ $? -eq 1 ]; then
> +# Dynamically create the log template per test
> +$FWTS show_logs &> /dev/null
> +if [ $? -ne 0 ]; then
>  	echo SKIP: $TEST, $NAME
>  	exit 77
>  fi
>  
> -cols=$(stty -a | tr ';' '\n' | grep "columns" | cut -d' ' -f3) 2> /dev/null
>  #
>  #  If we can't set the tty then we can't test
>  #
> -stty cols 80 2> /dev/null
> -if [ $? -eq 1 ]; then
> -        tset 2> /dev/null
> -        echo SKIP: $TEST, $NAME
> -        exit 77
> +stty cols 80 &> /dev/null
> +if [ $? -ne 0 ]; then
> +	tset &> /dev/null
> +	echo SKIP: $TEST, $NAME
> +	exit 77
>  fi
> -$FWTS -s > $TMPLOG
> +$FWTS --show-tests > $TMPLOG
>  diff $TMPLOG $FWTSTESTDIR/arg-show-tests-0001/arg-show-tests-0001.log >> $FAILURE_LOG
>  ret=$?
>  if [ $ret -eq 0 ]; then 
> @@ -32,8 +30,8 @@ else
>  	echo FAILED: $TEST, $NAME
>  fi
>  
> -stty cols 80 2> /dev/null
> -tset 2> /dev/null
> +stty cols 80 &> /dev/null
> +tset &> /dev/null
>  
>  rm $TMPLOG
>  exit $ret
> diff --git a/fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log b/fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
> deleted file mode 100644
> index 3eb5e3e..0000000
> --- a/fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
> +++ /dev/null
> @@ -1,930 +0,0 @@
> -ACPI tests:
> - acpiinfo        (3 tests):
> -  Determine Kernel ACPI version.
> -  Determine machine's ACPI version.
> -  Determine AML compiler.
> - acpitables      (1 test):
> -  Test ACPI headers.
> - apicinstance    (1 test):
> -  Test for single instance of APIC/MADT table.
> - asf             (1 test):
> -  ASF! Alert Standard Format Table test.
> - aspt            (1 test):
> -  ASPT Table test.
> - bert            (1 test):
> -  BERT Boot Error Record Table test.
> - bgrt            (1 test):
> -  BGRT Boot Graphics Resource Table test.
> - boot            (1 test):
> -  BOOT Table test.
> - checksum        (1 test):
> -  ACPI table checksum test.
> - cpep            (1 test):
> -  CPEP Corrected Platform Error Polling Table test.
> - csrt            (1 test):
> -  CSRT Core System Resource Table test.
> - cstates         (1 test):
> -  Test all CPUs C-states.
> - dbg2            (1 test):
> -  DBG2 (Debug Port Table 2) test.
> - dbgp            (1 test):
> -  DBGP (Debug Port) Table test.
> - dmar            (1 test):
> -  DMA Remapping test.
> - ecdt            (1 test):
> -  ECDT Embedded Controller Boot Resources Table test.
> - einj            (1 test):
> -  EINJ Error Injection Table test.
> - erst            (1 test):
> -  ERST Error Record Serialization Table test.
> - facs            (1 test):
> -  FACS Firmware ACPI Control Structure test.
> - fadt            (6 tests):
> -  ACPI FADT Description Table flag info.
> -  FADT checksum test.
> -  FADT revision test.
> -  ACPI FADT Description Table tests.
> -  Test FADT SCI_EN bit is enabled.
> -  Test FADT reset register.
> - fpdt            (1 test):
> -  FPDT Firmware Performance Data Table test.
> - gtdt            (1 test):
> -  GTDT Generic Timer Description Table test.
> - hest            (1 test):
> -  HEST Hardware Error Source Table test.
> - hpet            (4 tests):
> -  Test HPET base in kernel log.
> -  Test HPET base in HPET table.
> -  Test HPET base in DSDT and/or SSDT.
> -  Test HPET configuration.
> - iort            (1 test):
> -  IORT IO Remapping Table test.
> - lpit            (1 test):
> -  LPIT Low Power Idle Table test.
> - madt            (5 tests):
> -  MADT checksum test.
> -  MADT revision test.
> -  MADT architecture minimum revision test.
> -  MADT flags field reserved bits test.
> -  MADT subtable tests.
> - mcfg            (2 tests):
> -  Validate MCFG table.
> -  Validate MCFG PCI config space.
> - mchi            (1 test):
> -  MCHI Management Controller Host Interface Table test.
> - method          (191 tests):
> -  Test Method Names.
> -  Test _AEI.
> -  Test _EVT (Event Method).
> -  Test _DLM (Device Lock Mutex).
> -  Test _PIC (Inform AML of Interrupt Model).
> -  Test _CID (Compatible ID).
> -  Test _DDN (DOS Device Name).
> -  Test _HID (Hardware ID).
> -  Test _HRV (Hardware Revision Number).
> -  Test _MLS (Multiple Language String).
> -  Test _PLD (Physical Device Location).
> -  Test _SUB (Subsystem ID).
> -  Test _SUN (Slot User Number).
> -  Test _STR (String).
> -  Test _UID (Unique ID).
> -  Test _CDM (Clock Domain).
> -  Test _CRS (Current Resource Settings).
> -  Test _DSD (Device Specific Data).
> -  Test _DIS (Disable).
> -  Test _DMA (Direct Memory Access).
> -  Test _FIX (Fixed Register Resource Provider).
> -  Test _GSB (Global System Interrupt Base).
> -  Test _HPP (Hot Plug Parameters).
> -  Test _PRS (Possible Resource Settings).
> -  Test _PRT (PCI Routing Table).
> -  Test _PXM (Proximity).
> -  Test _CCA (Cache Coherency Attribute).
> -  Test _EDL (Eject Device List).
> -  Test _EJD (Ejection Dependent Device).
> -  Test _EJ0 (Eject).
> -  Test _EJ1 (Eject).
> -  Test _EJ2 (Eject).
> -  Test _EJ3 (Eject).
> -  Test _EJ4 (Eject).
> -  Test _LCK (Lock).
> -  Test _RMV (Remove).
> -  Test _STA (Status).
> -  Test _DEP (Operational Region Dependencies).
> -  Test _BDN (BIOS Dock Name).
> -  Test _BBN (Base Bus Number).
> -  Test _DCK (Dock).
> -  Test _INI (Initialize).
> -  Test _GLK (Global Lock).
> -  Test _SEG (Segment).
> -  Test _OFF (Set resource off).
> -  Test _ON_ (Set resource on).
> -  Test _DSW (Device Sleep Wake).
> -  Test _IRC (In Rush Current).
> -  Test _PRE (Power Resources for Enumeration).
> -  Test _PR0 (Power Resources for D0).
> -  Test _PR1 (Power Resources for D1).
> -  Test _PR2 (Power Resources for D2).
> -  Test _PR3 (Power Resources for D3).
> -  Test _PRW (Power Resources for Wake).
> -  Test _PS0 (Power State 0).
> -  Test _PS1 (Power State 1).
> -  Test _PS2 (Power State 2).
> -  Test _PS3 (Power State 3).
> -  Test _PSC (Power State Current).
> -  Test _PSE (Power State for Enumeration).
> -  Test _PSW (Power State Wake).
> -  Test _S1D (S1 Device State).
> -  Test _S2D (S2 Device State).
> -  Test _S3D (S3 Device State).
> -  Test _S4D (S4 Device State).
> -  Test _S0W (S0 Device Wake State).
> -  Test _S1W (S1 Device Wake State).
> -  Test _S2W (S2 Device Wake State).
> -  Test _S3W (S3 Device Wake State).
> -  Test _S4W (S4 Device Wake State).
> -  Test _RST (Device Reset).
> -  Test _PRR (Power Resource for Reset).
> -  Test _S0_ (S0 System State).
> -  Test _S1_ (S1 System State).
> -  Test _S2_ (S2 System State).
> -  Test _S3_ (S3 System State).
> -  Test _S4_ (S4 System State).
> -  Test _S5_ (S5 System State).
> -  Test _SWS (System Wake Source).
> -  Test _PSS (Performance Supported States).
> -  Test _CPC (Continuous Performance Control).
> -  Test _CSD (C State Dependencies).
> -  Test _CST (C States).
> -  Test _PCT (Performance Control).
> -  Test _PDL (P-State Depth Limit).
> -  Test _PPC (Performance Present Capabilities).
> -  Test _PPE (Polling for Platform Error).
> -  Test _PSD (Power State Dependencies).
> -  Test _PTC (Processor Throttling Control).
> -  Test _TDL (T-State Depth Limit).
> -  Test _TPC (Throttling Present Capabilities).
> -  Test _TSD (Throttling State Dependencies).
> -  Test _TSS (Throttling Supported States).
> -  Test _LPI (Low Power Idle States).
> -  Test _RDI (Resource Dependencies for Idle).
> -  Test _PUR (Processor Utilization Request).
> -  Test _MSG (Message).
> -  Test _SST (System Status).
> -  Test _ALC (Ambient Light Colour Chromaticity).
> -  Test _ALI (Ambient Light Illuminance).
> -  Test _ALT (Ambient Light Temperature).
> -  Test _ALP (Ambient Light Polling).
> -  Test _ALR (Ambient Light Response).
> -  Test _LID (Lid Status).
> -  Test _GTF (Get Task File).
> -  Test _GTM (Get Timing Mode).
> -  Test _MBM (Memory Bandwidth Monitoring Data).
> -  Test _UPC (USB Port Capabilities).
> -  Test _UPD (User Presence Detect).
> -  Test _UPP (User Presence Polling).
> -  Test _GCP (Get Capabilities).
> -  Test _GRT (Get Real Time).
> -  Test _GWS (Get Wake Status).
> -  Test _CWS (Clear Wake Status).
> -  Test _STP (Set Expired Timer Wake Policy).
> -  Test _STV (Set Timer Value).
> -  Test _TIP (Expired Timer Wake Policy).
> -  Test _TIV (Timer Values).
> -  Test _SBS (Smart Battery Subsystem).
> -  Test _BCT (Battery Charge Time).
> -  Test _BIF (Battery Information).
> -  Test _BIX (Battery Information Extended).
> -  Test _BMA (Battery Measurement Averaging).
> -  Test _BMC (Battery Maintenance Control).
> -  Test _BMD (Battery Maintenance Data).
> -  Test _BMS (Battery Measurement Sampling Time).
> -  Test _BST (Battery Status).
> -  Test _BTP (Battery Trip Point).
> -  Test _BTH (Battery Throttle Limit).
> -  Test _BTM (Battery Time).
> -  Test _PCL (Power Consumer List).
> -  Test _PIF (Power Source Information).
> -  Test _PRL (Power Source Redundancy List).
> -  Test _PSR (Power Source).
> -  Test _GAI (Get Averaging Level).
> -  Test _GHL (Get Harware Limit).
> -  Test _PMC (Power Meter Capabilities).
> -  Test _PMD (Power Meter Devices).
> -  Test _PMM (Power Meter Measurement).
> -  Test _WPC (Wireless Power Calibration).
> -  Test _WPP (Wireless Power Polling).
> -  Test _FIF (Fan Information).
> -  Test _FPS (Fan Performance States).
> -  Test _FSL (Fan Set Level).
> -  Test _FST (Fan Status).
> -  Test _ACx (Active Cooling).
> -  Test _ART (Active Cooling Relationship Table).
> -  Test _CRT (Critical Trip Point).
> -  Test _CR3 (Warm/Standby Temperature).
> -  Test _DTI (Device Temperature Indication).
> -  Test _HOT (Hot Temperature).
> -  Test _MTL (Minimum Throttle Limit).
> -  Test _NTT (Notification Temp Threshold).
> -  Test _PSL (Passive List).
> -  Test _PSV (Passive Temp).
> -  Test _RTV (Relative Temp Values).
> -  Test _SCP (Set Cooling Policy).
> -  Test _TC1 (Thermal Constant 1).
> -  Test _TC2 (Thermal Constant 2).
> -  Test _TFP (Thermal fast Sampling Period).
> -  Test _TMP (Thermal Zone Current Temp).
> -  Test _TPT (Trip Point Temperature).
> -  Test _TRT (Thermal Relationship Table).
> -  Test _TSN (Thermal Sensor Device).
> -  Test _TSP (Thermal Sampling Period).
> -  Test _TST (Temperature Sensor Threshold).
> -  Test _TZD (Thermal Zone Devices).
> -  Test _TZM (Thermal Zone member).
> -  Test _TZP (Thermal Zone Polling).
> -  Test _GPE (General Purpose Events).
> -  Test _EC_ (EC Offset Query).
> -  Test _PTS (Prepare to Sleep).
> -  Test _TTS (Transition to State).
> -  Test _WAK (System Wake).
> -  Test _ADR (Return Unique ID for Device).
> -  Test _BCL (Query List of Brightness Control Levels Supported).
> -  Test _BCM (Set Brightness Level).
> -  Test _BQC (Brightness Query Current Level).
> -  Test _DCS (Return the Status of Output Device).
> -  Test _DDC (Return the EDID for this Device).
> -  Test _DSS (Device Set State).
> -  Test _DGS (Query Graphics State).
> -  Test _DOD (Enumerate All Devices Attached to Display Adapter).
> -  Test _DOS (Enable/Disable Output Switching).
> -  Test _GPD (Get POST Device).
> -  Test _ROM (Get ROM Data).
> -  Test _SPD (Set POST Device).
> -  Test _VPO (Video POST Options).
> -  Test _CBA (Configuration Base Address).
> -  Test _IFT (IPMI Interface Type).
> -  Test _SRV (IPMI Interface Revision).
> - msct            (1 test):
> -  MSCT Maximum System Characteristics Table test.
> - msdm            (1 test):
> -  MSDM Microsoft Data Management Table test.
> - pcc             (1 test):
> -  Processor Clocking Control (PCC) test.
> - rsdp            (1 test):
> -  RSDP Root System Description Pointer test.
> - rsdt            (1 test):
> -  RSDT Root System Description Table test.
> - sbst            (1 test):
> -  SBST Smart Battery Specificiation Table test.
> - slic            (1 test):
> -  SLIC Software Licensing Description Table test.
> - slit            (1 test):
> -  SLIT System Locality Distance Information test.
> - spcr            (1 test):
> -  SPCR Serial Port Console Redirection Table test.
> - spmi            (1 test):
> -  SPMI Service Processor Management Interface Description Table test.
> - srat            (1 test):
> -  SRAT System Resource Affinity Table test.
> - stao            (1 test):
> -  STAO Status Override Table test.
> - tcpa            (1 test):
> -  Validate TCPA table.
> - tpm2            (1 test):
> -  Validate TPM2 table.
> - uefi            (1 test):
> -  UEFI Data Table test.
> - waet            (1 test):
> -  Windows ACPI Emulated Devices Table test.
> - wdat            (1 test):
> -  WDAT Microsoft Hardware Watchdog Action Table test.
> - wmi             (1 test):
> -  Windows Management Instrumentation test.
> - xenv            (1 test):
> -  Validate XENV table.
> - xsdt            (1 test):
> -  XSDT Extended System Description Table test.
> -
> -Batch tests:
> - acpiinfo        (3 tests):
> -  Determine Kernel ACPI version.
> -  Determine machine's ACPI version.
> -  Determine AML compiler.
> - acpitables      (1 test):
> -  Test ACPI headers.
> - apicedge        (1 test):
> -  Legacy and PCI Interrupt Edge/Level trigger tests.
> - apicinstance    (1 test):
> -  Test for single instance of APIC/MADT table.
> - asf             (1 test):
> -  ASF! Alert Standard Format Table test.
> - aspm            (2 tests):
> -  PCIe ASPM ACPI test.
> -  PCIe ASPM registers test.
> - aspt            (1 test):
> -  ASPT Table test.
> - autobrightness  (2 tests):
> -  Test for maximum and actual brightness.
> -  Change actual brightness.
> - bert            (1 test):
> -  BERT Boot Error Record Table test.
> - bgrt            (1 test):
> -  BGRT Boot Graphics Resource Table test.
> - bios32          (1 test):
> -  BIOS32 Service Directory test.
> - bios_info       (1 test):
> -  Gather BIOS DMI information
> - bmc_info        (1 test):
> -  BMC Info
> - boot            (1 test):
> -  BOOT Table test.
> - checksum        (1 test):
> -  ACPI table checksum test.
> - cpep            (1 test):
> -  CPEP Corrected Platform Error Polling Table test.
> - cpufreq         (7 tests):
> -  CPU frequency table consistency
> -  CPU frequency table duplicates
> -  CPU frequency firmware limits
> -  CPU frequency claimed maximum
> -  CPU frequency SW_ANY control
> -  CPU frequency SW_ALL control
> -  CPU frequency performance tests.
> - crs             (1 test):
> -  Test PCI host bridge configuration using _CRS.
> - csm             (1 test):
> -  UEFI Compatibility Support Module test.
> - csrt            (1 test):
> -  CSRT Core System Resource Table test.
> - cstates         (1 test):
> -  Test all CPUs C-states.
> - dbg2            (1 test):
> -  DBG2 (Debug Port Table 2) test.
> - dbgp            (1 test):
> -  DBGP (Debug Port) Table test.
> - dmar            (1 test):
> -  DMA Remapping test.
> - dmicheck        (3 tests):
> -  Find and test SMBIOS Table Entry Points.
> -  Test DMI/SMBIOS tables for errors.
> -  Test DMI/SMBIOS3 tables for errors.
> - dt_base         (3 tests):
> -  Check device tree presence
> -  Check device tree baseline validity
> -  Check device tree warnings
> - dt_sysinfo      (3 tests):
> -  Check model property
> -  Check system-id property
> -  Check OpenPOWER Reference compatible
> - ebda            (1 test):
> -  Test EBDA is reserved in E820 table.
> - ecdt            (1 test):
> -  ECDT Embedded Controller Boot Resources Table test.
> - einj            (1 test):
> -  EINJ Error Injection Table test.
> - erst            (1 test):
> -  ERST Error Record Serialization Table test.
> - facs            (1 test):
> -  FACS Firmware ACPI Control Structure test.
> - fadt            (6 tests):
> -  ACPI FADT Description Table flag info.
> -  FADT checksum test.
> -  FADT revision test.
> -  ACPI FADT Description Table tests.
> -  Test FADT SCI_EN bit is enabled.
> -  Test FADT reset register.
> - fan             (2 tests):
> -  Test fan status.
> -  Load system, check CPU fan status.
> - fpdt            (1 test):
> -  FPDT Firmware Performance Data Table test.
> - gtdt            (1 test):
> -  GTDT Generic Timer Description Table test.
> - hda_audio       (1 test):
> -  HDA Audio Pin Configuration test.
> - hest            (1 test):
> -  HEST Hardware Error Source Table test.
> - hpet            (4 tests):
> -  Test HPET base in kernel log.
> -  Test HPET base in HPET table.
> -  Test HPET base in DSDT and/or SSDT.
> -  Test HPET configuration.
> - iort            (1 test):
> -  IORT IO Remapping Table test.
> - klog            (1 test):
> -  Kernel log error check.
> - lpit            (1 test):
> -  LPIT Low Power Idle Table test.
> - madt            (5 tests):
> -  MADT checksum test.
> -  MADT revision test.
> -  MADT architecture minimum revision test.
> -  MADT flags field reserved bits test.
> -  MADT subtable tests.
> - maxfreq         (1 test):
> -  Maximum CPU frequency test.
> - maxreadreq      (1 test):
> -  Test firmware settings MaxReadReq for PCI Express devices.
> - mcfg            (2 tests):
> -  Validate MCFG table.
> -  Validate MCFG PCI config space.
> - mchi            (1 test):
> -  MCHI Management Controller Host Interface Table test.
> - method          (191 tests):
> -  Test Method Names.
> -  Test _AEI.
> -  Test _EVT (Event Method).
> -  Test _DLM (Device Lock Mutex).
> -  Test _PIC (Inform AML of Interrupt Model).
> -  Test _CID (Compatible ID).
> -  Test _DDN (DOS Device Name).
> -  Test _HID (Hardware ID).
> -  Test _HRV (Hardware Revision Number).
> -  Test _MLS (Multiple Language String).
> -  Test _PLD (Physical Device Location).
> -  Test _SUB (Subsystem ID).
> -  Test _SUN (Slot User Number).
> -  Test _STR (String).
> -  Test _UID (Unique ID).
> -  Test _CDM (Clock Domain).
> -  Test _CRS (Current Resource Settings).
> -  Test _DSD (Device Specific Data).
> -  Test _DIS (Disable).
> -  Test _DMA (Direct Memory Access).
> -  Test _FIX (Fixed Register Resource Provider).
> -  Test _GSB (Global System Interrupt Base).
> -  Test _HPP (Hot Plug Parameters).
> -  Test _PRS (Possible Resource Settings).
> -  Test _PRT (PCI Routing Table).
> -  Test _PXM (Proximity).
> -  Test _CCA (Cache Coherency Attribute).
> -  Test _EDL (Eject Device List).
> -  Test _EJD (Ejection Dependent Device).
> -  Test _EJ0 (Eject).
> -  Test _EJ1 (Eject).
> -  Test _EJ2 (Eject).
> -  Test _EJ3 (Eject).
> -  Test _EJ4 (Eject).
> -  Test _LCK (Lock).
> -  Test _RMV (Remove).
> -  Test _STA (Status).
> -  Test _DEP (Operational Region Dependencies).
> -  Test _BDN (BIOS Dock Name).
> -  Test _BBN (Base Bus Number).
> -  Test _DCK (Dock).
> -  Test _INI (Initialize).
> -  Test _GLK (Global Lock).
> -  Test _SEG (Segment).
> -  Test _OFF (Set resource off).
> -  Test _ON_ (Set resource on).
> -  Test _DSW (Device Sleep Wake).
> -  Test _IRC (In Rush Current).
> -  Test _PRE (Power Resources for Enumeration).
> -  Test _PR0 (Power Resources for D0).
> -  Test _PR1 (Power Resources for D1).
> -  Test _PR2 (Power Resources for D2).
> -  Test _PR3 (Power Resources for D3).
> -  Test _PRW (Power Resources for Wake).
> -  Test _PS0 (Power State 0).
> -  Test _PS1 (Power State 1).
> -  Test _PS2 (Power State 2).
> -  Test _PS3 (Power State 3).
> -  Test _PSC (Power State Current).
> -  Test _PSE (Power State for Enumeration).
> -  Test _PSW (Power State Wake).
> -  Test _S1D (S1 Device State).
> -  Test _S2D (S2 Device State).
> -  Test _S3D (S3 Device State).
> -  Test _S4D (S4 Device State).
> -  Test _S0W (S0 Device Wake State).
> -  Test _S1W (S1 Device Wake State).
> -  Test _S2W (S2 Device Wake State).
> -  Test _S3W (S3 Device Wake State).
> -  Test _S4W (S4 Device Wake State).
> -  Test _RST (Device Reset).
> -  Test _PRR (Power Resource for Reset).
> -  Test _S0_ (S0 System State).
> -  Test _S1_ (S1 System State).
> -  Test _S2_ (S2 System State).
> -  Test _S3_ (S3 System State).
> -  Test _S4_ (S4 System State).
> -  Test _S5_ (S5 System State).
> -  Test _SWS (System Wake Source).
> -  Test _PSS (Performance Supported States).
> -  Test _CPC (Continuous Performance Control).
> -  Test _CSD (C State Dependencies).
> -  Test _CST (C States).
> -  Test _PCT (Performance Control).
> -  Test _PDL (P-State Depth Limit).
> -  Test _PPC (Performance Present Capabilities).
> -  Test _PPE (Polling for Platform Error).
> -  Test _PSD (Power State Dependencies).
> -  Test _PTC (Processor Throttling Control).
> -  Test _TDL (T-State Depth Limit).
> -  Test _TPC (Throttling Present Capabilities).
> -  Test _TSD (Throttling State Dependencies).
> -  Test _TSS (Throttling Supported States).
> -  Test _LPI (Low Power Idle States).
> -  Test _RDI (Resource Dependencies for Idle).
> -  Test _PUR (Processor Utilization Request).
> -  Test _MSG (Message).
> -  Test _SST (System Status).
> -  Test _ALC (Ambient Light Colour Chromaticity).
> -  Test _ALI (Ambient Light Illuminance).
> -  Test _ALT (Ambient Light Temperature).
> -  Test _ALP (Ambient Light Polling).
> -  Test _ALR (Ambient Light Response).
> -  Test _LID (Lid Status).
> -  Test _GTF (Get Task File).
> -  Test _GTM (Get Timing Mode).
> -  Test _MBM (Memory Bandwidth Monitoring Data).
> -  Test _UPC (USB Port Capabilities).
> -  Test _UPD (User Presence Detect).
> -  Test _UPP (User Presence Polling).
> -  Test _GCP (Get Capabilities).
> -  Test _GRT (Get Real Time).
> -  Test _GWS (Get Wake Status).
> -  Test _CWS (Clear Wake Status).
> -  Test _STP (Set Expired Timer Wake Policy).
> -  Test _STV (Set Timer Value).
> -  Test _TIP (Expired Timer Wake Policy).
> -  Test _TIV (Timer Values).
> -  Test _SBS (Smart Battery Subsystem).
> -  Test _BCT (Battery Charge Time).
> -  Test _BIF (Battery Information).
> -  Test _BIX (Battery Information Extended).
> -  Test _BMA (Battery Measurement Averaging).
> -  Test _BMC (Battery Maintenance Control).
> -  Test _BMD (Battery Maintenance Data).
> -  Test _BMS (Battery Measurement Sampling Time).
> -  Test _BST (Battery Status).
> -  Test _BTP (Battery Trip Point).
> -  Test _BTH (Battery Throttle Limit).
> -  Test _BTM (Battery Time).
> -  Test _PCL (Power Consumer List).
> -  Test _PIF (Power Source Information).
> -  Test _PRL (Power Source Redundancy List).
> -  Test _PSR (Power Source).
> -  Test _GAI (Get Averaging Level).
> -  Test _GHL (Get Harware Limit).
> -  Test _PMC (Power Meter Capabilities).
> -  Test _PMD (Power Meter Devices).
> -  Test _PMM (Power Meter Measurement).
> -  Test _WPC (Wireless Power Calibration).
> -  Test _WPP (Wireless Power Polling).
> -  Test _FIF (Fan Information).
> -  Test _FPS (Fan Performance States).
> -  Test _FSL (Fan Set Level).
> -  Test _FST (Fan Status).
> -  Test _ACx (Active Cooling).
> -  Test _ART (Active Cooling Relationship Table).
> -  Test _CRT (Critical Trip Point).
> -  Test _CR3 (Warm/Standby Temperature).
> -  Test _DTI (Device Temperature Indication).
> -  Test _HOT (Hot Temperature).
> -  Test _MTL (Minimum Throttle Limit).
> -  Test _NTT (Notification Temp Threshold).
> -  Test _PSL (Passive List).
> -  Test _PSV (Passive Temp).
> -  Test _RTV (Relative Temp Values).
> -  Test _SCP (Set Cooling Policy).
> -  Test _TC1 (Thermal Constant 1).
> -  Test _TC2 (Thermal Constant 2).
> -  Test _TFP (Thermal fast Sampling Period).
> -  Test _TMP (Thermal Zone Current Temp).
> -  Test _TPT (Trip Point Temperature).
> -  Test _TRT (Thermal Relationship Table).
> -  Test _TSN (Thermal Sensor Device).
> -  Test _TSP (Thermal Sampling Period).
> -  Test _TST (Temperature Sensor Threshold).
> -  Test _TZD (Thermal Zone Devices).
> -  Test _TZM (Thermal Zone member).
> -  Test _TZP (Thermal Zone Polling).
> -  Test _GPE (General Purpose Events).
> -  Test _EC_ (EC Offset Query).
> -  Test _PTS (Prepare to Sleep).
> -  Test _TTS (Transition to State).
> -  Test _WAK (System Wake).
> -  Test _ADR (Return Unique ID for Device).
> -  Test _BCL (Query List of Brightness Control Levels Supported).
> -  Test _BCM (Set Brightness Level).
> -  Test _BQC (Brightness Query Current Level).
> -  Test _DCS (Return the Status of Output Device).
> -  Test _DDC (Return the EDID for this Device).
> -  Test _DSS (Device Set State).
> -  Test _DGS (Query Graphics State).
> -  Test _DOD (Enumerate All Devices Attached to Display Adapter).
> -  Test _DOS (Enable/Disable Output Switching).
> -  Test _GPD (Get POST Device).
> -  Test _ROM (Get ROM Data).
> -  Test _SPD (Set POST Device).
> -  Test _VPO (Video POST Options).
> -  Test _CBA (Configuration Base Address).
> -  Test _IFT (IPMI Interface Type).
> -  Test _SRV (IPMI Interface Revision).
> - microcode       (1 test):
> -  Test for most recent microcode being loaded.
> - mpcheck         (9 tests):
> -  Test MP header.
> -  Test MP CPU entries.
> -  Test MP Bus entries.
> -  Test MP IO APIC entries.
> -  Test MP IO Interrupt entries.
> -  Test MP Local Interrupt entries.
> -  Test MP System Address entries.
> -  Test MP Bus Hierarchy entries.
> -  Test MP Compatible Bus Address Space entries.
> - msct            (1 test):
> -  MSCT Maximum System Characteristics Table test.
> - msdm            (1 test):
> -  MSDM Microsoft Data Management Table test.
> - msr             (5 tests):
> -  Test CPU generic MSRs.
> -  Test CPU specific model MSRs.
> -  Test all P State Ratios.
> -  Test C1 and C3 autodemotion.
> -  Test SMRR MSR registers.
> - mtrr            (3 tests):
> -  Validate the kernel MTRR IOMEM setup.
> -  Validate the MTRR setup across all processors.
> -  Test for AMD MtrrFixDramModEn being cleared by the BIOS.
> - nx              (3 tests):
> -  Test CPU NX capability.
> -  Test all CPUs have same BIOS set NX flag.
> -  Test all CPUs have same msr setting in MSR 0x1a0.
> - olog            (1 test):
> -  OLOG scan and analysis checks results.
> - oops            (1 test):
> -  Kernel log oops check.
> - osilinux        (1 test):
> -  Disassemble DSDT to check for _OSI("Linux").
> - pcc             (1 test):
> -  Processor Clocking Control (PCC) test.
> - pciirq          (1 test):
> -  PCI IRQ Routing Table test.
> - pnp             (1 test):
> -  PnP BIOS Support Installation structure test.
> - prd_info        (1 test):
> -  OPAL Processor Recovery Diagnostics Info
> - rsdp            (1 test):
> -  RSDP Root System Description Pointer test.
> - rsdt            (1 test):
> -  RSDT Root System Description Table test.
> - sbst            (1 test):
> -  SBST Smart Battery Specificiation Table test.
> - securebootcert  (1 test):
> -  UEFI secure boot test.
> - slic            (1 test):
> -  SLIC Software Licensing Description Table test.
> - slit            (1 test):
> -  SLIT System Locality Distance Information test.
> - spcr            (1 test):
> -  SPCR Serial Port Console Redirection Table test.
> - spmi            (1 test):
> -  SPMI Service Processor Management Interface Description Table test.
> - srat            (1 test):
> -  SRAT System Resource Affinity Table test.
> - stao            (1 test):
> -  STAO Status Override Table test.
> - syntaxcheck     (1 test):
> -  Disassemble and reassemble DSDT and SSDTs.
> - tcpa            (1 test):
> -  Validate TCPA table.
> - tpm2            (1 test):
> -  Validate TPM2 table.
> - uefi            (1 test):
> -  UEFI Data Table test.
> - uefibootpath    (1 test):
> -  Test UEFI Boot Path Boot####.
> - version         (4 tests):
> -  Gather kernel signature.
> -  Gather kernel system information.
> -  Gather kernel boot command line.
> -  Gather ACPI driver version.
> - virt            (1 test):
> -  CPU Virtualisation Configuration test.
> - waet            (1 test):
> -  Windows ACPI Emulated Devices Table test.
> - wakealarm       (5 tests):
> -  Test existence of RTC with alarm interface.
> -  Trigger wakealarm for 1 seconds in the future.
> -  Test if wakealarm is fired.
> -  Multiple wakealarm firing tests.
> -  Reset wakealarm time.
> - wdat            (1 test):
> -  WDAT Microsoft Hardware Watchdog Action Table test.
> - wmi             (1 test):
> -  Windows Management Instrumentation test.
> - xenv            (1 test):
> -  Validate XENV table.
> - xsdt            (1 test):
> -  XSDT Extended System Description Table test.
> -
> -Interactive tests:
> - ac_adapter      (3 tests):
> -  Test ACPI ac_adapter state.
> -  Test ac_adapter initial on-line state.
> -  Test ac_adapter state changes.
> - battery         (1 test):
> -  Battery test.
> - brightness      (3 tests):
> -  Observe all brightness changes.
> -  Observe min, max brightness changes.
> -  Test brightness hotkeys.
> - hotkey          (1 test):
> -  Hotkey keypress checks.
> - lid             (3 tests):
> -  Test LID buttons report open correctly.
> -  Test LID buttons on a single open/close.
> -  Test LID buttons on multiple open/close events.
> - power_button    (1 test):
> -  Test press of power button and ACPI event.
> -
> -Power States tests:
> - s3              (1 test):
> -  S3 suspend/resume test.
> - s3power         (1 test):
> -  S3 power loss during suspend test.
> - s4              (1 test):
> -  S4 hibernate/resume test.
> -
> -Utilities:
> - acpidump        (1 test):
> -  Dump ACPI tables.
> - cmosdump        (1 test):
> -  Dump CMOS Memory.
> - crsdump         (1 test):
> -  Dump ACPI _CRS (Current Resource Settings).
> - ebdadump        (1 test):
> -  Dump EBDA region.
> - esrtdump        (1 test):
> -  Dump ESRT Table.
> - gpedump         (1 test):
> -  Dump GPEs.
> - memmapdump      (1 test):
> -  Dump system memory map.
> - mpdump          (1 test):
> -  Dump Multi Processor Data.
> - plddump         (1 test):
> -  Dump ACPI _PLD (Physical Device Location).
> - prsdump         (1 test):
> -  Dump ACPI _PRS (Possible Resource Settings).
> - romdump         (1 test):
> -  Dump ROM data.
> - uefidump        (1 test):
> -  Dump UEFI Variables.
> - uefivarinfo     (1 test):
> -  UEFI variable info query.
> -
> -Unsafe tests:
> - uefirtauthvar   (12 tests):
> -  Create authenticated variable test.
> -  Authenticated variable test with the same authenticated variable.
> -  Authenticated variable test with another valid authenticated variable.
> -  Append authenticated variable test.
> -  Update authenticated variable test.
> -  Authenticated variable test with old authenticated variable.
> -  Delete authenticated variable test.
> -  Authenticated variable test with invalid modified data.
> -  Authenticated variable test with invalid modified timestamp.
> -  Authenticated variable test with different guid.
> -  Authenticated variable test with invalid attributes.
> -  Set and delete authenticated variable created by different key test.
> - uefirtmisc      (3 tests):
> -  Test for UEFI miscellaneous runtime service interfaces.
> -  Stress test for UEFI miscellaneous runtime service interfaces.
> -  Test GetNextHighMonotonicCount with invalid NULL parameter.
> - uefirttime      (35 tests):
> -  Test UEFI RT service get time interface.
> -  Test UEFI RT service get time interface, NULL time parameter.
> -  Test UEFI RT service get time interface, NULL time and NULL capabilties parameters.
> -  Test UEFI RT service set time interface.
> -  Test UEFI RT service set time interface, invalid year 1899.
> -  Test UEFI RT service set time interface, invalid year 10000.
> -  Test UEFI RT service set time interface, invalid month 0.
> -  Test UEFI RT service set time interface, invalid month 13.
> -  Test UEFI RT service set time interface, invalid day 0.
> -  Test UEFI RT service set time interface, invalid day 32.
> -  Test UEFI RT service set time interface, invalid hour 24.
> -  Test UEFI RT service set time interface, invalid minute 60.
> -  Test UEFI RT service set time interface, invalid second 60.
> -  Test UEFI RT service set time interface, invalid nanosecond 1000000000.
> -  Test UEFI RT service set time interface, invalid timezone -1441.
> -  Test UEFI RT service set time interface, invalid timezone 1441.
> -  Test UEFI RT service get wakeup time interface.
> -  Test UEFI RT service get wakeup time interface, NULL enabled parameter.
> -  Test UEFI RT service get wakeup time interface, NULL pending parameter.
> -  Test UEFI RT service get wakeup time interface, NULL time parameter.
> -  Test UEFI RT service get wakeup time interface, NULL enabled, pending and time parameters.
> -  Test UEFI RT service set wakeup time interface.
> -  Test UEFI RT service set wakeup time interface, NULL time parameter.
> -  Test UEFI RT service set wakeup time interface, invalid year 1899.
> -  Test UEFI RT service set wakeup time interface, invalid year 10000.
> -  Test UEFI RT service set wakeup time interface, invalid month 0.
> -  Test UEFI RT service set wakeup time interface, invalid month 13.
> -  Test UEFI RT service set wakeup time interface, invalid day 0.
> -  Test UEFI RT service set wakeup time interface, invalid day 32.
> -  Test UEFI RT service set wakeup time interface, invalid hour 24.
> -  Test UEFI RT service set wakeup time interface, invalid minute 60.
> -  Test UEFI RT service set wakeup time interface, invalid second 60.
> -  Test UEFI RT service set wakeup time interface, invalid nanosecond 1000000000.
> -  Test UEFI RT service set wakeup time interface, invalid timezone -1441.
> -  Test UEFI RT service set wakeup time interface, invalid timezone 1441.
> - uefirtvariable  (8 tests):
> -  Test UEFI RT service get variable interface.
> -  Test UEFI RT service get next variable name interface.
> -  Test UEFI RT service set variable interface.
> -  Test UEFI RT service query variable info interface.
> -  Test UEFI RT service variable interface stress test.
> -  Test UEFI RT service set variable interface stress test.
> -  Test UEFI RT service query variable info interface stress test.
> -  Test UEFI RT service get variable interface, invalid parameters.
> -
> -UEFI tests:
> - csm             (1 test):
> -  UEFI Compatibility Support Module test.
> - esrt            (1 test):
> -  Sanity check UEFI ESRT Table.
> - securebootcert  (1 test):
> -  UEFI secure boot test.
> - uefibootpath    (1 test):
> -  Test UEFI Boot Path Boot####.
> - uefirtauthvar   (12 tests):
> -  Create authenticated variable test.
> -  Authenticated variable test with the same authenticated variable.
> -  Authenticated variable test with another valid authenticated variable.
> -  Append authenticated variable test.
> -  Update authenticated variable test.
> -  Authenticated variable test with old authenticated variable.
> -  Delete authenticated variable test.
> -  Authenticated variable test with invalid modified data.
> -  Authenticated variable test with invalid modified timestamp.
> -  Authenticated variable test with different guid.
> -  Authenticated variable test with invalid attributes.
> -  Set and delete authenticated variable created by different key test.
> - uefirtmisc      (3 tests):
> -  Test for UEFI miscellaneous runtime service interfaces.
> -  Stress test for UEFI miscellaneous runtime service interfaces.
> -  Test GetNextHighMonotonicCount with invalid NULL parameter.
> - uefirttime      (35 tests):
> -  Test UEFI RT service get time interface.
> -  Test UEFI RT service get time interface, NULL time parameter.
> -  Test UEFI RT service get time interface, NULL time and NULL capabilties parameters.
> -  Test UEFI RT service set time interface.
> -  Test UEFI RT service set time interface, invalid year 1899.
> -  Test UEFI RT service set time interface, invalid year 10000.
> -  Test UEFI RT service set time interface, invalid month 0.
> -  Test UEFI RT service set time interface, invalid month 13.
> -  Test UEFI RT service set time interface, invalid day 0.
> -  Test UEFI RT service set time interface, invalid day 32.
> -  Test UEFI RT service set time interface, invalid hour 24.
> -  Test UEFI RT service set time interface, invalid minute 60.
> -  Test UEFI RT service set time interface, invalid second 60.
> -  Test UEFI RT service set time interface, invalid nanosecond 1000000000.
> -  Test UEFI RT service set time interface, invalid timezone -1441.
> -  Test UEFI RT service set time interface, invalid timezone 1441.
> -  Test UEFI RT service get wakeup time interface.
> -  Test UEFI RT service get wakeup time interface, NULL enabled parameter.
> -  Test UEFI RT service get wakeup time interface, NULL pending parameter.
> -  Test UEFI RT service get wakeup time interface, NULL time parameter.
> -  Test UEFI RT service get wakeup time interface, NULL enabled, pending and time parameters.
> -  Test UEFI RT service set wakeup time interface.
> -  Test UEFI RT service set wakeup time interface, NULL time parameter.
> -  Test UEFI RT service set wakeup time interface, invalid year 1899.
> -  Test UEFI RT service set wakeup time interface, invalid year 10000.
> -  Test UEFI RT service set wakeup time interface, invalid month 0.
> -  Test UEFI RT service set wakeup time interface, invalid month 13.
> -  Test UEFI RT service set wakeup time interface, invalid day 0.
> -  Test UEFI RT service set wakeup time interface, invalid day 32.
> -  Test UEFI RT service set wakeup time interface, invalid hour 24.
> -  Test UEFI RT service set wakeup time interface, invalid minute 60.
> -  Test UEFI RT service set wakeup time interface, invalid second 60.
> -  Test UEFI RT service set wakeup time interface, invalid nanosecond 1000000000.
> -  Test UEFI RT service set wakeup time interface, invalid timezone -1441.
> -  Test UEFI RT service set wakeup time interface, invalid timezone 1441.
> - uefirtvariable  (8 tests):
> -  Test UEFI RT service get variable interface.
> -  Test UEFI RT service get next variable name interface.
> -  Test UEFI RT service set variable interface.
> -  Test UEFI RT service query variable info interface.
> -  Test UEFI RT service variable interface stress test.
> -  Test UEFI RT service set variable interface stress test.
> -  Test UEFI RT service query variable info interface stress test.
> -  Test UEFI RT service get variable interface, invalid parameters.
> -
> -ACPI Spec Compliance tests:
> - fadt            (6 tests):
> -  ACPI FADT Description Table flag info.
> -  FADT checksum test.
> -  FADT revision test.
> -  ACPI FADT Description Table tests.
> -  Test FADT SCI_EN bit is enabled.
> -  Test FADT reset register.
> - madt            (5 tests):
> -  MADT checksum test.
> -  MADT revision test.
> -  MADT architecture minimum revision test.
> -  MADT flags field reserved bits test.
> -  MADT subtable tests.
> - rsdp            (1 test):
> -  RSDP Root System Description Pointer test.
> diff --git a/fwts-test/arg-show-tests-full-0001/test-0001.sh b/fwts-test/arg-show-tests-full-0001/test-0001.sh
> index b4e74f7..1302bd3 100755
> --- a/fwts-test/arg-show-tests-full-0001/test-0001.sh
> +++ b/fwts-test/arg-show-tests-full-0001/test-0001.sh
> @@ -3,17 +3,25 @@
>  TEST="Test --show-tests-full option"
>  NAME=test-0001.sh
>  TMPLOG=$TMP/arg-show-tests-full.log.$$
> +export FWTS_SHOW_LOGS="FULL"
> +
> +# Dynamically create the log template per test
> +$FWTS show_logs &> /dev/null
> +if [ $? -ne 0 ]; then
> +	echo SKIP: $TEST, $NAME
> +	exit 77
> +fi
>  
>  #
> -#  Non-x86 tests don't have WMI so skip this test
> +#  If we can't set the tty then we can't test
>  #
> -$FWTS --show-tests | grep wmi > /dev/null
> -if [ $? -eq 1 ]; then
> +stty cols 80 &> /dev/null
> +if [ $? -ne 0 ]; then
> +	tset &> /dev/null
>  	echo SKIP: $TEST, $NAME
>  	exit 77
>  fi
>  
> -stty cols 80
>  $FWTS --show-tests-full > $TMPLOG
>  diff $TMPLOG $FWTSTESTDIR/arg-show-tests-full-0001/arg-show-tests-full-0001.log >> $FAILURE_LOG
>  ret=$?
> @@ -23,5 +31,8 @@ else
>  	echo FAILED: $TEST, $NAME
>  fi
>  
> +stty cols 80 &> /dev/null
> +tset &> /dev/null
> +
>  rm $TMPLOG
>  exit $ret
> diff --git a/src/Makefile.am b/src/Makefile.am
> index 100eaa3..8ac67b4 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -132,6 +132,7 @@ fwts_SOURCES = main.c 				\
>  	pci/aspm/aspm.c 			\
>  	pci/crs/crs.c 				\
>  	pci/maxreadreq/maxreadreq.c 		\
> +	show/show_logs.c			\
>  	uefi/csm/csm.c 				\
>  	uefi/uefidump/uefidump.c 		\
>  	uefi/uefirttime/uefirttime.c		\
> diff --git a/src/show/show_logs.c b/src/show/show_logs.c
> new file mode 100644
> index 0000000..7b958ff
> --- /dev/null
> +++ b/src/show/show_logs.c
> @@ -0,0 +1,1480 @@
> +/*
> + * Copyright (C) 2010-2016 Canonical
> + * Some of this work - Copyright (C) 2016 IBM
> + *
> + * 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 2
> + * 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, write to the Free Software
> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
> + *
> + */
> +
> +
> +#include "fwts.h"
> +
> +static char *fwts_show[] = {
> +"ACPI tests:",
> +" acpiinfo        General ACPI information test.",
> +" acpitables      ACPI table headers sanity tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" apicinstance    Test for single instance of APIC/MADT table.",
> +#endif
> +" asf             ASF! Alert Standard Format Table test.",
> +" aspt            ASPT Table test.",
> +" bert            BERT Boot Error Record Table test.",
> +" bgrt            BGRT Boot Graphics Resource Table test.",
> +" boot            BOOT Table test.",
> +" checksum        ACPI table checksum test.",
> +" cpep            CPEP Corrected Platform Error Polling Table test.",
> +" csrt            CSRT Core System Resource Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" cstates         Processor C state support test.",
> +#endif
> +" dbg2            DBG2 (Debug Port Table 2) test.",
> +" dbgp            DBGP (Debug Port) Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" dmar            DMA Remapping (VT-d) test.",
> +#endif
> +" ecdt            ECDT Embedded Controller Boot Resources Table test.",
> +" einj            EINJ Error Injection Table test.",
> +" erst            ERST Error Record Serialization Table test.",
> +" facs            FACS Firmware ACPI Control Structure test.",
> +" fadt            FADT Fixed ACPI Description Table tests.",
> +" fpdt            FPDT Firmware Performance Data Table test.",
> +" gtdt            GTDT Generic Timer Description Table test.",
> +" hest            HEST Hardware Error Source Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" hpet            HPET IA-PC High Precision Event Timer Table tests.",
> +#endif
> +" iort            IORT IO Remapping Table test.",
> +" lpit            LPIT Low Power Idle Table test.",
> +" madt            MADT Multiple APIC Description Table "
> +	"(spec compliant).",
> +#ifdef FWTS_ARCH_INTEL
> +" mcfg            MCFG PCI Express* memory mapped config space test.",
> +#endif
> +" mchi            MCHI Management Controller Host Interface"
> +		" Table test.",
> +" method          ACPI DSDT Method Semantic tests.",
> +" msct            MSCT Maximum System Characteristics Table test.",
> +" msdm            MSDM Microsoft Data Management Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" pcc             Processor Clocking Control (PCC) test.",
> +#endif
> +" rsdp            RSDP Root System Description Pointer test.",
> +" rsdt            RSDT Root System Description Table test.",
> +" sbst            SBST Smart Battery Specification Table test.",
> +" slic            SLIC Software Licensing Description Table test.",
> +" slit            SLIT System Locality Distance Information test.",
> +" spcr            SPCR Serial Port Console Redirection Table test.",
> +" spmi            SPMI Service Processor Management Interface"
> +		" Description Table test.",
> +" srat            SRAT System Resource Affinity Table test.",
> +" stao            STAO Status Override Table test.",
> +" tcpa            TCPA Trusted Computing Platform Alliance"
> +		" Capabilities Table test.",
> +" tpm2            TPM2 Trusted Platform Module 2 test.",
> +" uefi            UEFI Data Table test.",
> +" waet            WAET Windows ACPI Emulated Devices Table test.",
> +" wdat            WDAT Microsoft Hardware Watchdog Action Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" wmi             Extract and analyse Windows Management"
> +		" Instrumentation (WMI).",
> +#endif
> +" xenv            XENV Xen Environment Table tests.",
> +" xsdt            XSDT Extended System Description Table test.",
> +"",
> +"Batch tests:",
> +" acpiinfo        General ACPI information test.",
> +" acpitables      ACPI table headers sanity tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" apicedge        APIC edge/level test.",
> +" apicinstance    Test for single instance of APIC/MADT table.",
> +#endif
> +" asf             ASF! Alert Standard Format Table test.",
> +" aspm            PCIe ASPM test.",
> +" aspt            ASPT Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" autobrightness  Automated LCD brightness test.",
> +#endif
> +" bert            BERT Boot Error Record Table test.",
> +" bgrt            BGRT Boot Graphics Resource Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" bios32          BIOS32 Service Directory test.",
> +" bios_info       Gather BIOS DMI information.",
> +#endif
> +" bmc_info        BMC Info",
> +" boot            BOOT Table test.",
> +" checksum        ACPI table checksum test.",
> +" cpep            CPEP Corrected Platform Error Polling Table test.",
> +" cpufreq         CPU frequency scaling tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" crs             Test PCI host bridge configuration using _CRS.",
> +" csm             UEFI Compatibility Support Module test.",
> +#endif
> +" csrt            CSRT Core System Resource Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" cstates         Processor C state support test.",
> +#endif
> +" dbg2            DBG2 (Debug Port Table 2) test.",
> +" dbgp            DBGP (Debug Port) Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" dmar            DMA Remapping (VT-d) test.",
> +" dmicheck        DMI/SMBIOS table tests.",
> +#endif
> +#ifdef HAVE_LIBFDT
> +" dt_base         Base device tree validity check",
> +" dt_sysinfo      Device tree system information test",
> +#endif
> +#ifdef FWTS_ARCH_INTEL
> +" ebda            Test EBDA region is mapped and reserved in memory"
> +		" map table.",
> +#endif
> +" ecdt            ECDT Embedded Controller Boot Resources Table test.",
> +" einj            EINJ Error Injection Table test.",
> +" erst            ERST Error Record Serialization Table test.",
> +" facs            FACS Firmware ACPI Control Structure test.",
> +" fadt            FADT Fixed ACPI Description Table tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" fan             Simple fan tests.",
> +#endif
> +" fpdt            FPDT Firmware Performance Data Table test.",
> +" gtdt            GTDT Generic Timer Description Table test.",
> +" hda_audio       HDA Audio Pin Configuration test.",
> +" hest            HEST Hardware Error Source Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" hpet            HPET IA-PC High Precision Event Timer Table tests.",
> +#endif
> +" iort            IORT IO Remapping Table test.",
> +" klog            Scan kernel log for errors and warnings.",
> +" lpit            LPIT Low Power Idle Table test.",
> +" madt            MADT Multiple APIC Description Table"
> +	" (spec compliant).",
> +#ifdef FWTS_ARCH_INTEL
> +" maxfreq         Test max CPU frequencies against max scaling"
> +		" frequency.",
> +#endif
> +" maxreadreq      Test firmware has set PCI Express MaxReadReq to a"
> +		" higher value on non-motherboard devices.",
> +#ifdef FWTS_ARCH_INTEL
> +" mcfg            MCFG PCI Express* memory mapped config space test.",
> +#endif
> +" mchi            MCHI Management Controller Host Interface Table test.",
> +" method          ACPI DSDT Method Semantic tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" microcode       Test if system is using latest microcode.",
> +" mpcheck         MultiProcessor Tables tests.",
> +#endif
> +" msct            MSCT Maximum System Characteristics Table test.",
> +" msdm            MSDM Microsoft Data Management Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" msr             MSR register tests.",
> +" mtrr            MTRR tests.",
> +#endif
> +#ifdef FWTS_ARCH_INTEL
> +" nx              Test if CPU NX is disabled by the BIOS.",
> +#endif
> +" olog            Run OLOG scan and analysis checks.",
> +" oops            Scan kernel log for Oopses.",
> +#ifdef FWTS_ARCH_INTEL
> +" osilinux        Disassemble DSDT to check for _OSI(\"Linux\").",
> +" pcc             Processor Clocking Control (PCC) test.",
> +" pciirq          PCI IRQ Routing Table test.",
> +" pnp             BIOS Support Installation structure test.",
> +#endif
> +" prd_info        OPAL Processor Recovery Diagnostics Info",
> +" rsdp            RSDP Root System Description Pointer test.",
> +" rsdt            RSDT Root System Description Table test.",
> +" sbst            SBST Smart Battery Specification Table test.",
> +" securebootcert  UEFI secure boot test.",
> +" show_logs       Show Tests Log Files",
> +" slic            SLIC Software Licensing Description Table test.",
> +" slit            SLIT System Locality Distance Information test.",
> +" spcr            SPCR Serial Port Console Redirection Table test.",
> +" spmi            SPMI Service Processor Management Interface"
> +		" Description Table test.",
> +" srat            SRAT System Resource Affinity Table test.",
> +" stao            STAO Status Override Table test.",
> +" syntaxcheck     Re-assemble DSDT and SSDTs to find syntax errors"
> +		" and warnings.",
> +" tcpa            TCPA Trusted Computing Platform Alliance"
> +		" Capabilities Table test.",
> +" tpm2            TPM2 Trusted Platform Module 2 test.",
> +" uefi            UEFI Data Table test.",
> +" uefibootpath    Sanity check for UEFI Boot Path Boot####.",
> +" version         Gather kernel system information.",
> +#ifdef FWTS_ARCH_INTEL
> +" virt            CPU Virtualisation Configuration test.",
> +#endif
> +" waet            WAET Windows ACPI Emulated Devices Table test.",
> +" wakealarm       ACPI Wakealarm tests.",
> +" wdat            WDAT Microsoft Hardware Watchdog Action Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" wmi             Extract and analyse Windows Management"
> +		" Instrumentation (WMI).",
> +#endif
> +" xenv            XENV Xen Environment Table tests.",
> +" xsdt            XSDT Extended System Description Table test.",
> +"",
> +#ifdef FWTS_ARCH_INTEL
> +"Interactive tests:",
> +" ac_adapter      Interactive ac_adapter power test.",
> +" battery         Battery tests.",
> +" brightness      Interactive LCD brightness test.",
> +" hotkey          Hotkey scan code tests.",
> +" lid             Interactive lid button test.",
> +" power_button    Interactive power_button button test.",
> +"",
> +"Power States tests:",
> +" s3              S3 suspend/resume test.",
> +" s3power         S3 power loss during suspend test (takes minimum"
> +		" of 10 minutes to run).",
> +" s4              S4 hibernate/resume test.",
> +"",
> +#endif
> +"Utilities:",
> +" acpidump        Dump ACPI tables.",
> +#ifdef FWTS_ARCH_INTEL
> +" cmosdump        Dump CMOS Memory.",
> +#endif
> +" crsdump         Dump ACPI _CRS resources.",
> +#ifdef FWTS_ARCH_INTEL
> +" ebdadump        Dump EBDA region.",
> +#endif
> +" esrtdump        Dump ESRT table.",
> +" gpedump         Dump GPEs.",
> +#ifdef FWTS_ARCH_INTEL
> +" memmapdump      Dump system memory map.",
> +" mpdump          Dump MultiProcessor Data.",
> +#endif
> +" plddump         Dump ACPI _PLD (Physical Device Location).",
> +" prsdump         Dump ACPI _PRS resources.",
> +#ifdef FWTS_ARCH_INTEL
> +" romdump         Dump ROM data.",
> +#endif
> +" uefidump        Dump UEFI variables.",
> +" uefivarinfo     UEFI variable info query.",
> +"",
> +"Unsafe tests:",
> +" uefirtauthvar   Authenticated variable tests.",
> +" uefirtmisc      UEFI miscellaneous runtime service interface tests.",
> +" uefirttime      UEFI Runtime service time interface tests.",
> +" uefirtvariable  UEFI Runtime service variable interface tests.",
> +"",
> +"UEFI tests:",
> +#ifdef FWTS_ARCH_INTEL
> +" csm             UEFI Compatibility Support Module test.",
> +#endif
> +" esrt            Sanity check UEFI ESRT Table.",
> +" securebootcert  UEFI secure boot test.",
> +" uefibootpath    Sanity check for UEFI Boot Path Boot####.",
> +" uefirtauthvar   Authenticated variable tests.",
> +" uefirtmisc      UEFI miscellaneous runtime service interface tests.",
> +" uefirttime      UEFI Runtime service time interface tests.",
> +" uefirtvariable  UEFI Runtime service variable interface tests.",
> +"",
> +"ACPI Spec Compliance tests:",
> +" fadt            FADT Fixed ACPI Description Table tests.",
> +" madt            MADT Multiple APIC Description Table"
> +		" (spec compliant).",
> +" rsdp            RSDP Root System Description Pointer test.",
> +};
> +
> +static char *fwts_show_all[] = {
> +"ACPI tests:",
> +" acpiinfo        (3 tests):",
> +"  Determine Kernel ACPI version.",
> +"  Determine machine's ACPI version.",
> +"  Determine AML compiler.",
> +" acpitables      (1 test):",
> +"  Test ACPI headers.",
> +#ifdef FWTS_ARCH_INTEL
> +" apicinstance    (1 test):",
> +"  Test for single instance of APIC/MADT table.",
> +#endif
> +" asf             (1 test):",
> +"  ASF! Alert Standard Format Table test.",
> +" aspt            (1 test):",
> +"  ASPT Table test.",
> +" bert            (1 test):",
> +"  BERT Boot Error Record Table test.",
> +" bgrt            (1 test):",
> +"  BGRT Boot Graphics Resource Table test.",
> +" boot            (1 test):",
> +"  BOOT Table test.",
> +" checksum        (1 test):",
> +"  ACPI table checksum test.",
> +" cpep            (1 test):",
> +"  CPEP Corrected Platform Error Polling Table test.",
> +" csrt            (1 test):",
> +"  CSRT Core System Resource Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" cstates         (1 test):",
> +"  Test all CPUs C-states.",
> +#endif
> +" dbg2            (1 test):",
> +"  DBG2 (Debug Port Table 2) test.",
> +" dbgp            (1 test):",
> +"  DBGP (Debug Port) Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" dmar            (1 test):",
> +"  DMA Remapping test.",
> +#endif
> +" ecdt            (1 test):",
> +"  ECDT Embedded Controller Boot Resources Table test.",
> +" einj            (1 test):",
> +"  EINJ Error Injection Table test.",
> +" erst            (1 test):",
> +"  ERST Error Record Serialization Table test.",
> +" facs            (1 test):",
> +"  FACS Firmware ACPI Control Structure test.",
> +" fadt            (6 tests):",
> +"  ACPI FADT Description Table flag info.",
> +"  FADT checksum test.",
> +"  FADT revision test.",
> +"  ACPI FADT Description Table tests.",
> +"  Test FADT SCI_EN bit is enabled.",
> +"  Test FADT reset register.",
> +" fpdt            (1 test):",
> +"  FPDT Firmware Performance Data Table test.",
> +" gtdt            (1 test):",
> +"  GTDT Generic Timer Description Table test.",
> +" hest            (1 test):",
> +"  HEST Hardware Error Source Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" hpet            (4 tests):",
> +"  Test HPET base in kernel log.",
> +"  Test HPET base in HPET table.",
> +"  Test HPET base in DSDT and/or SSDT.",
> +"  Test HPET configuration.",
> +#endif
> +" iort            (1 test):",
> +"  IORT IO Remapping Table test.",
> +" lpit            (1 test):",
> +"  LPIT Low Power Idle Table test.",
> +" madt            (5 tests):",
> +"  MADT checksum test.",
> +"  MADT revision test.",
> +"  MADT architecture minimum revision test.",
> +"  MADT flags field reserved bits test.",
> +"  MADT subtable tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" mcfg            (2 tests):",
> +"  Validate MCFG table.",
> +"  Validate MCFG PCI config space.",
> +#endif
> +" mchi            (1 test):",
> +"  MCHI Management Controller Host Interface Table test.",
> +" method          (191 tests):",
> +"  Test Method Names.",
> +"  Test _AEI.",
> +"  Test _EVT (Event Method).",
> +"  Test _DLM (Device Lock Mutex).",
> +"  Test _PIC (Inform AML of Interrupt Model).",
> +"  Test _CID (Compatible ID).",
> +"  Test _DDN (DOS Device Name).",
> +"  Test _HID (Hardware ID).",
> +"  Test _HRV (Hardware Revision Number).",
> +"  Test _MLS (Multiple Language String).",
> +"  Test _PLD (Physical Device Location).",
> +"  Test _SUB (Subsystem ID).",
> +"  Test _SUN (Slot User Number).",
> +"  Test _STR (String).",
> +"  Test _UID (Unique ID).",
> +"  Test _CDM (Clock Domain).",
> +"  Test _CRS (Current Resource Settings).",
> +"  Test _DSD (Device Specific Data).",
> +"  Test _DIS (Disable).",
> +"  Test _DMA (Direct Memory Access).",
> +"  Test _FIX (Fixed Register Resource Provider).",
> +"  Test _GSB (Global System Interrupt Base).",
> +"  Test _HPP (Hot Plug Parameters).",
> +"  Test _PRS (Possible Resource Settings).",
> +"  Test _PRT (PCI Routing Table).",
> +"  Test _PXM (Proximity).",
> +"  Test _CCA (Cache Coherency Attribute).",
> +"  Test _EDL (Eject Device List).",
> +"  Test _EJD (Ejection Dependent Device).",
> +"  Test _EJ0 (Eject).",
> +"  Test _EJ1 (Eject).",
> +"  Test _EJ2 (Eject).",
> +"  Test _EJ3 (Eject).",
> +"  Test _EJ4 (Eject).",
> +"  Test _LCK (Lock).",
> +"  Test _RMV (Remove).",
> +"  Test _STA (Status).",
> +"  Test _DEP (Operational Region Dependencies).",
> +"  Test _BDN (BIOS Dock Name).",
> +"  Test _BBN (Base Bus Number).",
> +"  Test _DCK (Dock).",
> +"  Test _INI (Initialize).",
> +"  Test _GLK (Global Lock).",
> +"  Test _SEG (Segment).",
> +"  Test _OFF (Set resource off).",
> +"  Test _ON_ (Set resource on).",
> +"  Test _DSW (Device Sleep Wake).",
> +"  Test _IRC (In Rush Current).",
> +"  Test _PRE (Power Resources for Enumeration).",
> +"  Test _PR0 (Power Resources for D0).",
> +"  Test _PR1 (Power Resources for D1).",
> +"  Test _PR2 (Power Resources for D2).",
> +"  Test _PR3 (Power Resources for D3).",
> +"  Test _PRW (Power Resources for Wake).",
> +"  Test _PS0 (Power State 0).",
> +"  Test _PS1 (Power State 1).",
> +"  Test _PS2 (Power State 2).",
> +"  Test _PS3 (Power State 3).",
> +"  Test _PSC (Power State Current).",
> +"  Test _PSE (Power State for Enumeration).",
> +"  Test _PSW (Power State Wake).",
> +"  Test _S1D (S1 Device State).",
> +"  Test _S2D (S2 Device State).",
> +"  Test _S3D (S3 Device State).",
> +"  Test _S4D (S4 Device State).",
> +"  Test _S0W (S0 Device Wake State).",
> +"  Test _S1W (S1 Device Wake State).",
> +"  Test _S2W (S2 Device Wake State).",
> +"  Test _S3W (S3 Device Wake State).",
> +"  Test _S4W (S4 Device Wake State).",
> +"  Test _RST (Device Reset).",
> +"  Test _PRR (Power Resource for Reset).",
> +"  Test _S0_ (S0 System State).",
> +"  Test _S1_ (S1 System State).",
> +"  Test _S2_ (S2 System State).",
> +"  Test _S3_ (S3 System State).",
> +"  Test _S4_ (S4 System State).",
> +"  Test _S5_ (S5 System State).",
> +"  Test _SWS (System Wake Source).",
> +"  Test _PSS (Performance Supported States).",
> +"  Test _CPC (Continuous Performance Control).",
> +"  Test _CSD (C State Dependencies).",
> +"  Test _CST (C States).",
> +"  Test _PCT (Performance Control).",
> +"  Test _PDL (P-State Depth Limit).",
> +"  Test _PPC (Performance Present Capabilities).",
> +"  Test _PPE (Polling for Platform Error).",
> +"  Test _PSD (Power State Dependencies).",
> +"  Test _PTC (Processor Throttling Control).",
> +"  Test _TDL (T-State Depth Limit).",
> +"  Test _TPC (Throttling Present Capabilities).",
> +"  Test _TSD (Throttling State Dependencies).",
> +"  Test _TSS (Throttling Supported States).",
> +"  Test _LPI (Low Power Idle States).",
> +"  Test _RDI (Resource Dependencies for Idle).",
> +"  Test _PUR (Processor Utilization Request).",
> +"  Test _MSG (Message).",
> +"  Test _SST (System Status).",
> +"  Test _ALC (Ambient Light Colour Chromaticity).",
> +"  Test _ALI (Ambient Light Illuminance).",
> +"  Test _ALT (Ambient Light Temperature).",
> +"  Test _ALP (Ambient Light Polling).",
> +"  Test _ALR (Ambient Light Response).",
> +"  Test _LID (Lid Status).",
> +"  Test _GTF (Get Task File).",
> +"  Test _GTM (Get Timing Mode).",
> +"  Test _MBM (Memory Bandwidth Monitoring Data).",
> +"  Test _UPC (USB Port Capabilities).",
> +"  Test _UPD (User Presence Detect).",
> +"  Test _UPP (User Presence Polling).",
> +"  Test _GCP (Get Capabilities).",
> +"  Test _GRT (Get Real Time).",
> +"  Test _GWS (Get Wake Status).",
> +"  Test _CWS (Clear Wake Status).",
> +"  Test _STP (Set Expired Timer Wake Policy).",
> +"  Test _STV (Set Timer Value).",
> +"  Test _TIP (Expired Timer Wake Policy).",
> +"  Test _TIV (Timer Values).",
> +"  Test _SBS (Smart Battery Subsystem).",
> +"  Test _BCT (Battery Charge Time).",
> +"  Test _BIF (Battery Information).",
> +"  Test _BIX (Battery Information Extended).",
> +"  Test _BMA (Battery Measurement Averaging).",
> +"  Test _BMC (Battery Maintenance Control).",
> +"  Test _BMD (Battery Maintenance Data).",
> +"  Test _BMS (Battery Measurement Sampling Time).",
> +"  Test _BST (Battery Status).",
> +"  Test _BTP (Battery Trip Point).",
> +"  Test _BTH (Battery Throttle Limit).",
> +"  Test _BTM (Battery Time).",
> +"  Test _PCL (Power Consumer List).",
> +"  Test _PIF (Power Source Information).",
> +"  Test _PRL (Power Source Redundancy List).",
> +"  Test _PSR (Power Source).",
> +"  Test _GAI (Get Averaging Level).",
> +"  Test _GHL (Get Harware Limit).",
> +"  Test _PMC (Power Meter Capabilities).",
> +"  Test _PMD (Power Meter Devices).",
> +"  Test _PMM (Power Meter Measurement).",
> +"  Test _WPC (Wireless Power Calibration).",
> +"  Test _WPP (Wireless Power Polling).",
> +"  Test _FIF (Fan Information).",
> +"  Test _FPS (Fan Performance States).",
> +"  Test _FSL (Fan Set Level).",
> +"  Test _FST (Fan Status).",
> +"  Test _ACx (Active Cooling).",
> +"  Test _ART (Active Cooling Relationship Table).",
> +"  Test _CRT (Critical Trip Point).",
> +"  Test _CR3 (Warm/Standby Temperature).",
> +"  Test _DTI (Device Temperature Indication).",
> +"  Test _HOT (Hot Temperature).",
> +"  Test _MTL (Minimum Throttle Limit).",
> +"  Test _NTT (Notification Temp Threshold).",
> +"  Test _PSL (Passive List).",
> +"  Test _PSV (Passive Temp).",
> +"  Test _RTV (Relative Temp Values).",
> +"  Test _SCP (Set Cooling Policy).",
> +"  Test _TC1 (Thermal Constant 1).",
> +"  Test _TC2 (Thermal Constant 2).",
> +"  Test _TFP (Thermal fast Sampling Period).",
> +"  Test _TMP (Thermal Zone Current Temp).",
> +"  Test _TPT (Trip Point Temperature).",
> +"  Test _TRT (Thermal Relationship Table).",
> +"  Test _TSN (Thermal Sensor Device).",
> +"  Test _TSP (Thermal Sampling Period).",
> +"  Test _TST (Temperature Sensor Threshold).",
> +"  Test _TZD (Thermal Zone Devices).",
> +"  Test _TZM (Thermal Zone member).",
> +"  Test _TZP (Thermal Zone Polling).",
> +"  Test _GPE (General Purpose Events).",
> +"  Test _EC_ (EC Offset Query).",
> +"  Test _PTS (Prepare to Sleep).",
> +"  Test _TTS (Transition to State).",
> +"  Test _WAK (System Wake).",
> +"  Test _ADR (Return Unique ID for Device).",
> +"  Test _BCL (Query List of Brightness Control Levels Supported).",
> +"  Test _BCM (Set Brightness Level).",
> +"  Test _BQC (Brightness Query Current Level).",
> +"  Test _DCS (Return the Status of Output Device).",
> +"  Test _DDC (Return the EDID for this Device).",
> +"  Test _DSS (Device Set State).",
> +"  Test _DGS (Query Graphics State).",
> +"  Test _DOD (Enumerate All Devices Attached to Display Adapter).",
> +"  Test _DOS (Enable/Disable Output Switching).",
> +"  Test _GPD (Get POST Device).",
> +"  Test _ROM (Get ROM Data).",
> +"  Test _SPD (Set POST Device).",
> +"  Test _VPO (Video POST Options).",
> +"  Test _CBA (Configuration Base Address).",
> +"  Test _IFT (IPMI Interface Type).",
> +"  Test _SRV (IPMI Interface Revision).",
> +" msct            (1 test):",
> +"  MSCT Maximum System Characteristics Table test.",
> +" msdm            (1 test):",
> +"  MSDM Microsoft Data Management Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" pcc             (1 test):",
> +"  Processor Clocking Control (PCC) test.",
> +#endif
> +" rsdp            (1 test):",
> +"  RSDP Root System Description Pointer test.",
> +" rsdt            (1 test):",
> +"  RSDT Root System Description Table test.",
> +" sbst            (1 test):",
> +"  SBST Smart Battery Specificiation Table test.",
> +" slic            (1 test):",
> +"  SLIC Software Licensing Description Table test.",
> +" slit            (1 test):",
> +"  SLIT System Locality Distance Information test.",
> +" spcr            (1 test):",
> +"  SPCR Serial Port Console Redirection Table test.",
> +" spmi            (1 test):",
> +"  SPMI Service Processor Management Interface Description Table test.",
> +" srat            (1 test):",
> +"  SRAT System Resource Affinity Table test.",
> +" stao            (1 test):",
> +"  STAO Status Override Table test.",
> +" tcpa            (1 test):",
> +"  Validate TCPA table.",
> +" tpm2            (1 test):",
> +"  Validate TPM2 table.",
> +" uefi            (1 test):",
> +"  UEFI Data Table test.",
> +" waet            (1 test):",
> +"  Windows ACPI Emulated Devices Table test.",
> +" wdat            (1 test):",
> +"  WDAT Microsoft Hardware Watchdog Action Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" wmi             (1 test):",
> +"  Windows Management Instrumentation test.",
> +#endif
> +" xenv            (1 test):",
> +"  Validate XENV table.",
> +" xsdt            (1 test):",
> +"  XSDT Extended System Description Table test.",
> +"",
> +"Batch tests:",
> +" acpiinfo        (3 tests):",
> +"  Determine Kernel ACPI version.",
> +"  Determine machine's ACPI version.",
> +"  Determine AML compiler.",
> +" acpitables      (1 test):",
> +"  Test ACPI headers.",
> +#ifdef FWTS_ARCH_INTEL
> +" apicedge        (1 test):",
> +"  Legacy and PCI Interrupt Edge/Level trigger tests.",
> +" apicinstance    (1 test):",
> +"  Test for single instance of APIC/MADT table.",
> +#endif
> +" asf             (1 test):",
> +"  ASF! Alert Standard Format Table test.",
> +" aspm            (2 tests):",
> +"  PCIe ASPM ACPI test.",
> +"  PCIe ASPM registers test.",
> +" aspt            (1 test):",
> +"  ASPT Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" autobrightness  (2 tests):",
> +"  Test for maximum and actual brightness.",
> +"  Change actual brightness.",
> +#endif
> +" bert            (1 test):",
> +"  BERT Boot Error Record Table test.",
> +" bgrt            (1 test):",
> +"  BGRT Boot Graphics Resource Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" bios32          (1 test):",
> +"  BIOS32 Service Directory test.",
> +" bios_info       (1 test):",
> +"  Gather BIOS DMI information",
> +#endif
> +" bmc_info        (1 test):",
> +"  BMC Info",
> +" boot            (1 test):",
> +"  BOOT Table test.",
> +" checksum        (1 test):",
> +"  ACPI table checksum test.",
> +" cpep            (1 test):",
> +"  CPEP Corrected Platform Error Polling Table test.",
> +" cpufreq         (7 tests):",
> +"  CPU frequency table consistency",
> +"  CPU frequency table duplicates",
> +"  CPU frequency firmware limits",
> +"  CPU frequency claimed maximum",
> +"  CPU frequency SW_ANY control",
> +"  CPU frequency SW_ALL control",
> +"  CPU frequency performance tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" crs             (1 test):",
> +"  Test PCI host bridge configuration using _CRS.",
> +" csm             (1 test):",
> +"  UEFI Compatibility Support Module test.",
> +#endif
> +" csrt            (1 test):",
> +"  CSRT Core System Resource Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" cstates         (1 test):",
> +"  Test all CPUs C-states.",
> +#endif
> +" dbg2            (1 test):",
> +"  DBG2 (Debug Port Table 2) test.",
> +" dbgp            (1 test):",
> +"  DBGP (Debug Port) Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" dmar            (1 test):",
> +"  DMA Remapping test.",
> +" dmicheck        (3 tests):",
> +"  Find and test SMBIOS Table Entry Points.",
> +"  Test DMI/SMBIOS tables for errors.",
> +"  Test DMI/SMBIOS3 tables for errors.",
> +#endif
> +#ifdef HAVE_LIBFDT
> +" dt_base         (3 tests):",
> +"  Check device tree presence",
> +"  Check device tree baseline validity",
> +"  Check device tree warnings",
> +" dt_sysinfo      (3 tests):",
> +"  Check model property",
> +"  Check system-id property",
> +"  Check OpenPOWER Reference compatible",
> +#endif
> +#ifdef FWTS_ARCH_INTEL
> +" ebda            (1 test):",
> +"  Test EBDA is reserved in E820 table.",
> +#endif
> +" ecdt            (1 test):",
> +"  ECDT Embedded Controller Boot Resources Table test.",
> +" einj            (1 test):",
> +"  EINJ Error Injection Table test.",
> +" erst            (1 test):",
> +"  ERST Error Record Serialization Table test.",
> +" facs            (1 test):",
> +"  FACS Firmware ACPI Control Structure test.",
> +" fadt            (6 tests):",
> +"  ACPI FADT Description Table flag info.",
> +"  FADT checksum test.",
> +"  FADT revision test.",
> +"  ACPI FADT Description Table tests.",
> +"  Test FADT SCI_EN bit is enabled.",
> +"  Test FADT reset register.",
> +#ifdef FWTS_ARCH_INTEL
> +" fan             (2 tests):",
> +"  Test fan status.",
> +"  Load system, check CPU fan status.",
> +#endif
> +" fpdt            (1 test):",
> +"  FPDT Firmware Performance Data Table test.",
> +" gtdt            (1 test):",
> +"  GTDT Generic Timer Description Table test.",
> +" hda_audio       (1 test):",
> +"  HDA Audio Pin Configuration test.",
> +" hest            (1 test):",
> +"  HEST Hardware Error Source Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" hpet            (4 tests):",
> +"  Test HPET base in kernel log.",
> +"  Test HPET base in HPET table.",
> +"  Test HPET base in DSDT and/or SSDT.",
> +"  Test HPET configuration.",
> +#endif
> +" iort            (1 test):",
> +"  IORT IO Remapping Table test.",
> +" klog            (1 test):",
> +"  Kernel log error check.",
> +" lpit            (1 test):",
> +"  LPIT Low Power Idle Table test.",
> +" madt            (5 tests):",
> +"  MADT checksum test.",
> +"  MADT revision test.",
> +"  MADT architecture minimum revision test.",
> +"  MADT flags field reserved bits test.",
> +"  MADT subtable tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" maxfreq         (1 test):",
> +"  Maximum CPU frequency test.",
> +#endif
> +" maxreadreq      (1 test):",
> +"  Test firmware settings MaxReadReq for PCI Express devices.",
> +#ifdef FWTS_ARCH_INTEL
> +" mcfg            (2 tests):",
> +"  Validate MCFG table.",
> +"  Validate MCFG PCI config space.",
> +#endif
> +" mchi            (1 test):",
> +"  MCHI Management Controller Host Interface Table test.",
> +" method          (191 tests):",
> +"  Test Method Names.",
> +"  Test _AEI.",
> +"  Test _EVT (Event Method).",
> +"  Test _DLM (Device Lock Mutex).",
> +"  Test _PIC (Inform AML of Interrupt Model).",
> +"  Test _CID (Compatible ID).",
> +"  Test _DDN (DOS Device Name).",
> +"  Test _HID (Hardware ID).",
> +"  Test _HRV (Hardware Revision Number).",
> +"  Test _MLS (Multiple Language String).",
> +"  Test _PLD (Physical Device Location).",
> +"  Test _SUB (Subsystem ID).",
> +"  Test _SUN (Slot User Number).",
> +"  Test _STR (String).",
> +"  Test _UID (Unique ID).",
> +"  Test _CDM (Clock Domain).",
> +"  Test _CRS (Current Resource Settings).",
> +"  Test _DSD (Device Specific Data).",
> +"  Test _DIS (Disable).",
> +"  Test _DMA (Direct Memory Access).",
> +"  Test _FIX (Fixed Register Resource Provider).",
> +"  Test _GSB (Global System Interrupt Base).",
> +"  Test _HPP (Hot Plug Parameters).",
> +"  Test _PRS (Possible Resource Settings).",
> +"  Test _PRT (PCI Routing Table).",
> +"  Test _PXM (Proximity).",
> +"  Test _CCA (Cache Coherency Attribute).",
> +"  Test _EDL (Eject Device List).",
> +"  Test _EJD (Ejection Dependent Device).",
> +"  Test _EJ0 (Eject).",
> +"  Test _EJ1 (Eject).",
> +"  Test _EJ2 (Eject).",
> +"  Test _EJ3 (Eject).",
> +"  Test _EJ4 (Eject).",
> +"  Test _LCK (Lock).",
> +"  Test _RMV (Remove).",
> +"  Test _STA (Status).",
> +"  Test _DEP (Operational Region Dependencies).",
> +"  Test _BDN (BIOS Dock Name).",
> +"  Test _BBN (Base Bus Number).",
> +"  Test _DCK (Dock).",
> +"  Test _INI (Initialize).",
> +"  Test _GLK (Global Lock).",
> +"  Test _SEG (Segment).",
> +"  Test _OFF (Set resource off).",
> +"  Test _ON_ (Set resource on).",
> +"  Test _DSW (Device Sleep Wake).",
> +"  Test _IRC (In Rush Current).",
> +"  Test _PRE (Power Resources for Enumeration).",
> +"  Test _PR0 (Power Resources for D0).",
> +"  Test _PR1 (Power Resources for D1).",
> +"  Test _PR2 (Power Resources for D2).",
> +"  Test _PR3 (Power Resources for D3).",
> +"  Test _PRW (Power Resources for Wake).",
> +"  Test _PS0 (Power State 0).",
> +"  Test _PS1 (Power State 1).",
> +"  Test _PS2 (Power State 2).",
> +"  Test _PS3 (Power State 3).",
> +"  Test _PSC (Power State Current).",
> +"  Test _PSE (Power State for Enumeration).",
> +"  Test _PSW (Power State Wake).",
> +"  Test _S1D (S1 Device State).",
> +"  Test _S2D (S2 Device State).",
> +"  Test _S3D (S3 Device State).",
> +"  Test _S4D (S4 Device State).",
> +"  Test _S0W (S0 Device Wake State).",
> +"  Test _S1W (S1 Device Wake State).",
> +"  Test _S2W (S2 Device Wake State).",
> +"  Test _S3W (S3 Device Wake State).",
> +"  Test _S4W (S4 Device Wake State).",
> +"  Test _RST (Device Reset).",
> +"  Test _PRR (Power Resource for Reset).",
> +"  Test _S0_ (S0 System State).",
> +"  Test _S1_ (S1 System State).",
> +"  Test _S2_ (S2 System State).",
> +"  Test _S3_ (S3 System State).",
> +"  Test _S4_ (S4 System State).",
> +"  Test _S5_ (S5 System State).",
> +"  Test _SWS (System Wake Source).",
> +"  Test _PSS (Performance Supported States).",
> +"  Test _CPC (Continuous Performance Control).",
> +"  Test _CSD (C State Dependencies).",
> +"  Test _CST (C States).",
> +"  Test _PCT (Performance Control).",
> +"  Test _PDL (P-State Depth Limit).",
> +"  Test _PPC (Performance Present Capabilities).",
> +"  Test _PPE (Polling for Platform Error).",
> +"  Test _PSD (Power State Dependencies).",
> +"  Test _PTC (Processor Throttling Control).",
> +"  Test _TDL (T-State Depth Limit).",
> +"  Test _TPC (Throttling Present Capabilities).",
> +"  Test _TSD (Throttling State Dependencies).",
> +"  Test _TSS (Throttling Supported States).",
> +"  Test _LPI (Low Power Idle States).",
> +"  Test _RDI (Resource Dependencies for Idle).",
> +"  Test _PUR (Processor Utilization Request).",
> +"  Test _MSG (Message).",
> +"  Test _SST (System Status).",
> +"  Test _ALC (Ambient Light Colour Chromaticity).",
> +"  Test _ALI (Ambient Light Illuminance).",
> +"  Test _ALT (Ambient Light Temperature).",
> +"  Test _ALP (Ambient Light Polling).",
> +"  Test _ALR (Ambient Light Response).",
> +"  Test _LID (Lid Status).",
> +"  Test _GTF (Get Task File).",
> +"  Test _GTM (Get Timing Mode).",
> +"  Test _MBM (Memory Bandwidth Monitoring Data).",
> +"  Test _UPC (USB Port Capabilities).",
> +"  Test _UPD (User Presence Detect).",
> +"  Test _UPP (User Presence Polling).",
> +"  Test _GCP (Get Capabilities).",
> +"  Test _GRT (Get Real Time).",
> +"  Test _GWS (Get Wake Status).",
> +"  Test _CWS (Clear Wake Status).",
> +"  Test _STP (Set Expired Timer Wake Policy).",
> +"  Test _STV (Set Timer Value).",
> +"  Test _TIP (Expired Timer Wake Policy).",
> +"  Test _TIV (Timer Values).",
> +"  Test _SBS (Smart Battery Subsystem).",
> +"  Test _BCT (Battery Charge Time).",
> +"  Test _BIF (Battery Information).",
> +"  Test _BIX (Battery Information Extended).",
> +"  Test _BMA (Battery Measurement Averaging).",
> +"  Test _BMC (Battery Maintenance Control).",
> +"  Test _BMD (Battery Maintenance Data).",
> +"  Test _BMS (Battery Measurement Sampling Time).",
> +"  Test _BST (Battery Status).",
> +"  Test _BTP (Battery Trip Point).",
> +"  Test _BTH (Battery Throttle Limit).",
> +"  Test _BTM (Battery Time).",
> +"  Test _PCL (Power Consumer List).",
> +"  Test _PIF (Power Source Information).",
> +"  Test _PRL (Power Source Redundancy List).",
> +"  Test _PSR (Power Source).",
> +"  Test _GAI (Get Averaging Level).",
> +"  Test _GHL (Get Harware Limit).",
> +"  Test _PMC (Power Meter Capabilities).",
> +"  Test _PMD (Power Meter Devices).",
> +"  Test _PMM (Power Meter Measurement).",
> +"  Test _WPC (Wireless Power Calibration).",
> +"  Test _WPP (Wireless Power Polling).",
> +"  Test _FIF (Fan Information).",
> +"  Test _FPS (Fan Performance States).",
> +"  Test _FSL (Fan Set Level).",
> +"  Test _FST (Fan Status).",
> +"  Test _ACx (Active Cooling).",
> +"  Test _ART (Active Cooling Relationship Table).",
> +"  Test _CRT (Critical Trip Point).",
> +"  Test _CR3 (Warm/Standby Temperature).",
> +"  Test _DTI (Device Temperature Indication).",
> +"  Test _HOT (Hot Temperature).",
> +"  Test _MTL (Minimum Throttle Limit).",
> +"  Test _NTT (Notification Temp Threshold).",
> +"  Test _PSL (Passive List).",
> +"  Test _PSV (Passive Temp).",
> +"  Test _RTV (Relative Temp Values).",
> +"  Test _SCP (Set Cooling Policy).",
> +"  Test _TC1 (Thermal Constant 1).",
> +"  Test _TC2 (Thermal Constant 2).",
> +"  Test _TFP (Thermal fast Sampling Period).",
> +"  Test _TMP (Thermal Zone Current Temp).",
> +"  Test _TPT (Trip Point Temperature).",
> +"  Test _TRT (Thermal Relationship Table).",
> +"  Test _TSN (Thermal Sensor Device).",
> +"  Test _TSP (Thermal Sampling Period).",
> +"  Test _TST (Temperature Sensor Threshold).",
> +"  Test _TZD (Thermal Zone Devices).",
> +"  Test _TZM (Thermal Zone member).",
> +"  Test _TZP (Thermal Zone Polling).",
> +"  Test _GPE (General Purpose Events).",
> +"  Test _EC_ (EC Offset Query).",
> +"  Test _PTS (Prepare to Sleep).",
> +"  Test _TTS (Transition to State).",
> +"  Test _WAK (System Wake).",
> +"  Test _ADR (Return Unique ID for Device).",
> +"  Test _BCL (Query List of Brightness Control Levels Supported).",
> +"  Test _BCM (Set Brightness Level).",
> +"  Test _BQC (Brightness Query Current Level).",
> +"  Test _DCS (Return the Status of Output Device).",
> +"  Test _DDC (Return the EDID for this Device).",
> +"  Test _DSS (Device Set State).",
> +"  Test _DGS (Query Graphics State).",
> +"  Test _DOD (Enumerate All Devices Attached to Display Adapter).",
> +"  Test _DOS (Enable/Disable Output Switching).",
> +"  Test _GPD (Get POST Device).",
> +"  Test _ROM (Get ROM Data).",
> +"  Test _SPD (Set POST Device).",
> +"  Test _VPO (Video POST Options).",
> +"  Test _CBA (Configuration Base Address).",
> +"  Test _IFT (IPMI Interface Type).",
> +"  Test _SRV (IPMI Interface Revision).",
> +#ifdef FWTS_ARCH_INTEL
> +" microcode       (1 test):",
> +"  Test for most recent microcode being loaded.",
> +" mpcheck         (9 tests):",
> +"  Test MP header.",
> +"  Test MP CPU entries.",
> +"  Test MP Bus entries.",
> +"  Test MP IO APIC entries.",
> +"  Test MP IO Interrupt entries.",
> +"  Test MP Local Interrupt entries.",
> +"  Test MP System Address entries.",
> +"  Test MP Bus Hierarchy entries.",
> +"  Test MP Compatible Bus Address Space entries.",
> +#endif
> +" msct            (1 test):",
> +"  MSCT Maximum System Characteristics Table test.",
> +" msdm            (1 test):",
> +"  MSDM Microsoft Data Management Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" msr             (5 tests):",
> +"  Test CPU generic MSRs.",
> +"  Test CPU specific model MSRs.",
> +"  Test all P State Ratios.",
> +"  Test C1 and C3 autodemotion.",
> +"  Test SMRR MSR registers.",
> +" mtrr            (3 tests):",
> +"  Validate the kernel MTRR IOMEM setup.",
> +"  Validate the MTRR setup across all processors.",
> +"  Test for AMD MtrrFixDramModEn being cleared by the BIOS.",
> +" nx              (3 tests):",
> +"  Test CPU NX capability.",
> +"  Test all CPUs have same BIOS set NX flag.",
> +"  Test all CPUs have same msr setting in MSR 0x1a0.",
> +#endif
> +" olog            (1 test):",
> +"  OLOG scan and analysis checks results.",
> +" oops            (1 test):",
> +"  Kernel log oops check.",
> +#ifdef FWTS_ARCH_INTEL
> +" osilinux        (1 test):",
> +"  Disassemble DSDT to check for _OSI(\"Linux\").",
> +" pcc             (1 test):",
> +"  Processor Clocking Control (PCC) test.",
> +" pciirq          (1 test):",
> +"  PCI IRQ Routing Table test.",
> +" pnp             (1 test):",
> +"  PnP BIOS Support Installation structure test.",
> +#endif
> +" prd_info        (1 test):",
> +"  OPAL Processor Recovery Diagnostics Info",
> +" rsdp            (1 test):",
> +"  RSDP Root System Description Pointer test.",
> +" rsdt            (1 test):",
> +"  RSDT Root System Description Table test.",
> +" sbst            (1 test):",
> +"  SBST Smart Battery Specificiation Table test.",
> +" securebootcert  (1 test):",
> +"  UEFI secure boot test.",
> +" show_logs       (1 test):",
> +"  Show Tests Log Files",
> +" slic            (1 test):",
> +"  SLIC Software Licensing Description Table test.",
> +" slit            (1 test):",
> +"  SLIT System Locality Distance Information test.",
> +" spcr            (1 test):",
> +"  SPCR Serial Port Console Redirection Table test.",
> +" spmi            (1 test):",
> +"  SPMI Service Processor Management Interface Description Table test.",
> +" srat            (1 test):",
> +"  SRAT System Resource Affinity Table test.",
> +" stao            (1 test):",
> +"  STAO Status Override Table test.",
> +" syntaxcheck     (1 test):",
> +"  Disassemble and reassemble DSDT and SSDTs.",
> +" tcpa            (1 test):",
> +"  Validate TCPA table.",
> +" tpm2            (1 test):",
> +"  Validate TPM2 table.",
> +" uefi            (1 test):",
> +"  UEFI Data Table test.",
> +" uefibootpath    (1 test):",
> +"  Test UEFI Boot Path Boot####.",
> +" version         (4 tests):",
> +"  Gather kernel signature.",
> +"  Gather kernel system information.",
> +"  Gather kernel boot command line.",
> +"  Gather ACPI driver version.",
> +#ifdef FWTS_ARCH_INTEL
> +" virt            (1 test):",
> +"  CPU Virtualisation Configuration test.",
> +#endif
> +" waet            (1 test):",
> +"  Windows ACPI Emulated Devices Table test.",
> +" wakealarm       (5 tests):",
> +"  Test existence of RTC with alarm interface.",
> +"  Trigger wakealarm for 1 seconds in the future.",
> +"  Test if wakealarm is fired.",
> +"  Multiple wakealarm firing tests.",
> +"  Reset wakealarm time.",
> +" wdat            (1 test):",
> +"  WDAT Microsoft Hardware Watchdog Action Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" wmi             (1 test):",
> +"  Windows Management Instrumentation test.",
> +#endif
> +" xenv            (1 test):",
> +"  Validate XENV table.",
> +" xsdt            (1 test):",
> +"  XSDT Extended System Description Table test.",
> +"",
> +#ifdef FWTS_ARCH_INTEL
> +"Interactive tests:",
> +" ac_adapter      (3 tests):",
> +"  Test ACPI ac_adapter state.",
> +"  Test ac_adapter initial on-line state.",
> +"  Test ac_adapter state changes.",
> +" battery         (1 test):",
> +"  Battery test.",
> +" brightness      (3 tests):",
> +"  Observe all brightness changes.",
> +"  Observe min, max brightness changes.",
> +"  Test brightness hotkeys.",
> +" hotkey          (1 test):",
> +"  Hotkey keypress checks.",
> +" lid             (3 tests):",
> +"  Test LID buttons report open correctly.",
> +"  Test LID buttons on a single open/close.",
> +"  Test LID buttons on multiple open/close events.",
> +" power_button    (1 test):",
> +"  Test press of power button and ACPI event.",
> +"",
> +"Power States tests:",
> +" s3              (1 test):",
> +"  S3 suspend/resume test.",
> +" s3power         (1 test):",
> +"  S3 power loss during suspend test.",
> +" s4              (1 test):",
> +"  S4 hibernate/resume test.",
> +"",
> +#endif
> +"Utilities:",
> +" acpidump        (1 test):",
> +"  Dump ACPI tables.",
> +#ifdef FWTS_ARCH_INTEL
> +" cmosdump        (1 test):",
> +"  Dump CMOS Memory.",
> +#endif
> +" crsdump         (1 test):",
> +"  Dump ACPI _CRS (Current Resource Settings).",
> +#ifdef FWTS_ARCH_INTEL
> +" ebdadump        (1 test):",
> +"  Dump EBDA region.",
> +#endif
> +" esrtdump        (1 test):",
> +"  Dump ESRT Table.",
> +" gpedump         (1 test):",
> +"  Dump GPEs.",
> +#ifdef FWTS_ARCH_INTEL
> +" memmapdump      (1 test):",
> +"  Dump system memory map.",
> +" mpdump          (1 test):",
> +"  Dump Multi Processor Data.",
> +#endif
> +" plddump         (1 test):",
> +"  Dump ACPI _PLD (Physical Device Location).",
> +" prsdump         (1 test):",
> +"  Dump ACPI _PRS (Possible Resource Settings).",
> +#ifdef FWTS_ARCH_INTEL
> +" romdump         (1 test):",
> +"  Dump ROM data.",
> +#endif
> +" uefidump        (1 test):",
> +"  Dump UEFI Variables.",
> +" uefivarinfo     (1 test):",
> +"  UEFI variable info query.",
> +"",
> +"Unsafe tests:",
> +" uefirtauthvar   (12 tests):",
> +"  Create authenticated variable test.",
> +"  Authenticated variable test with the same authenticated variable.",
> +"  Authenticated variable test with another valid authenticated"
> +	" variable.",
> +"  Append authenticated variable test.",
> +"  Update authenticated variable test.",
> +"  Authenticated variable test with old authenticated variable.",
> +"  Delete authenticated variable test.",
> +"  Authenticated variable test with invalid modified data.",
> +"  Authenticated variable test with invalid modified timestamp.",
> +"  Authenticated variable test with different guid.",
> +"  Authenticated variable test with invalid attributes.",
> +"  Set and delete authenticated variable created by different"
> +	" key test.",
> +" uefirtmisc      (3 tests):",
> +"  Test for UEFI miscellaneous runtime service interfaces.",
> +"  Stress test for UEFI miscellaneous runtime service interfaces.",
> +"  Test GetNextHighMonotonicCount with invalid NULL parameter.",
> +" uefirttime      (35 tests):",
> +"  Test UEFI RT service get time interface.",
> +"  Test UEFI RT service get time interface, NULL time parameter.",
> +"  Test UEFI RT service get time interface, NULL time and NULL"
> +	" capabilties parameters.",
> +"  Test UEFI RT service set time interface.",
> +"  Test UEFI RT service set time interface, invalid year 1899.",
> +"  Test UEFI RT service set time interface, invalid year 10000.",
> +"  Test UEFI RT service set time interface, invalid month 0.",
> +"  Test UEFI RT service set time interface, invalid month 13.",
> +"  Test UEFI RT service set time interface, invalid day 0.",
> +"  Test UEFI RT service set time interface, invalid day 32.",
> +"  Test UEFI RT service set time interface, invalid hour 24.",
> +"  Test UEFI RT service set time interface, invalid minute 60.",
> +"  Test UEFI RT service set time interface, invalid second 60.",
> +"  Test UEFI RT service set time interface, invalid nanosecond"
> +	" 1000000000.",
> +"  Test UEFI RT service set time interface, invalid timezone -1441.",
> +"  Test UEFI RT service set time interface, invalid timezone 1441.",
> +"  Test UEFI RT service get wakeup time interface.",
> +"  Test UEFI RT service get wakeup time interface, NULL enabled"
> +	" parameter.",
> +"  Test UEFI RT service get wakeup time interface, NULL pending"
> +	" parameter.",
> +"  Test UEFI RT service get wakeup time interface, NULL time"
> +	" parameter.",
> +"  Test UEFI RT service get wakeup time interface, NULL enabled,"
> +	" pending and time parameters.",
> +"  Test UEFI RT service set wakeup time interface.",
> +"  Test UEFI RT service set wakeup time interface, NULL time"
> +	" parameter.",
> +"  Test UEFI RT service set wakeup time interface, invalid year 1899.",
> +"  Test UEFI RT service set wakeup time interface, invalid year 10000.",
> +"  Test UEFI RT service set wakeup time interface, invalid month 0.",
> +"  Test UEFI RT service set wakeup time interface, invalid month 13.",
> +"  Test UEFI RT service set wakeup time interface, invalid day 0.",
> +"  Test UEFI RT service set wakeup time interface, invalid day 32.",
> +"  Test UEFI RT service set wakeup time interface, invalid hour 24.",
> +"  Test UEFI RT service set wakeup time interface, invalid minute 60.",
> +"  Test UEFI RT service set wakeup time interface, invalid second 60.",
> +"  Test UEFI RT service set wakeup time interface, invalid"
> +	" nanosecond 1000000000.",
> +"  Test UEFI RT service set wakeup time interface, invalid"
> +	" timezone -1441.",
> +"  Test UEFI RT service set wakeup time interface, invalid"
> +	" timezone 1441.",
> +" uefirtvariable  (8 tests):",
> +"  Test UEFI RT service get variable interface.",
> +"  Test UEFI RT service get next variable name interface.",
> +"  Test UEFI RT service set variable interface.",
> +"  Test UEFI RT service query variable info interface.",
> +"  Test UEFI RT service variable interface stress test.",
> +"  Test UEFI RT service set variable interface stress test.",
> +"  Test UEFI RT service query variable info interface stress test.",
> +"  Test UEFI RT service get variable interface, invalid parameters.",
> +"",
> +"UEFI tests:",
> +#ifdef FWTS_ARCH_INTEL
> +" csm             (1 test):",
> +"  UEFI Compatibility Support Module test.",
> +#endif
> +" esrt            (1 test):",
> +"  Sanity check UEFI ESRT Table.",
> +" securebootcert  (1 test):",
> +"  UEFI secure boot test.",
> +" uefibootpath    (1 test):",
> +"  Test UEFI Boot Path Boot####.",
> +" uefirtauthvar   (12 tests):",
> +"  Create authenticated variable test.",
> +"  Authenticated variable test with the same authenticated variable.",
> +"  Authenticated variable test with another valid authenticated"
> +	" variable.",
> +"  Append authenticated variable test.",
> +"  Update authenticated variable test.",
> +"  Authenticated variable test with old authenticated variable.",
> +"  Delete authenticated variable test.",
> +"  Authenticated variable test with invalid modified data.",
> +"  Authenticated variable test with invalid modified timestamp.",
> +"  Authenticated variable test with different guid.",
> +"  Authenticated variable test with invalid attributes.",
> +"  Set and delete authenticated variable created by different"
> +	" key test.",
> +" uefirtmisc      (3 tests):",
> +"  Test for UEFI miscellaneous runtime service interfaces.",
> +"  Stress test for UEFI miscellaneous runtime service interfaces.",
> +"  Test GetNextHighMonotonicCount with invalid NULL parameter.",
> +" uefirttime      (35 tests):",
> +"  Test UEFI RT service get time interface.",
> +"  Test UEFI RT service get time interface, NULL time parameter.",
> +"  Test UEFI RT service get time interface, NULL time and NULL"
> +	" capabilties parameters.",
> +"  Test UEFI RT service set time interface.",
> +"  Test UEFI RT service set time interface, invalid year 1899.",
> +"  Test UEFI RT service set time interface, invalid year 10000.",
> +"  Test UEFI RT service set time interface, invalid month 0.",
> +"  Test UEFI RT service set time interface, invalid month 13.",
> +"  Test UEFI RT service set time interface, invalid day 0.",
> +"  Test UEFI RT service set time interface, invalid day 32.",
> +"  Test UEFI RT service set time interface, invalid hour 24.",
> +"  Test UEFI RT service set time interface, invalid minute 60.",
> +"  Test UEFI RT service set time interface, invalid second 60.",
> +"  Test UEFI RT service set time interface, invalid"
> +	" nanosecond 1000000000.",
> +"  Test UEFI RT service set time interface, invalid timezone -1441.",
> +"  Test UEFI RT service set time interface, invalid timezone 1441.",
> +"  Test UEFI RT service get wakeup time interface.",
> +"  Test UEFI RT service get wakeup time interface, NULL"
> +	" enabled parameter.",
> +"  Test UEFI RT service get wakeup time interface, NULL"
> +	" pending parameter.",
> +"  Test UEFI RT service get wakeup time interface, NULL"
> +	" time parameter.",
> +"  Test UEFI RT service get wakeup time interface, NULL"
> +	" enabled, pending and time parameters.",
> +"  Test UEFI RT service set wakeup time interface.",
> +"  Test UEFI RT service set wakeup time interface, NULL"
> +	" time parameter.",
> +"  Test UEFI RT service set wakeup time interface, invalid year 1899.",
> +"  Test UEFI RT service set wakeup time interface, invalid year 10000.",
> +"  Test UEFI RT service set wakeup time interface, invalid month 0.",
> +"  Test UEFI RT service set wakeup time interface, invalid month 13.",
> +"  Test UEFI RT service set wakeup time interface, invalid day 0.",
> +"  Test UEFI RT service set wakeup time interface, invalid day 32.",
> +"  Test UEFI RT service set wakeup time interface, invalid hour 24.",
> +"  Test UEFI RT service set wakeup time interface, invalid minute 60.",
> +"  Test UEFI RT service set wakeup time interface, invalid second 60.",
> +"  Test UEFI RT service set wakeup time interface, invalid"
> +	" nanosecond 1000000000.",
> +"  Test UEFI RT service set wakeup time interface, invalid"
> +	" timezone -1441.",
> +"  Test UEFI RT service set wakeup time interface, invalid"
> +	" timezone 1441.",
> +" uefirtvariable  (8 tests):",
> +"  Test UEFI RT service get variable interface.",
> +"  Test UEFI RT service get next variable name interface.",
> +"  Test UEFI RT service set variable interface.",
> +"  Test UEFI RT service query variable info interface.",
> +"  Test UEFI RT service variable interface stress test.",
> +"  Test UEFI RT service set variable interface stress test.",
> +"  Test UEFI RT service query variable info interface stress test.",
> +"  Test UEFI RT service get variable interface, invalid parameters.",
> +"",
> +"ACPI Spec Compliance tests:",
> +" fadt            (6 tests):",
> +"  ACPI FADT Description Table flag info.",
> +"  FADT checksum test.",
> +"  FADT revision test.",
> +"  ACPI FADT Description Table tests.",
> +"  Test FADT SCI_EN bit is enabled.",
> +"  Test FADT reset register.",
> +" madt            (5 tests):",
> +"  MADT checksum test.",
> +"  MADT revision test.",
> +"  MADT architecture minimum revision test.",
> +"  MADT flags field reserved bits test.",
> +"  MADT subtable tests.",
> +" rsdp            (1 test):",
> +"  RSDP Root System Description Pointer test.",
> +};
> +
> +static int show_log_create(fwts_framework *fw,
> +		char *show_abs_path_name,
> +		const char *log_name,
> +		char * log_template[],
> +		int log_array_size)
> +{
> +	int i, count;
> +	FILE *show_log;
> +
> +	char fq_log_name[PATH_MAX+1];
> +
> +	memset(fq_log_name, 0, sizeof(fq_log_name));
> +
> +	/* -1 for the slash in the snprintf concatenation */
> +	if (strlen(show_abs_path_name) + strlen(log_name)
> +		>= sizeof(fq_log_name)-1) {
> +		fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create1",
> +			"Unable to properly create"
> +			" the fwts-test logs.");
> +		return FWTS_ERROR;
> +	}
> +	count = snprintf(fq_log_name, sizeof(fq_log_name), "%s/%s",
> +		show_abs_path_name, log_name);
> +
> +	if ((count < 0) || (count >= (int)sizeof(fq_log_name))) {
> +		fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create2",
> +			"Unable to properly create"
> +			" the fwts-test logs.");
> +		return FWTS_ERROR;
> +	}
> +
> +	show_log = fopen(fq_log_name, "w+");
> +
> +	if (!show_log) {
> +		fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create3",
> +			"Unable to properly create"
> +			" the fwts-test logs.");
> +		return FWTS_ERROR;
> +	}
> +
> +	for ( i= 0; i < log_array_size; i++) {
> +		fprintf(show_log, "%s\n", log_template[i]);
> +
> +	}
> +	if (fclose(show_log)) {
> +		fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create4",
> +			"Unable to properly create"
> +			" the fwts-test logs.");
> +		return FWTS_ERROR;
> +	}
> +
> +	fwts_log_info(fw,
> +	"Dynamic creation of %s is complete", fq_log_name);
> +
> +	return FWTS_OK;
> +}
> +
> +static int show_logs_test1(fwts_framework *fw)
> +{
> +	const char show_all_log_name[] =
> +	"arg-show-tests-0001/arg-show-tests-0001.log";
> +	const char show_all_full_log_name[] =
> +	"arg-show-tests-full-0001/arg-show-tests-full-0001.log";
> +
> +	int rc = 0;
> +	char *fwtstestdir = NULL, *fwts_show_log_flags = NULL;
> +
> +	char *fwts_abs_path_name;
> +	char tmp_abs_path [PATH_MAX+1];
> +
> +	memset(tmp_abs_path, 0, sizeof(tmp_abs_path));
> +
> +	/* Use the inherited env var since these logs */
> +	/* are only used during make check tests      */
> +	/* For a fail safe use the FWTS_SRCDIR        */
> +	/* from config.h during direct invocation     */
> +	/* of show_logs                               */
> +
> +	fwtstestdir = getenv("FWTSTESTDIR");
> +	fwts_show_log_flags = getenv("FWTS_SHOW_LOGS");
> +
> +	if (fwtstestdir != NULL) {
> +		fwts_abs_path_name = realpath(fwtstestdir,
> +					tmp_abs_path);
> +	} else {
> +		if (FWTS_SRCDIR == NULL) {
> +			fwts_failed(fw, LOG_LEVEL_LOW,
> +				"show-logs-fq-log1",
> +				"Unable to properly create"
> +				" the fwts-test logs.");
> +			return FWTS_ERROR;
> +		} else {
> +			if (strlen(FWTS_SRCDIR)+11
> +				<= sizeof(tmp_abs_path)) {
> +				if (!(strncpy(tmp_abs_path,
> +					FWTS_SRCDIR,
> +					sizeof(tmp_abs_path))
> +					== NULL)) {
> +					fwts_abs_path_name =
> +						strncat(tmp_abs_path,
> +						"/fwts-test", 11);
> +				} else {
> +					fwts_failed(fw, LOG_LEVEL_LOW,
> +					"show-logs-fq-log2",
> +					"Unable to properly create"
> +					" the fwts-test logs.");
> +					return FWTS_ERROR;
> +				}
> +			}
> +		}
> +	}
> +
> +	if (fwts_abs_path_name == NULL) {
> +		fwts_failed(fw, LOG_LEVEL_LOW, "show-logs-fq-log3",
> +			"Unable to properly create"
> +			" the fwts-test logs.");
> +			return FWTS_ERROR;
> +	}
> +
> +	if (fwts_show_log_flags == NULL) {
> +		rc = show_log_create(fw,
> +			fwts_abs_path_name,
> +			show_all_full_log_name,
> +			fwts_show_all,
> +			FWTS_ARRAY_LEN(fwts_show_all));
> +		if (!rc) {
> +			rc = show_log_create(fw,
> +				fwts_abs_path_name,
> +				show_all_log_name,
> +				fwts_show,
> +				FWTS_ARRAY_LEN(fwts_show));
> +		}
> +	} else {
> +		if (!strncmp(fwts_show_log_flags, "BASE", 4)){
> +			rc = show_log_create(fw,
> +				fwts_abs_path_name,
> +				show_all_log_name,
> +				fwts_show,
> +				FWTS_ARRAY_LEN(fwts_show));
> +		} else {
> +			if (!strncmp(fwts_show_log_flags, "FULL", 4)) {
> +				rc = show_log_create(fw,
> +					fwts_abs_path_name,
> +					show_all_full_log_name,
> +					fwts_show_all,
> +					FWTS_ARRAY_LEN(fwts_show_all));
> +			}
> +		}
> +	}
> +
> +	if (!rc) {
> +		fwts_passed(fw, "Show Tests Log Files"
> +			" completed successfully.");
> +	} /* subroutines logged fwts failures */
> +
> +	return rc;
> +}
> +
> +static fwts_framework_minor_test show_logs_tests[] = {
> +	{ show_logs_test1, "Show Tests Log Files" },
> +	{ NULL, NULL }
> +};
> +
> +static fwts_framework_ops show_logs_ops = {
> +	.description = "Show Tests Log Files",
> +	.minor_tests = show_logs_tests
> +};
> +
> +FWTS_REGISTER("show_logs", &show_logs_ops, FWTS_TEST_EARLY,
> +	FWTS_FLAG_BATCH)
> 

The show* text is auto-generated from the each test at startup time, so
this is not really a good solution as we're duplicating this in
fwts_show_all[] and fwts_show[] arrays. Plus, maintaining this when we
add extra tests will be a maintenance burden.

Sorry, NACK.

Colin
Deborah McLemore July 5, 2016, 7:34 p.m. UTC | #2
Hi Colin,

The static log files (which are the two sources which are deleted below)
are already a maintenance item which must be updated with each new test
which is added.

The burden is only moved from updating the 2 static log files which are
then compared to the real output from the show and show all command.

Maybe I am not following the reply, can you elaborate ?

This patch allows the conditional compilation of what goes in the two log
files below.


>  delete mode 100644 fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
>  delete mode 100644
fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
=====================================
Deb McLemore
IBM OpenPower - IBM Systems
(512) 286 9980

debmc@us.ibm.com
debmc@linux.vnet.ibm.com - (plain text)
=====================================



From:	Colin Ian King <colin.king@canonical.com>
To:	Deb McLemore <debmc@linux.vnet.ibm.com>,
            fwts-devel@lists.ubuntu.com
Date:	07/05/2016 02:16 PM
Subject:	Re: [PATCH] show/show_logs: Add dynamic creation of fwts-test
            logs
Sent by:	fwts-devel-bounces@lists.ubuntu.com



On 05/07/16 20:05, Deb McLemore wrote:
> We added the capability to dynamically create (based on test)
> the content of the log files used to validate the show commands.
> This allows customization of the Makefile.am to optionally
> include objects to be linked.
>
> Signed-off-by: Deb McLemore <debmc@linux.vnet.ibm.com>
> ---
>  configure.ac                                       |    2 +
>  .../arg-show-tests-0001/arg-show-tests-0001.log    |  187 ---
>  fwts-test/arg-show-tests-0001/test-0001.sh         |   20 +-
>  fwts-test/arg-show-tests-0001/test-0002.sh         |   26 +-
>  .../arg-show-tests-full-0001.log                   |  930 ------------
>  fwts-test/arg-show-tests-full-0001/test-0001.sh    |   19 +-
>  src/Makefile.am                                    |    1 +
>  src/show/show_logs.c                               | 1480 ++++++++++++++
++++++
>  8 files changed, 1519 insertions(+), 1146 deletions(-)
>  delete mode 100644 fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
>  delete mode 100644
fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
>  create mode 100644 src/show/show_logs.c
>
> diff --git a/configure.ac b/configure.ac
> index e3e7512..0f15540 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -71,6 +71,8 @@
>  		   ])
>  		   AM_CONDITIONAL([HAVE_LIBFDT],
>  		 		   [test "x$ac_cv_search_fdt_check_header" !=
"xno"])
> +		   fwts_srcdir=`readlink -f $srcdir`
> +		   AC_DEFINE_UNQUOTED([FWTS_SRCDIR],["$fwts_srcdir"], [FWTS
absolute src path])
>  		   AC_FUNC_MALLOC
>  		   AC_FUNC_FORK
>  		   AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
> diff --git a/fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
b/fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
> deleted file mode 100644
> index 1a76b9d..0000000
> --- a/fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
> +++ /dev/null
> @@ -1,187 +0,0 @@
> -ACPI tests:
> - acpiinfo        General ACPI information test.
> - acpitables      ACPI table headers sanity tests.
> - apicinstance    Test for single instance of APIC/MADT table.
> - asf             ASF! Alert Standard Format Table test.
> - aspt            ASPT Table test.
> - bert            BERT Boot Error Record Table test.
> - bgrt            BGRT Boot Graphics Resource Table test.
> - boot            BOOT Table test.
> - checksum        ACPI table checksum test.
> - cpep            CPEP Corrected Platform Error Polling Table test.
> - csrt            CSRT Core System Resource Table test.
> - cstates         Processor C state support test.
> - dbg2            DBG2 (Debug Port Table 2) test.
> - dbgp            DBGP (Debug Port) Table test.
> - dmar            DMA Remapping (VT-d) test.
> - ecdt            ECDT Embedded Controller Boot Resources Table test.
> - einj            EINJ Error Injection Table test.
> - erst            ERST Error Record Serialization Table test.
> - facs            FACS Firmware ACPI Control Structure test.
> - fadt            FADT Fixed ACPI Description Table tests.
> - fpdt            FPDT Firmware Performance Data Table test.
> - gtdt            GTDT Generic Timer Description Table test.
> - hest            HEST Hardware Error Source Table test.
> - hpet            HPET IA-PC High Precision Event Timer Table tests.
> - iort            IORT IO Remapping Table test.
> - lpit            LPIT Low Power Idle Table test.
> - madt            MADT Multiple APIC Description Table (spec compliant).
> - mcfg            MCFG PCI Express* memory mapped config space test.
> - mchi            MCHI Management Controller Host Interface Table test.
> - method          ACPI DSDT Method Semantic tests.
> - msct            MSCT Maximum System Characteristics Table test.
> - msdm            MSDM Microsoft Data Management Table test.
> - pcc             Processor Clocking Control (PCC) test.
> - rsdp            RSDP Root System Description Pointer test.
> - rsdt            RSDT Root System Description Table test.
> - sbst            SBST Smart Battery Specification Table test.
> - slic            SLIC Software Licensing Description Table test.
> - slit            SLIT System Locality Distance Information test.
> - spcr            SPCR Serial Port Console Redirection Table test.
> - spmi            SPMI Service Processor Management Interface Description
Table test.
> - srat            SRAT System Resource Affinity Table test.
> - stao            STAO Status Override Table test.
> - tcpa            TCPA Trusted Computing Platform Alliance Capabilities
Table test.
> - tpm2            TPM2 Trusted Platform Module 2 test.
> - uefi            UEFI Data Table test.
> - waet            WAET Windows ACPI Emulated Devices Table test.
> - wdat            WDAT Microsoft Hardware Watchdog Action Table test.
> - wmi             Extract and analyse Windows Management Instrumentation
(WMI).
> - xenv            XENV Xen Environment Table tests.
> - xsdt            XSDT Extended System Description Table test.
> -
> -Batch tests:
> - acpiinfo        General ACPI information test.
> - acpitables      ACPI table headers sanity tests.
> - apicedge        APIC edge/level test.
> - apicinstance    Test for single instance of APIC/MADT table.
> - asf             ASF! Alert Standard Format Table test.
> - aspm            PCIe ASPM test.
> - aspt            ASPT Table test.
> - autobrightness  Automated LCD brightness test.
> - bert            BERT Boot Error Record Table test.
> - bgrt            BGRT Boot Graphics Resource Table test.
> - bios32          BIOS32 Service Directory test.
> - bios_info       Gather BIOS DMI information.
> - bmc_info        BMC Info
> - boot            BOOT Table test.
> - checksum        ACPI table checksum test.
> - cpep            CPEP Corrected Platform Error Polling Table test.
> - cpufreq         CPU frequency scaling tests.
> - crs             Test PCI host bridge configuration using _CRS.
> - csm             UEFI Compatibility Support Module test.
> - csrt            CSRT Core System Resource Table test.
> - cstates         Processor C state support test.
> - dbg2            DBG2 (Debug Port Table 2) test.
> - dbgp            DBGP (Debug Port) Table test.
> - dmar            DMA Remapping (VT-d) test.
> - dmicheck        DMI/SMBIOS table tests.
> - dt_base         Base device tree validity check
> - dt_sysinfo      Device tree system information test
> - ebda            Test EBDA region is mapped and reserved in memory map
table.
> - ecdt            ECDT Embedded Controller Boot Resources Table test.
> - einj            EINJ Error Injection Table test.
> - erst            ERST Error Record Serialization Table test.
> - facs            FACS Firmware ACPI Control Structure test.
> - fadt            FADT Fixed ACPI Description Table tests.
> - fan             Simple fan tests.
> - fpdt            FPDT Firmware Performance Data Table test.
> - gtdt            GTDT Generic Timer Description Table test.
> - hda_audio       HDA Audio Pin Configuration test.
> - hest            HEST Hardware Error Source Table test.
> - hpet            HPET IA-PC High Precision Event Timer Table tests.
> - iort            IORT IO Remapping Table test.
> - klog            Scan kernel log for errors and warnings.
> - lpit            LPIT Low Power Idle Table test.
> - madt            MADT Multiple APIC Description Table (spec compliant).
> - maxfreq         Test max CPU frequencies against max scaling frequency.
> - maxreadreq      Test firmware has set PCI Express MaxReadReq to a
higher value on non-motherboard devices.
> - mcfg            MCFG PCI Express* memory mapped config space test.
> - mchi            MCHI Management Controller Host Interface Table test.
> - method          ACPI DSDT Method Semantic tests.
> - microcode       Test if system is using latest microcode.
> - mpcheck         MultiProcessor Tables tests.
> - msct            MSCT Maximum System Characteristics Table test.
> - msdm            MSDM Microsoft Data Management Table test.
> - msr             MSR register tests.
> - mtrr            MTRR tests.
> - nx              Test if CPU NX is disabled by the BIOS.
> - olog            Run OLOG scan and analysis checks.
> - oops            Scan kernel log for Oopses.
> - osilinux        Disassemble DSDT to check for _OSI("Linux").
> - pcc             Processor Clocking Control (PCC) test.
> - pciirq          PCI IRQ Routing Table test.
> - pnp             BIOS Support Installation structure test.
> - prd_info        OPAL Processor Recovery Diagnostics Info
> - rsdp            RSDP Root System Description Pointer test.
> - rsdt            RSDT Root System Description Table test.
> - sbst            SBST Smart Battery Specification Table test.
> - securebootcert  UEFI secure boot test.
> - slic            SLIC Software Licensing Description Table test.
> - slit            SLIT System Locality Distance Information test.
> - spcr            SPCR Serial Port Console Redirection Table test.
> - spmi            SPMI Service Processor Management Interface Description
Table test.
> - srat            SRAT System Resource Affinity Table test.
> - stao            STAO Status Override Table test.
> - syntaxcheck     Re-assemble DSDT and SSDTs to find syntax errors and
warnings.
> - tcpa            TCPA Trusted Computing Platform Alliance Capabilities
Table test.
> - tpm2            TPM2 Trusted Platform Module 2 test.
> - uefi            UEFI Data Table test.
> - uefibootpath    Sanity check for UEFI Boot Path Boot####.
> - version         Gather kernel system information.
> - virt            CPU Virtualisation Configuration test.
> - waet            WAET Windows ACPI Emulated Devices Table test.
> - wakealarm       ACPI Wakealarm tests.
> - wdat            WDAT Microsoft Hardware Watchdog Action Table test.
> - wmi             Extract and analyse Windows Management Instrumentation
(WMI).
> - xenv            XENV Xen Environment Table tests.
> - xsdt            XSDT Extended System Description Table test.
> -
> -Interactive tests:
> - ac_adapter      Interactive ac_adapter power test.
> - battery         Battery tests.
> - brightness      Interactive LCD brightness test.
> - hotkey          Hotkey scan code tests.
> - lid             Interactive lid button test.
> - power_button    Interactive power_button button test.
> -
> -Power States tests:
> - s3              S3 suspend/resume test.
> - s3power         S3 power loss during suspend test (takes minimum of 10
minutes to run).
> - s4              S4 hibernate/resume test.
> -
> -Utilities:
> - acpidump        Dump ACPI tables.
> - cmosdump        Dump CMOS Memory.
> - crsdump         Dump ACPI _CRS resources.
> - ebdadump        Dump EBDA region.
> - esrtdump        Dump ESRT table.
> - gpedump         Dump GPEs.
> - memmapdump      Dump system memory map.
> - mpdump          Dump MultiProcessor Data.
> - plddump         Dump ACPI _PLD (Physical Device Location).
> - prsdump         Dump ACPI _PRS resources.
> - romdump         Dump ROM data.
> - uefidump        Dump UEFI variables.
> - uefivarinfo     UEFI variable info query.
> -
> -Unsafe tests:
> - uefirtauthvar   Authenticated variable tests.
> - uefirtmisc      UEFI miscellaneous runtime service interface tests.
> - uefirttime      UEFI Runtime service time interface tests.
> - uefirtvariable  UEFI Runtime service variable interface tests.
> -
> -UEFI tests:
> - csm             UEFI Compatibility Support Module test.
> - esrt            Sanity check UEFI ESRT Table.
> - securebootcert  UEFI secure boot test.
> - uefibootpath    Sanity check for UEFI Boot Path Boot####.
> - uefirtauthvar   Authenticated variable tests.
> - uefirtmisc      UEFI miscellaneous runtime service interface tests.
> - uefirttime      UEFI Runtime service time interface tests.
> - uefirtvariable  UEFI Runtime service variable interface tests.
> -
> -ACPI Spec Compliance tests:
> - fadt            FADT Fixed ACPI Description Table tests.
> - madt            MADT Multiple APIC Description Table (spec compliant).
> - rsdp            RSDP Root System Description Pointer test.
> diff --git a/fwts-test/arg-show-tests-0001/test-0001.sh
b/fwts-test/arg-show-tests-0001/test-0001.sh
> index a62071c..ade98a3 100755
> --- a/fwts-test/arg-show-tests-0001/test-0001.sh
> +++ b/fwts-test/arg-show-tests-0001/test-0001.sh
> @@ -3,23 +3,21 @@
>  TEST="Test -s option"
>  NAME=test-0001.sh
>  TMPLOG=$TMP/arg-show-tests.log.$$
> +export FWTS_SHOW_LOGS="BASE"
>
> -#
> -#  Non-x86 tests don't have WMI so skip this test
> -#
> -$FWTS --show-tests | grep wmi > /dev/null
> -if [ $? -eq 1 ]; then
> +# Dynamically create the log template per test
> +$FWTS show_logs &> /dev/null
> +if [ $? -ne 0 ]; then
>  		 echo SKIP: $TEST, $NAME
>  		 exit 77
>  fi
>
> -cols=$(stty -a | tr ';' '\n' | grep "columns" | cut -d' ' -f3)
2> /dev/null
>  #
>  #  If we can't set the tty then we can't test
>  #
> -stty cols 80 2> /dev/null
> -if [ $? -eq 1 ]; then
> -        tset 2> /dev/null
> +stty cols 80 &> /dev/null
> +if [ $? -ne 0 ]; then
> +        tset &> /dev/null
>          echo SKIP: $TEST, $NAME
>          exit 77
>  fi
> @@ -32,8 +30,8 @@ else
>  		 echo FAILED: $TEST, $NAME
>  fi
>
> -stty cols 80 2> /dev/null
> -tset 2> /dev/null
> +stty cols 80 &> /dev/null
> +tset &> /dev/null
>
>  rm $TMPLOG
>  exit $ret
> diff --git a/fwts-test/arg-show-tests-0001/test-0002.sh
b/fwts-test/arg-show-tests-0001/test-0002.sh
> index f92fd8f..078f3e7 100755
> --- a/fwts-test/arg-show-tests-0001/test-0002.sh
> +++ b/fwts-test/arg-show-tests-0001/test-0002.sh
> @@ -3,27 +3,25 @@
>  TEST="Test --show-tests option"
>  NAME=test-0002.sh
>  TMPLOG=$TMP/arg-show-tests.log.$$
> +export FWTS_SHOW_LOGS="BASE"
>
> -#
> -#  Non-x86 tests don't have WMI so skip this test
> -#
> -$FWTS --show-tests | grep wmi > /dev/null
> -if [ $? -eq 1 ]; then
> +# Dynamically create the log template per test
> +$FWTS show_logs &> /dev/null
> +if [ $? -ne 0 ]; then
>  		 echo SKIP: $TEST, $NAME
>  		 exit 77
>  fi
>
> -cols=$(stty -a | tr ';' '\n' | grep "columns" | cut -d' ' -f3)
2> /dev/null
>  #
>  #  If we can't set the tty then we can't test
>  #
> -stty cols 80 2> /dev/null
> -if [ $? -eq 1 ]; then
> -        tset 2> /dev/null
> -        echo SKIP: $TEST, $NAME
> -        exit 77
> +stty cols 80 &> /dev/null
> +if [ $? -ne 0 ]; then
> +		 tset &> /dev/null
> +		 echo SKIP: $TEST, $NAME
> +		 exit 77
>  fi
> -$FWTS -s > $TMPLOG
> +$FWTS --show-tests > $TMPLOG
>  diff $TMPLOG $FWTSTESTDIR/arg-show-tests-0001/arg-show-tests-0001.log >>
$FAILURE_LOG
>  ret=$?
>  if [ $ret -eq 0 ]; then
> @@ -32,8 +30,8 @@ else
>  		 echo FAILED: $TEST, $NAME
>  fi
>
> -stty cols 80 2> /dev/null
> -tset 2> /dev/null
> +stty cols 80 &> /dev/null
> +tset &> /dev/null
>
>  rm $TMPLOG
>  exit $ret
> diff --git
a/fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
b/fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
> deleted file mode 100644
> index 3eb5e3e..0000000
> --- a/fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
> +++ /dev/null
> @@ -1,930 +0,0 @@
> -ACPI tests:
> - acpiinfo        (3 tests):
> -  Determine Kernel ACPI version.
> -  Determine machine's ACPI version.
> -  Determine AML compiler.
> - acpitables      (1 test):
> -  Test ACPI headers.
> - apicinstance    (1 test):
> -  Test for single instance of APIC/MADT table.
> - asf             (1 test):
> -  ASF! Alert Standard Format Table test.
> - aspt            (1 test):
> -  ASPT Table test.
> - bert            (1 test):
> -  BERT Boot Error Record Table test.
> - bgrt            (1 test):
> -  BGRT Boot Graphics Resource Table test.
> - boot            (1 test):
> -  BOOT Table test.
> - checksum        (1 test):
> -  ACPI table checksum test.
> - cpep            (1 test):
> -  CPEP Corrected Platform Error Polling Table test.
> - csrt            (1 test):
> -  CSRT Core System Resource Table test.
> - cstates         (1 test):
> -  Test all CPUs C-states.
> - dbg2            (1 test):
> -  DBG2 (Debug Port Table 2) test.
> - dbgp            (1 test):
> -  DBGP (Debug Port) Table test.
> - dmar            (1 test):
> -  DMA Remapping test.
> - ecdt            (1 test):
> -  ECDT Embedded Controller Boot Resources Table test.
> - einj            (1 test):
> -  EINJ Error Injection Table test.
> - erst            (1 test):
> -  ERST Error Record Serialization Table test.
> - facs            (1 test):
> -  FACS Firmware ACPI Control Structure test.
> - fadt            (6 tests):
> -  ACPI FADT Description Table flag info.
> -  FADT checksum test.
> -  FADT revision test.
> -  ACPI FADT Description Table tests.
> -  Test FADT SCI_EN bit is enabled.
> -  Test FADT reset register.
> - fpdt            (1 test):
> -  FPDT Firmware Performance Data Table test.
> - gtdt            (1 test):
> -  GTDT Generic Timer Description Table test.
> - hest            (1 test):
> -  HEST Hardware Error Source Table test.
> - hpet            (4 tests):
> -  Test HPET base in kernel log.
> -  Test HPET base in HPET table.
> -  Test HPET base in DSDT and/or SSDT.
> -  Test HPET configuration.
> - iort            (1 test):
> -  IORT IO Remapping Table test.
> - lpit            (1 test):
> -  LPIT Low Power Idle Table test.
> - madt            (5 tests):
> -  MADT checksum test.
> -  MADT revision test.
> -  MADT architecture minimum revision test.
> -  MADT flags field reserved bits test.
> -  MADT subtable tests.
> - mcfg            (2 tests):
> -  Validate MCFG table.
> -  Validate MCFG PCI config space.
> - mchi            (1 test):
> -  MCHI Management Controller Host Interface Table test.
> - method          (191 tests):
> -  Test Method Names.
> -  Test _AEI.
> -  Test _EVT (Event Method).
> -  Test _DLM (Device Lock Mutex).
> -  Test _PIC (Inform AML of Interrupt Model).
> -  Test _CID (Compatible ID).
> -  Test _DDN (DOS Device Name).
> -  Test _HID (Hardware ID).
> -  Test _HRV (Hardware Revision Number).
> -  Test _MLS (Multiple Language String).
> -  Test _PLD (Physical Device Location).
> -  Test _SUB (Subsystem ID).
> -  Test _SUN (Slot User Number).
> -  Test _STR (String).
> -  Test _UID (Unique ID).
> -  Test _CDM (Clock Domain).
> -  Test _CRS (Current Resource Settings).
> -  Test _DSD (Device Specific Data).
> -  Test _DIS (Disable).
> -  Test _DMA (Direct Memory Access).
> -  Test _FIX (Fixed Register Resource Provider).
> -  Test _GSB (Global System Interrupt Base).
> -  Test _HPP (Hot Plug Parameters).
> -  Test _PRS (Possible Resource Settings).
> -  Test _PRT (PCI Routing Table).
> -  Test _PXM (Proximity).
> -  Test _CCA (Cache Coherency Attribute).
> -  Test _EDL (Eject Device List).
> -  Test _EJD (Ejection Dependent Device).
> -  Test _EJ0 (Eject).
> -  Test _EJ1 (Eject).
> -  Test _EJ2 (Eject).
> -  Test _EJ3 (Eject).
> -  Test _EJ4 (Eject).
> -  Test _LCK (Lock).
> -  Test _RMV (Remove).
> -  Test _STA (Status).
> -  Test _DEP (Operational Region Dependencies).
> -  Test _BDN (BIOS Dock Name).
> -  Test _BBN (Base Bus Number).
> -  Test _DCK (Dock).
> -  Test _INI (Initialize).
> -  Test _GLK (Global Lock).
> -  Test _SEG (Segment).
> -  Test _OFF (Set resource off).
> -  Test _ON_ (Set resource on).
> -  Test _DSW (Device Sleep Wake).
> -  Test _IRC (In Rush Current).
> -  Test _PRE (Power Resources for Enumeration).
> -  Test _PR0 (Power Resources for D0).
> -  Test _PR1 (Power Resources for D1).
> -  Test _PR2 (Power Resources for D2).
> -  Test _PR3 (Power Resources for D3).
> -  Test _PRW (Power Resources for Wake).
> -  Test _PS0 (Power State 0).
> -  Test _PS1 (Power State 1).
> -  Test _PS2 (Power State 2).
> -  Test _PS3 (Power State 3).
> -  Test _PSC (Power State Current).
> -  Test _PSE (Power State for Enumeration).
> -  Test _PSW (Power State Wake).
> -  Test _S1D (S1 Device State).
> -  Test _S2D (S2 Device State).
> -  Test _S3D (S3 Device State).
> -  Test _S4D (S4 Device State).
> -  Test _S0W (S0 Device Wake State).
> -  Test _S1W (S1 Device Wake State).
> -  Test _S2W (S2 Device Wake State).
> -  Test _S3W (S3 Device Wake State).
> -  Test _S4W (S4 Device Wake State).
> -  Test _RST (Device Reset).
> -  Test _PRR (Power Resource for Reset).
> -  Test _S0_ (S0 System State).
> -  Test _S1_ (S1 System State).
> -  Test _S2_ (S2 System State).
> -  Test _S3_ (S3 System State).
> -  Test _S4_ (S4 System State).
> -  Test _S5_ (S5 System State).
> -  Test _SWS (System Wake Source).
> -  Test _PSS (Performance Supported States).
> -  Test _CPC (Continuous Performance Control).
> -  Test _CSD (C State Dependencies).
> -  Test _CST (C States).
> -  Test _PCT (Performance Control).
> -  Test _PDL (P-State Depth Limit).
> -  Test _PPC (Performance Present Capabilities).
> -  Test _PPE (Polling for Platform Error).
> -  Test _PSD (Power State Dependencies).
> -  Test _PTC (Processor Throttling Control).
> -  Test _TDL (T-State Depth Limit).
> -  Test _TPC (Throttling Present Capabilities).
> -  Test _TSD (Throttling State Dependencies).
> -  Test _TSS (Throttling Supported States).
> -  Test _LPI (Low Power Idle States).
> -  Test _RDI (Resource Dependencies for Idle).
> -  Test _PUR (Processor Utilization Request).
> -  Test _MSG (Message).
> -  Test _SST (System Status).
> -  Test _ALC (Ambient Light Colour Chromaticity).
> -  Test _ALI (Ambient Light Illuminance).
> -  Test _ALT (Ambient Light Temperature).
> -  Test _ALP (Ambient Light Polling).
> -  Test _ALR (Ambient Light Response).
> -  Test _LID (Lid Status).
> -  Test _GTF (Get Task File).
> -  Test _GTM (Get Timing Mode).
> -  Test _MBM (Memory Bandwidth Monitoring Data).
> -  Test _UPC (USB Port Capabilities).
> -  Test _UPD (User Presence Detect).
> -  Test _UPP (User Presence Polling).
> -  Test _GCP (Get Capabilities).
> -  Test _GRT (Get Real Time).
> -  Test _GWS (Get Wake Status).
> -  Test _CWS (Clear Wake Status).
> -  Test _STP (Set Expired Timer Wake Policy).
> -  Test _STV (Set Timer Value).
> -  Test _TIP (Expired Timer Wake Policy).
> -  Test _TIV (Timer Values).
> -  Test _SBS (Smart Battery Subsystem).
> -  Test _BCT (Battery Charge Time).
> -  Test _BIF (Battery Information).
> -  Test _BIX (Battery Information Extended).
> -  Test _BMA (Battery Measurement Averaging).
> -  Test _BMC (Battery Maintenance Control).
> -  Test _BMD (Battery Maintenance Data).
> -  Test _BMS (Battery Measurement Sampling Time).
> -  Test _BST (Battery Status).
> -  Test _BTP (Battery Trip Point).
> -  Test _BTH (Battery Throttle Limit).
> -  Test _BTM (Battery Time).
> -  Test _PCL (Power Consumer List).
> -  Test _PIF (Power Source Information).
> -  Test _PRL (Power Source Redundancy List).
> -  Test _PSR (Power Source).
> -  Test _GAI (Get Averaging Level).
> -  Test _GHL (Get Harware Limit).
> -  Test _PMC (Power Meter Capabilities).
> -  Test _PMD (Power Meter Devices).
> -  Test _PMM (Power Meter Measurement).
> -  Test _WPC (Wireless Power Calibration).
> -  Test _WPP (Wireless Power Polling).
> -  Test _FIF (Fan Information).
> -  Test _FPS (Fan Performance States).
> -  Test _FSL (Fan Set Level).
> -  Test _FST (Fan Status).
> -  Test _ACx (Active Cooling).
> -  Test _ART (Active Cooling Relationship Table).
> -  Test _CRT (Critical Trip Point).
> -  Test _CR3 (Warm/Standby Temperature).
> -  Test _DTI (Device Temperature Indication).
> -  Test _HOT (Hot Temperature).
> -  Test _MTL (Minimum Throttle Limit).
> -  Test _NTT (Notification Temp Threshold).
> -  Test _PSL (Passive List).
> -  Test _PSV (Passive Temp).
> -  Test _RTV (Relative Temp Values).
> -  Test _SCP (Set Cooling Policy).
> -  Test _TC1 (Thermal Constant 1).
> -  Test _TC2 (Thermal Constant 2).
> -  Test _TFP (Thermal fast Sampling Period).
> -  Test _TMP (Thermal Zone Current Temp).
> -  Test _TPT (Trip Point Temperature).
> -  Test _TRT (Thermal Relationship Table).
> -  Test _TSN (Thermal Sensor Device).
> -  Test _TSP (Thermal Sampling Period).
> -  Test _TST (Temperature Sensor Threshold).
> -  Test _TZD (Thermal Zone Devices).
> -  Test _TZM (Thermal Zone member).
> -  Test _TZP (Thermal Zone Polling).
> -  Test _GPE (General Purpose Events).
> -  Test _EC_ (EC Offset Query).
> -  Test _PTS (Prepare to Sleep).
> -  Test _TTS (Transition to State).
> -  Test _WAK (System Wake).
> -  Test _ADR (Return Unique ID for Device).
> -  Test _BCL (Query List of Brightness Control Levels Supported).
> -  Test _BCM (Set Brightness Level).
> -  Test _BQC (Brightness Query Current Level).
> -  Test _DCS (Return the Status of Output Device).
> -  Test _DDC (Return the EDID for this Device).
> -  Test _DSS (Device Set State).
> -  Test _DGS (Query Graphics State).
> -  Test _DOD (Enumerate All Devices Attached to Display Adapter).
> -  Test _DOS (Enable/Disable Output Switching).
> -  Test _GPD (Get POST Device).
> -  Test _ROM (Get ROM Data).
> -  Test _SPD (Set POST Device).
> -  Test _VPO (Video POST Options).
> -  Test _CBA (Configuration Base Address).
> -  Test _IFT (IPMI Interface Type).
> -  Test _SRV (IPMI Interface Revision).
> - msct            (1 test):
> -  MSCT Maximum System Characteristics Table test.
> - msdm            (1 test):
> -  MSDM Microsoft Data Management Table test.
> - pcc             (1 test):
> -  Processor Clocking Control (PCC) test.
> - rsdp            (1 test):
> -  RSDP Root System Description Pointer test.
> - rsdt            (1 test):
> -  RSDT Root System Description Table test.
> - sbst            (1 test):
> -  SBST Smart Battery Specificiation Table test.
> - slic            (1 test):
> -  SLIC Software Licensing Description Table test.
> - slit            (1 test):
> -  SLIT System Locality Distance Information test.
> - spcr            (1 test):
> -  SPCR Serial Port Console Redirection Table test.
> - spmi            (1 test):
> -  SPMI Service Processor Management Interface Description Table test.
> - srat            (1 test):
> -  SRAT System Resource Affinity Table test.
> - stao            (1 test):
> -  STAO Status Override Table test.
> - tcpa            (1 test):
> -  Validate TCPA table.
> - tpm2            (1 test):
> -  Validate TPM2 table.
> - uefi            (1 test):
> -  UEFI Data Table test.
> - waet            (1 test):
> -  Windows ACPI Emulated Devices Table test.
> - wdat            (1 test):
> -  WDAT Microsoft Hardware Watchdog Action Table test.
> - wmi             (1 test):
> -  Windows Management Instrumentation test.
> - xenv            (1 test):
> -  Validate XENV table.
> - xsdt            (1 test):
> -  XSDT Extended System Description Table test.
> -
> -Batch tests:
> - acpiinfo        (3 tests):
> -  Determine Kernel ACPI version.
> -  Determine machine's ACPI version.
> -  Determine AML compiler.
> - acpitables      (1 test):
> -  Test ACPI headers.
> - apicedge        (1 test):
> -  Legacy and PCI Interrupt Edge/Level trigger tests.
> - apicinstance    (1 test):
> -  Test for single instance of APIC/MADT table.
> - asf             (1 test):
> -  ASF! Alert Standard Format Table test.
> - aspm            (2 tests):
> -  PCIe ASPM ACPI test.
> -  PCIe ASPM registers test.
> - aspt            (1 test):
> -  ASPT Table test.
> - autobrightness  (2 tests):
> -  Test for maximum and actual brightness.
> -  Change actual brightness.
> - bert            (1 test):
> -  BERT Boot Error Record Table test.
> - bgrt            (1 test):
> -  BGRT Boot Graphics Resource Table test.
> - bios32          (1 test):
> -  BIOS32 Service Directory test.
> - bios_info       (1 test):
> -  Gather BIOS DMI information
> - bmc_info        (1 test):
> -  BMC Info
> - boot            (1 test):
> -  BOOT Table test.
> - checksum        (1 test):
> -  ACPI table checksum test.
> - cpep            (1 test):
> -  CPEP Corrected Platform Error Polling Table test.
> - cpufreq         (7 tests):
> -  CPU frequency table consistency
> -  CPU frequency table duplicates
> -  CPU frequency firmware limits
> -  CPU frequency claimed maximum
> -  CPU frequency SW_ANY control
> -  CPU frequency SW_ALL control
> -  CPU frequency performance tests.
> - crs             (1 test):
> -  Test PCI host bridge configuration using _CRS.
> - csm             (1 test):
> -  UEFI Compatibility Support Module test.
> - csrt            (1 test):
> -  CSRT Core System Resource Table test.
> - cstates         (1 test):
> -  Test all CPUs C-states.
> - dbg2            (1 test):
> -  DBG2 (Debug Port Table 2) test.
> - dbgp            (1 test):
> -  DBGP (Debug Port) Table test.
> - dmar            (1 test):
> -  DMA Remapping test.
> - dmicheck        (3 tests):
> -  Find and test SMBIOS Table Entry Points.
> -  Test DMI/SMBIOS tables for errors.
> -  Test DMI/SMBIOS3 tables for errors.
> - dt_base         (3 tests):
> -  Check device tree presence
> -  Check device tree baseline validity
> -  Check device tree warnings
> - dt_sysinfo      (3 tests):
> -  Check model property
> -  Check system-id property
> -  Check OpenPOWER Reference compatible
> - ebda            (1 test):
> -  Test EBDA is reserved in E820 table.
> - ecdt            (1 test):
> -  ECDT Embedded Controller Boot Resources Table test.
> - einj            (1 test):
> -  EINJ Error Injection Table test.
> - erst            (1 test):
> -  ERST Error Record Serialization Table test.
> - facs            (1 test):
> -  FACS Firmware ACPI Control Structure test.
> - fadt            (6 tests):
> -  ACPI FADT Description Table flag info.
> -  FADT checksum test.
> -  FADT revision test.
> -  ACPI FADT Description Table tests.
> -  Test FADT SCI_EN bit is enabled.
> -  Test FADT reset register.
> - fan             (2 tests):
> -  Test fan status.
> -  Load system, check CPU fan status.
> - fpdt            (1 test):
> -  FPDT Firmware Performance Data Table test.
> - gtdt            (1 test):
> -  GTDT Generic Timer Description Table test.
> - hda_audio       (1 test):
> -  HDA Audio Pin Configuration test.
> - hest            (1 test):
> -  HEST Hardware Error Source Table test.
> - hpet            (4 tests):
> -  Test HPET base in kernel log.
> -  Test HPET base in HPET table.
> -  Test HPET base in DSDT and/or SSDT.
> -  Test HPET configuration.
> - iort            (1 test):
> -  IORT IO Remapping Table test.
> - klog            (1 test):
> -  Kernel log error check.
> - lpit            (1 test):
> -  LPIT Low Power Idle Table test.
> - madt            (5 tests):
> -  MADT checksum test.
> -  MADT revision test.
> -  MADT architecture minimum revision test.
> -  MADT flags field reserved bits test.
> -  MADT subtable tests.
> - maxfreq         (1 test):
> -  Maximum CPU frequency test.
> - maxreadreq      (1 test):
> -  Test firmware settings MaxReadReq for PCI Express devices.
> - mcfg            (2 tests):
> -  Validate MCFG table.
> -  Validate MCFG PCI config space.
> - mchi            (1 test):
> -  MCHI Management Controller Host Interface Table test.
> - method          (191 tests):
> -  Test Method Names.
> -  Test _AEI.
> -  Test _EVT (Event Method).
> -  Test _DLM (Device Lock Mutex).
> -  Test _PIC (Inform AML of Interrupt Model).
> -  Test _CID (Compatible ID).
> -  Test _DDN (DOS Device Name).
> -  Test _HID (Hardware ID).
> -  Test _HRV (Hardware Revision Number).
> -  Test _MLS (Multiple Language String).
> -  Test _PLD (Physical Device Location).
> -  Test _SUB (Subsystem ID).
> -  Test _SUN (Slot User Number).
> -  Test _STR (String).
> -  Test _UID (Unique ID).
> -  Test _CDM (Clock Domain).
> -  Test _CRS (Current Resource Settings).
> -  Test _DSD (Device Specific Data).
> -  Test _DIS (Disable).
> -  Test _DMA (Direct Memory Access).
> -  Test _FIX (Fixed Register Resource Provider).
> -  Test _GSB (Global System Interrupt Base).
> -  Test _HPP (Hot Plug Parameters).
> -  Test _PRS (Possible Resource Settings).
> -  Test _PRT (PCI Routing Table).
> -  Test _PXM (Proximity).
> -  Test _CCA (Cache Coherency Attribute).
> -  Test _EDL (Eject Device List).
> -  Test _EJD (Ejection Dependent Device).
> -  Test _EJ0 (Eject).
> -  Test _EJ1 (Eject).
> -  Test _EJ2 (Eject).
> -  Test _EJ3 (Eject).
> -  Test _EJ4 (Eject).
> -  Test _LCK (Lock).
> -  Test _RMV (Remove).
> -  Test _STA (Status).
> -  Test _DEP (Operational Region Dependencies).
> -  Test _BDN (BIOS Dock Name).
> -  Test _BBN (Base Bus Number).
> -  Test _DCK (Dock).
> -  Test _INI (Initialize).
> -  Test _GLK (Global Lock).
> -  Test _SEG (Segment).
> -  Test _OFF (Set resource off).
> -  Test _ON_ (Set resource on).
> -  Test _DSW (Device Sleep Wake).
> -  Test _IRC (In Rush Current).
> -  Test _PRE (Power Resources for Enumeration).
> -  Test _PR0 (Power Resources for D0).
> -  Test _PR1 (Power Resources for D1).
> -  Test _PR2 (Power Resources for D2).
> -  Test _PR3 (Power Resources for D3).
> -  Test _PRW (Power Resources for Wake).
> -  Test _PS0 (Power State 0).
> -  Test _PS1 (Power State 1).
> -  Test _PS2 (Power State 2).
> -  Test _PS3 (Power State 3).
> -  Test _PSC (Power State Current).
> -  Test _PSE (Power State for Enumeration).
> -  Test _PSW (Power State Wake).
> -  Test _S1D (S1 Device State).
> -  Test _S2D (S2 Device State).
> -  Test _S3D (S3 Device State).
> -  Test _S4D (S4 Device State).
> -  Test _S0W (S0 Device Wake State).
> -  Test _S1W (S1 Device Wake State).
> -  Test _S2W (S2 Device Wake State).
> -  Test _S3W (S3 Device Wake State).
> -  Test _S4W (S4 Device Wake State).
> -  Test _RST (Device Reset).
> -  Test _PRR (Power Resource for Reset).
> -  Test _S0_ (S0 System State).
> -  Test _S1_ (S1 System State).
> -  Test _S2_ (S2 System State).
> -  Test _S3_ (S3 System State).
> -  Test _S4_ (S4 System State).
> -  Test _S5_ (S5 System State).
> -  Test _SWS (System Wake Source).
> -  Test _PSS (Performance Supported States).
> -  Test _CPC (Continuous Performance Control).
> -  Test _CSD (C State Dependencies).
> -  Test _CST (C States).
> -  Test _PCT (Performance Control).
> -  Test _PDL (P-State Depth Limit).
> -  Test _PPC (Performance Present Capabilities).
> -  Test _PPE (Polling for Platform Error).
> -  Test _PSD (Power State Dependencies).
> -  Test _PTC (Processor Throttling Control).
> -  Test _TDL (T-State Depth Limit).
> -  Test _TPC (Throttling Present Capabilities).
> -  Test _TSD (Throttling State Dependencies).
> -  Test _TSS (Throttling Supported States).
> -  Test _LPI (Low Power Idle States).
> -  Test _RDI (Resource Dependencies for Idle).
> -  Test _PUR (Processor Utilization Request).
> -  Test _MSG (Message).
> -  Test _SST (System Status).
> -  Test _ALC (Ambient Light Colour Chromaticity).
> -  Test _ALI (Ambient Light Illuminance).
> -  Test _ALT (Ambient Light Temperature).
> -  Test _ALP (Ambient Light Polling).
> -  Test _ALR (Ambient Light Response).
> -  Test _LID (Lid Status).
> -  Test _GTF (Get Task File).
> -  Test _GTM (Get Timing Mode).
> -  Test _MBM (Memory Bandwidth Monitoring Data).
> -  Test _UPC (USB Port Capabilities).
> -  Test _UPD (User Presence Detect).
> -  Test _UPP (User Presence Polling).
> -  Test _GCP (Get Capabilities).
> -  Test _GRT (Get Real Time).
> -  Test _GWS (Get Wake Status).
> -  Test _CWS (Clear Wake Status).
> -  Test _STP (Set Expired Timer Wake Policy).
> -  Test _STV (Set Timer Value).
> -  Test _TIP (Expired Timer Wake Policy).
> -  Test _TIV (Timer Values).
> -  Test _SBS (Smart Battery Subsystem).
> -  Test _BCT (Battery Charge Time).
> -  Test _BIF (Battery Information).
> -  Test _BIX (Battery Information Extended).
> -  Test _BMA (Battery Measurement Averaging).
> -  Test _BMC (Battery Maintenance Control).
> -  Test _BMD (Battery Maintenance Data).
> -  Test _BMS (Battery Measurement Sampling Time).
> -  Test _BST (Battery Status).
> -  Test _BTP (Battery Trip Point).
> -  Test _BTH (Battery Throttle Limit).
> -  Test _BTM (Battery Time).
> -  Test _PCL (Power Consumer List).
> -  Test _PIF (Power Source Information).
> -  Test _PRL (Power Source Redundancy List).
> -  Test _PSR (Power Source).
> -  Test _GAI (Get Averaging Level).
> -  Test _GHL (Get Harware Limit).
> -  Test _PMC (Power Meter Capabilities).
> -  Test _PMD (Power Meter Devices).
> -  Test _PMM (Power Meter Measurement).
> -  Test _WPC (Wireless Power Calibration).
> -  Test _WPP (Wireless Power Polling).
> -  Test _FIF (Fan Information).
> -  Test _FPS (Fan Performance States).
> -  Test _FSL (Fan Set Level).
> -  Test _FST (Fan Status).
> -  Test _ACx (Active Cooling).
> -  Test _ART (Active Cooling Relationship Table).
> -  Test _CRT (Critical Trip Point).
> -  Test _CR3 (Warm/Standby Temperature).
> -  Test _DTI (Device Temperature Indication).
> -  Test _HOT (Hot Temperature).
> -  Test _MTL (Minimum Throttle Limit).
> -  Test _NTT (Notification Temp Threshold).
> -  Test _PSL (Passive List).
> -  Test _PSV (Passive Temp).
> -  Test _RTV (Relative Temp Values).
> -  Test _SCP (Set Cooling Policy).
> -  Test _TC1 (Thermal Constant 1).
> -  Test _TC2 (Thermal Constant 2).
> -  Test _TFP (Thermal fast Sampling Period).
> -  Test _TMP (Thermal Zone Current Temp).
> -  Test _TPT (Trip Point Temperature).
> -  Test _TRT (Thermal Relationship Table).
> -  Test _TSN (Thermal Sensor Device).
> -  Test _TSP (Thermal Sampling Period).
> -  Test _TST (Temperature Sensor Threshold).
> -  Test _TZD (Thermal Zone Devices).
> -  Test _TZM (Thermal Zone member).
> -  Test _TZP (Thermal Zone Polling).
> -  Test _GPE (General Purpose Events).
> -  Test _EC_ (EC Offset Query).
> -  Test _PTS (Prepare to Sleep).
> -  Test _TTS (Transition to State).
> -  Test _WAK (System Wake).
> -  Test _ADR (Return Unique ID for Device).
> -  Test _BCL (Query List of Brightness Control Levels Supported).
> -  Test _BCM (Set Brightness Level).
> -  Test _BQC (Brightness Query Current Level).
> -  Test _DCS (Return the Status of Output Device).
> -  Test _DDC (Return the EDID for this Device).
> -  Test _DSS (Device Set State).
> -  Test _DGS (Query Graphics State).
> -  Test _DOD (Enumerate All Devices Attached to Display Adapter).
> -  Test _DOS (Enable/Disable Output Switching).
> -  Test _GPD (Get POST Device).
> -  Test _ROM (Get ROM Data).
> -  Test _SPD (Set POST Device).
> -  Test _VPO (Video POST Options).
> -  Test _CBA (Configuration Base Address).
> -  Test _IFT (IPMI Interface Type).
> -  Test _SRV (IPMI Interface Revision).
> - microcode       (1 test):
> -  Test for most recent microcode being loaded.
> - mpcheck         (9 tests):
> -  Test MP header.
> -  Test MP CPU entries.
> -  Test MP Bus entries.
> -  Test MP IO APIC entries.
> -  Test MP IO Interrupt entries.
> -  Test MP Local Interrupt entries.
> -  Test MP System Address entries.
> -  Test MP Bus Hierarchy entries.
> -  Test MP Compatible Bus Address Space entries.
> - msct            (1 test):
> -  MSCT Maximum System Characteristics Table test.
> - msdm            (1 test):
> -  MSDM Microsoft Data Management Table test.
> - msr             (5 tests):
> -  Test CPU generic MSRs.
> -  Test CPU specific model MSRs.
> -  Test all P State Ratios.
> -  Test C1 and C3 autodemotion.
> -  Test SMRR MSR registers.
> - mtrr            (3 tests):
> -  Validate the kernel MTRR IOMEM setup.
> -  Validate the MTRR setup across all processors.
> -  Test for AMD MtrrFixDramModEn being cleared by the BIOS.
> - nx              (3 tests):
> -  Test CPU NX capability.
> -  Test all CPUs have same BIOS set NX flag.
> -  Test all CPUs have same msr setting in MSR 0x1a0.
> - olog            (1 test):
> -  OLOG scan and analysis checks results.
> - oops            (1 test):
> -  Kernel log oops check.
> - osilinux        (1 test):
> -  Disassemble DSDT to check for _OSI("Linux").
> - pcc             (1 test):
> -  Processor Clocking Control (PCC) test.
> - pciirq          (1 test):
> -  PCI IRQ Routing Table test.
> - pnp             (1 test):
> -  PnP BIOS Support Installation structure test.
> - prd_info        (1 test):
> -  OPAL Processor Recovery Diagnostics Info
> - rsdp            (1 test):
> -  RSDP Root System Description Pointer test.
> - rsdt            (1 test):
> -  RSDT Root System Description Table test.
> - sbst            (1 test):
> -  SBST Smart Battery Specificiation Table test.
> - securebootcert  (1 test):
> -  UEFI secure boot test.
> - slic            (1 test):
> -  SLIC Software Licensing Description Table test.
> - slit            (1 test):
> -  SLIT System Locality Distance Information test.
> - spcr            (1 test):
> -  SPCR Serial Port Console Redirection Table test.
> - spmi            (1 test):
> -  SPMI Service Processor Management Interface Description Table test.
> - srat            (1 test):
> -  SRAT System Resource Affinity Table test.
> - stao            (1 test):
> -  STAO Status Override Table test.
> - syntaxcheck     (1 test):
> -  Disassemble and reassemble DSDT and SSDTs.
> - tcpa            (1 test):
> -  Validate TCPA table.
> - tpm2            (1 test):
> -  Validate TPM2 table.
> - uefi            (1 test):
> -  UEFI Data Table test.
> - uefibootpath    (1 test):
> -  Test UEFI Boot Path Boot####.
> - version         (4 tests):
> -  Gather kernel signature.
> -  Gather kernel system information.
> -  Gather kernel boot command line.
> -  Gather ACPI driver version.
> - virt            (1 test):
> -  CPU Virtualisation Configuration test.
> - waet            (1 test):
> -  Windows ACPI Emulated Devices Table test.
> - wakealarm       (5 tests):
> -  Test existence of RTC with alarm interface.
> -  Trigger wakealarm for 1 seconds in the future.
> -  Test if wakealarm is fired.
> -  Multiple wakealarm firing tests.
> -  Reset wakealarm time.
> - wdat            (1 test):
> -  WDAT Microsoft Hardware Watchdog Action Table test.
> - wmi             (1 test):
> -  Windows Management Instrumentation test.
> - xenv            (1 test):
> -  Validate XENV table.
> - xsdt            (1 test):
> -  XSDT Extended System Description Table test.
> -
> -Interactive tests:
> - ac_adapter      (3 tests):
> -  Test ACPI ac_adapter state.
> -  Test ac_adapter initial on-line state.
> -  Test ac_adapter state changes.
> - battery         (1 test):
> -  Battery test.
> - brightness      (3 tests):
> -  Observe all brightness changes.
> -  Observe min, max brightness changes.
> -  Test brightness hotkeys.
> - hotkey          (1 test):
> -  Hotkey keypress checks.
> - lid             (3 tests):
> -  Test LID buttons report open correctly.
> -  Test LID buttons on a single open/close.
> -  Test LID buttons on multiple open/close events.
> - power_button    (1 test):
> -  Test press of power button and ACPI event.
> -
> -Power States tests:
> - s3              (1 test):
> -  S3 suspend/resume test.
> - s3power         (1 test):
> -  S3 power loss during suspend test.
> - s4              (1 test):
> -  S4 hibernate/resume test.
> -
> -Utilities:
> - acpidump        (1 test):
> -  Dump ACPI tables.
> - cmosdump        (1 test):
> -  Dump CMOS Memory.
> - crsdump         (1 test):
> -  Dump ACPI _CRS (Current Resource Settings).
> - ebdadump        (1 test):
> -  Dump EBDA region.
> - esrtdump        (1 test):
> -  Dump ESRT Table.
> - gpedump         (1 test):
> -  Dump GPEs.
> - memmapdump      (1 test):
> -  Dump system memory map.
> - mpdump          (1 test):
> -  Dump Multi Processor Data.
> - plddump         (1 test):
> -  Dump ACPI _PLD (Physical Device Location).
> - prsdump         (1 test):
> -  Dump ACPI _PRS (Possible Resource Settings).
> - romdump         (1 test):
> -  Dump ROM data.
> - uefidump        (1 test):
> -  Dump UEFI Variables.
> - uefivarinfo     (1 test):
> -  UEFI variable info query.
> -
> -Unsafe tests:
> - uefirtauthvar   (12 tests):
> -  Create authenticated variable test.
> -  Authenticated variable test with the same authenticated variable.
> -  Authenticated variable test with another valid authenticated variable.
> -  Append authenticated variable test.
> -  Update authenticated variable test.
> -  Authenticated variable test with old authenticated variable.
> -  Delete authenticated variable test.
> -  Authenticated variable test with invalid modified data.
> -  Authenticated variable test with invalid modified timestamp.
> -  Authenticated variable test with different guid.
> -  Authenticated variable test with invalid attributes.
> -  Set and delete authenticated variable created by different key test.
> - uefirtmisc      (3 tests):
> -  Test for UEFI miscellaneous runtime service interfaces.
> -  Stress test for UEFI miscellaneous runtime service interfaces.
> -  Test GetNextHighMonotonicCount with invalid NULL parameter.
> - uefirttime      (35 tests):
> -  Test UEFI RT service get time interface.
> -  Test UEFI RT service get time interface, NULL time parameter.
> -  Test UEFI RT service get time interface, NULL time and NULL
capabilties parameters.
> -  Test UEFI RT service set time interface.
> -  Test UEFI RT service set time interface, invalid year 1899.
> -  Test UEFI RT service set time interface, invalid year 10000.
> -  Test UEFI RT service set time interface, invalid month 0.
> -  Test UEFI RT service set time interface, invalid month 13.
> -  Test UEFI RT service set time interface, invalid day 0.
> -  Test UEFI RT service set time interface, invalid day 32.
> -  Test UEFI RT service set time interface, invalid hour 24.
> -  Test UEFI RT service set time interface, invalid minute 60.
> -  Test UEFI RT service set time interface, invalid second 60.
> -  Test UEFI RT service set time interface, invalid nanosecond
1000000000.
> -  Test UEFI RT service set time interface, invalid timezone -1441.
> -  Test UEFI RT service set time interface, invalid timezone 1441.
> -  Test UEFI RT service get wakeup time interface.
> -  Test UEFI RT service get wakeup time interface, NULL enabled
parameter.
> -  Test UEFI RT service get wakeup time interface, NULL pending
parameter.
> -  Test UEFI RT service get wakeup time interface, NULL time parameter.
> -  Test UEFI RT service get wakeup time interface, NULL enabled, pending
and time parameters.
> -  Test UEFI RT service set wakeup time interface.
> -  Test UEFI RT service set wakeup time interface, NULL time parameter.
> -  Test UEFI RT service set wakeup time interface, invalid year 1899.
> -  Test UEFI RT service set wakeup time interface, invalid year 10000.
> -  Test UEFI RT service set wakeup time interface, invalid month 0.
> -  Test UEFI RT service set wakeup time interface, invalid month 13.
> -  Test UEFI RT service set wakeup time interface, invalid day 0.
> -  Test UEFI RT service set wakeup time interface, invalid day 32.
> -  Test UEFI RT service set wakeup time interface, invalid hour 24.
> -  Test UEFI RT service set wakeup time interface, invalid minute 60.
> -  Test UEFI RT service set wakeup time interface, invalid second 60.
> -  Test UEFI RT service set wakeup time interface, invalid nanosecond
1000000000.
> -  Test UEFI RT service set wakeup time interface, invalid timezone
-1441.
> -  Test UEFI RT service set wakeup time interface, invalid timezone 1441.
> - uefirtvariable  (8 tests):
> -  Test UEFI RT service get variable interface.
> -  Test UEFI RT service get next variable name interface.
> -  Test UEFI RT service set variable interface.
> -  Test UEFI RT service query variable info interface.
> -  Test UEFI RT service variable interface stress test.
> -  Test UEFI RT service set variable interface stress test.
> -  Test UEFI RT service query variable info interface stress test.
> -  Test UEFI RT service get variable interface, invalid parameters.
> -
> -UEFI tests:
> - csm             (1 test):
> -  UEFI Compatibility Support Module test.
> - esrt            (1 test):
> -  Sanity check UEFI ESRT Table.
> - securebootcert  (1 test):
> -  UEFI secure boot test.
> - uefibootpath    (1 test):
> -  Test UEFI Boot Path Boot####.
> - uefirtauthvar   (12 tests):
> -  Create authenticated variable test.
> -  Authenticated variable test with the same authenticated variable.
> -  Authenticated variable test with another valid authenticated variable.
> -  Append authenticated variable test.
> -  Update authenticated variable test.
> -  Authenticated variable test with old authenticated variable.
> -  Delete authenticated variable test.
> -  Authenticated variable test with invalid modified data.
> -  Authenticated variable test with invalid modified timestamp.
> -  Authenticated variable test with different guid.
> -  Authenticated variable test with invalid attributes.
> -  Set and delete authenticated variable created by different key test.
> - uefirtmisc      (3 tests):
> -  Test for UEFI miscellaneous runtime service interfaces.
> -  Stress test for UEFI miscellaneous runtime service interfaces.
> -  Test GetNextHighMonotonicCount with invalid NULL parameter.
> - uefirttime      (35 tests):
> -  Test UEFI RT service get time interface.
> -  Test UEFI RT service get time interface, NULL time parameter.
> -  Test UEFI RT service get time interface, NULL time and NULL
capabilties parameters.
> -  Test UEFI RT service set time interface.
> -  Test UEFI RT service set time interface, invalid year 1899.
> -  Test UEFI RT service set time interface, invalid year 10000.
> -  Test UEFI RT service set time interface, invalid month 0.
> -  Test UEFI RT service set time interface, invalid month 13.
> -  Test UEFI RT service set time interface, invalid day 0.
> -  Test UEFI RT service set time interface, invalid day 32.
> -  Test UEFI RT service set time interface, invalid hour 24.
> -  Test UEFI RT service set time interface, invalid minute 60.
> -  Test UEFI RT service set time interface, invalid second 60.
> -  Test UEFI RT service set time interface, invalid nanosecond
1000000000.
> -  Test UEFI RT service set time interface, invalid timezone -1441.
> -  Test UEFI RT service set time interface, invalid timezone 1441.
> -  Test UEFI RT service get wakeup time interface.
> -  Test UEFI RT service get wakeup time interface, NULL enabled
parameter.
> -  Test UEFI RT service get wakeup time interface, NULL pending
parameter.
> -  Test UEFI RT service get wakeup time interface, NULL time parameter.
> -  Test UEFI RT service get wakeup time interface, NULL enabled, pending
and time parameters.
> -  Test UEFI RT service set wakeup time interface.
> -  Test UEFI RT service set wakeup time interface, NULL time parameter.
> -  Test UEFI RT service set wakeup time interface, invalid year 1899.
> -  Test UEFI RT service set wakeup time interface, invalid year 10000.
> -  Test UEFI RT service set wakeup time interface, invalid month 0.
> -  Test UEFI RT service set wakeup time interface, invalid month 13.
> -  Test UEFI RT service set wakeup time interface, invalid day 0.
> -  Test UEFI RT service set wakeup time interface, invalid day 32.
> -  Test UEFI RT service set wakeup time interface, invalid hour 24.
> -  Test UEFI RT service set wakeup time interface, invalid minute 60.
> -  Test UEFI RT service set wakeup time interface, invalid second 60.
> -  Test UEFI RT service set wakeup time interface, invalid nanosecond
1000000000.
> -  Test UEFI RT service set wakeup time interface, invalid timezone
-1441.
> -  Test UEFI RT service set wakeup time interface, invalid timezone 1441.
> - uefirtvariable  (8 tests):
> -  Test UEFI RT service get variable interface.
> -  Test UEFI RT service get next variable name interface.
> -  Test UEFI RT service set variable interface.
> -  Test UEFI RT service query variable info interface.
> -  Test UEFI RT service variable interface stress test.
> -  Test UEFI RT service set variable interface stress test.
> -  Test UEFI RT service query variable info interface stress test.
> -  Test UEFI RT service get variable interface, invalid parameters.
> -
> -ACPI Spec Compliance tests:
> - fadt            (6 tests):
> -  ACPI FADT Description Table flag info.
> -  FADT checksum test.
> -  FADT revision test.
> -  ACPI FADT Description Table tests.
> -  Test FADT SCI_EN bit is enabled.
> -  Test FADT reset register.
> - madt            (5 tests):
> -  MADT checksum test.
> -  MADT revision test.
> -  MADT architecture minimum revision test.
> -  MADT flags field reserved bits test.
> -  MADT subtable tests.
> - rsdp            (1 test):
> -  RSDP Root System Description Pointer test.
> diff --git a/fwts-test/arg-show-tests-full-0001/test-0001.sh
b/fwts-test/arg-show-tests-full-0001/test-0001.sh
> index b4e74f7..1302bd3 100755
> --- a/fwts-test/arg-show-tests-full-0001/test-0001.sh
> +++ b/fwts-test/arg-show-tests-full-0001/test-0001.sh
> @@ -3,17 +3,25 @@
>  TEST="Test --show-tests-full option"
>  NAME=test-0001.sh
>  TMPLOG=$TMP/arg-show-tests-full.log.$$
> +export FWTS_SHOW_LOGS="FULL"
> +
> +# Dynamically create the log template per test
> +$FWTS show_logs &> /dev/null
> +if [ $? -ne 0 ]; then
> +		 echo SKIP: $TEST, $NAME
> +		 exit 77
> +fi
>
>  #
> -#  Non-x86 tests don't have WMI so skip this test
> +#  If we can't set the tty then we can't test
>  #
> -$FWTS --show-tests | grep wmi > /dev/null
> -if [ $? -eq 1 ]; then
> +stty cols 80 &> /dev/null
> +if [ $? -ne 0 ]; then
> +		 tset &> /dev/null
>  		 echo SKIP: $TEST, $NAME
>  		 exit 77
>  fi
>
> -stty cols 80
>  $FWTS --show-tests-full > $TMPLOG
>  diff $TMPLOG
$FWTSTESTDIR/arg-show-tests-full-0001/arg-show-tests-full-0001.log >>
$FAILURE_LOG
>  ret=$?
> @@ -23,5 +31,8 @@ else
>  		 echo FAILED: $TEST, $NAME
>  fi
>
> +stty cols 80 &> /dev/null
> +tset &> /dev/null
> +
>  rm $TMPLOG
>  exit $ret
> diff --git a/src/Makefile.am b/src/Makefile.am
> index 100eaa3..8ac67b4 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -132,6 +132,7 @@ fwts_SOURCES = main.c
 		 \
>  		 pci/aspm/aspm.c 		 		 		 \
>  		 pci/crs/crs.c 		 		 		 		 \
>  		 pci/maxreadreq/maxreadreq.c 		 		 \
> +		 show/show_logs.c		 		 		 \
>  		 uefi/csm/csm.c 		 		 		 		 \
>  		 uefi/uefidump/uefidump.c 		 		 \
>  		 uefi/uefirttime/uefirttime.c		 		 \
> diff --git a/src/show/show_logs.c b/src/show/show_logs.c
> new file mode 100644
> index 0000000..7b958ff
> --- /dev/null
> +++ b/src/show/show_logs.c
> @@ -0,0 +1,1480 @@
> +/*
> + * Copyright (C) 2010-2016 Canonical
> + * Some of this work - Copyright (C) 2016 IBM
> + *
> + * 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 2
> + * 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, write to the Free Software
> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
> + *
> + */
> +
> +
> +#include "fwts.h"
> +
> +static char *fwts_show[] = {
> +"ACPI tests:",
> +" acpiinfo        General ACPI information test.",
> +" acpitables      ACPI table headers sanity tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" apicinstance    Test for single instance of APIC/MADT table.",
> +#endif
> +" asf             ASF! Alert Standard Format Table test.",
> +" aspt            ASPT Table test.",
> +" bert            BERT Boot Error Record Table test.",
> +" bgrt            BGRT Boot Graphics Resource Table test.",
> +" boot            BOOT Table test.",
> +" checksum        ACPI table checksum test.",
> +" cpep            CPEP Corrected Platform Error Polling Table test.",
> +" csrt            CSRT Core System Resource Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" cstates         Processor C state support test.",
> +#endif
> +" dbg2            DBG2 (Debug Port Table 2) test.",
> +" dbgp            DBGP (Debug Port) Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" dmar            DMA Remapping (VT-d) test.",
> +#endif
> +" ecdt            ECDT Embedded Controller Boot Resources Table test.",
> +" einj            EINJ Error Injection Table test.",
> +" erst            ERST Error Record Serialization Table test.",
> +" facs            FACS Firmware ACPI Control Structure test.",
> +" fadt            FADT Fixed ACPI Description Table tests.",
> +" fpdt            FPDT Firmware Performance Data Table test.",
> +" gtdt            GTDT Generic Timer Description Table test.",
> +" hest            HEST Hardware Error Source Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" hpet            HPET IA-PC High Precision Event Timer Table tests.",
> +#endif
> +" iort            IORT IO Remapping Table test.",
> +" lpit            LPIT Low Power Idle Table test.",
> +" madt            MADT Multiple APIC Description Table "
> +		 "(spec compliant).",
> +#ifdef FWTS_ARCH_INTEL
> +" mcfg            MCFG PCI Express* memory mapped config space test.",
> +#endif
> +" mchi            MCHI Management Controller Host Interface"
> +		 		 " Table test.",
> +" method          ACPI DSDT Method Semantic tests.",
> +" msct            MSCT Maximum System Characteristics Table test.",
> +" msdm            MSDM Microsoft Data Management Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" pcc             Processor Clocking Control (PCC) test.",
> +#endif
> +" rsdp            RSDP Root System Description Pointer test.",
> +" rsdt            RSDT Root System Description Table test.",
> +" sbst            SBST Smart Battery Specification Table test.",
> +" slic            SLIC Software Licensing Description Table test.",
> +" slit            SLIT System Locality Distance Information test.",
> +" spcr            SPCR Serial Port Console Redirection Table test.",
> +" spmi            SPMI Service Processor Management Interface"
> +		 		 " Description Table test.",
> +" srat            SRAT System Resource Affinity Table test.",
> +" stao            STAO Status Override Table test.",
> +" tcpa            TCPA Trusted Computing Platform Alliance"
> +		 		 " Capabilities Table test.",
> +" tpm2            TPM2 Trusted Platform Module 2 test.",
> +" uefi            UEFI Data Table test.",
> +" waet            WAET Windows ACPI Emulated Devices Table test.",
> +" wdat            WDAT Microsoft Hardware Watchdog Action Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" wmi             Extract and analyse Windows Management"
> +		 		 " Instrumentation (WMI).",
> +#endif
> +" xenv            XENV Xen Environment Table tests.",
> +" xsdt            XSDT Extended System Description Table test.",
> +"",
> +"Batch tests:",
> +" acpiinfo        General ACPI information test.",
> +" acpitables      ACPI table headers sanity tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" apicedge        APIC edge/level test.",
> +" apicinstance    Test for single instance of APIC/MADT table.",
> +#endif
> +" asf             ASF! Alert Standard Format Table test.",
> +" aspm            PCIe ASPM test.",
> +" aspt            ASPT Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" autobrightness  Automated LCD brightness test.",
> +#endif
> +" bert            BERT Boot Error Record Table test.",
> +" bgrt            BGRT Boot Graphics Resource Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" bios32          BIOS32 Service Directory test.",
> +" bios_info       Gather BIOS DMI information.",
> +#endif
> +" bmc_info        BMC Info",
> +" boot            BOOT Table test.",
> +" checksum        ACPI table checksum test.",
> +" cpep            CPEP Corrected Platform Error Polling Table test.",
> +" cpufreq         CPU frequency scaling tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" crs             Test PCI host bridge configuration using _CRS.",
> +" csm             UEFI Compatibility Support Module test.",
> +#endif
> +" csrt            CSRT Core System Resource Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" cstates         Processor C state support test.",
> +#endif
> +" dbg2            DBG2 (Debug Port Table 2) test.",
> +" dbgp            DBGP (Debug Port) Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" dmar            DMA Remapping (VT-d) test.",
> +" dmicheck        DMI/SMBIOS table tests.",
> +#endif
> +#ifdef HAVE_LIBFDT
> +" dt_base         Base device tree validity check",
> +" dt_sysinfo      Device tree system information test",
> +#endif
> +#ifdef FWTS_ARCH_INTEL
> +" ebda            Test EBDA region is mapped and reserved in memory"
> +		 		 " map table.",
> +#endif
> +" ecdt            ECDT Embedded Controller Boot Resources Table test.",
> +" einj            EINJ Error Injection Table test.",
> +" erst            ERST Error Record Serialization Table test.",
> +" facs            FACS Firmware ACPI Control Structure test.",
> +" fadt            FADT Fixed ACPI Description Table tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" fan             Simple fan tests.",
> +#endif
> +" fpdt            FPDT Firmware Performance Data Table test.",
> +" gtdt            GTDT Generic Timer Description Table test.",
> +" hda_audio       HDA Audio Pin Configuration test.",
> +" hest            HEST Hardware Error Source Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" hpet            HPET IA-PC High Precision Event Timer Table tests.",
> +#endif
> +" iort            IORT IO Remapping Table test.",
> +" klog            Scan kernel log for errors and warnings.",
> +" lpit            LPIT Low Power Idle Table test.",
> +" madt            MADT Multiple APIC Description Table"
> +		 " (spec compliant).",
> +#ifdef FWTS_ARCH_INTEL
> +" maxfreq         Test max CPU frequencies against max scaling"
> +		 		 " frequency.",
> +#endif
> +" maxreadreq      Test firmware has set PCI Express MaxReadReq to a"
> +		 		 " higher value on non-motherboard devices.",
> +#ifdef FWTS_ARCH_INTEL
> +" mcfg            MCFG PCI Express* memory mapped config space test.",
> +#endif
> +" mchi            MCHI Management Controller Host Interface Table
test.",
> +" method          ACPI DSDT Method Semantic tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" microcode       Test if system is using latest microcode.",
> +" mpcheck         MultiProcessor Tables tests.",
> +#endif
> +" msct            MSCT Maximum System Characteristics Table test.",
> +" msdm            MSDM Microsoft Data Management Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" msr             MSR register tests.",
> +" mtrr            MTRR tests.",
> +#endif
> +#ifdef FWTS_ARCH_INTEL
> +" nx              Test if CPU NX is disabled by the BIOS.",
> +#endif
> +" olog            Run OLOG scan and analysis checks.",
> +" oops            Scan kernel log for Oopses.",
> +#ifdef FWTS_ARCH_INTEL
> +" osilinux        Disassemble DSDT to check for _OSI(\"Linux\").",
> +" pcc             Processor Clocking Control (PCC) test.",
> +" pciirq          PCI IRQ Routing Table test.",
> +" pnp             BIOS Support Installation structure test.",
> +#endif
> +" prd_info        OPAL Processor Recovery Diagnostics Info",
> +" rsdp            RSDP Root System Description Pointer test.",
> +" rsdt            RSDT Root System Description Table test.",
> +" sbst            SBST Smart Battery Specification Table test.",
> +" securebootcert  UEFI secure boot test.",
> +" show_logs       Show Tests Log Files",
> +" slic            SLIC Software Licensing Description Table test.",
> +" slit            SLIT System Locality Distance Information test.",
> +" spcr            SPCR Serial Port Console Redirection Table test.",
> +" spmi            SPMI Service Processor Management Interface"
> +		 		 " Description Table test.",
> +" srat            SRAT System Resource Affinity Table test.",
> +" stao            STAO Status Override Table test.",
> +" syntaxcheck     Re-assemble DSDT and SSDTs to find syntax errors"
> +		 		 " and warnings.",
> +" tcpa            TCPA Trusted Computing Platform Alliance"
> +		 		 " Capabilities Table test.",
> +" tpm2            TPM2 Trusted Platform Module 2 test.",
> +" uefi            UEFI Data Table test.",
> +" uefibootpath    Sanity check for UEFI Boot Path Boot####.",
> +" version         Gather kernel system information.",
> +#ifdef FWTS_ARCH_INTEL
> +" virt            CPU Virtualisation Configuration test.",
> +#endif
> +" waet            WAET Windows ACPI Emulated Devices Table test.",
> +" wakealarm       ACPI Wakealarm tests.",
> +" wdat            WDAT Microsoft Hardware Watchdog Action Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" wmi             Extract and analyse Windows Management"
> +		 		 " Instrumentation (WMI).",
> +#endif
> +" xenv            XENV Xen Environment Table tests.",
> +" xsdt            XSDT Extended System Description Table test.",
> +"",
> +#ifdef FWTS_ARCH_INTEL
> +"Interactive tests:",
> +" ac_adapter      Interactive ac_adapter power test.",
> +" battery         Battery tests.",
> +" brightness      Interactive LCD brightness test.",
> +" hotkey          Hotkey scan code tests.",
> +" lid             Interactive lid button test.",
> +" power_button    Interactive power_button button test.",
> +"",
> +"Power States tests:",
> +" s3              S3 suspend/resume test.",
> +" s3power         S3 power loss during suspend test (takes minimum"
> +		 		 " of 10 minutes to run).",
> +" s4              S4 hibernate/resume test.",
> +"",
> +#endif
> +"Utilities:",
> +" acpidump        Dump ACPI tables.",
> +#ifdef FWTS_ARCH_INTEL
> +" cmosdump        Dump CMOS Memory.",
> +#endif
> +" crsdump         Dump ACPI _CRS resources.",
> +#ifdef FWTS_ARCH_INTEL
> +" ebdadump        Dump EBDA region.",
> +#endif
> +" esrtdump        Dump ESRT table.",
> +" gpedump         Dump GPEs.",
> +#ifdef FWTS_ARCH_INTEL
> +" memmapdump      Dump system memory map.",
> +" mpdump          Dump MultiProcessor Data.",
> +#endif
> +" plddump         Dump ACPI _PLD (Physical Device Location).",
> +" prsdump         Dump ACPI _PRS resources.",
> +#ifdef FWTS_ARCH_INTEL
> +" romdump         Dump ROM data.",
> +#endif
> +" uefidump        Dump UEFI variables.",
> +" uefivarinfo     UEFI variable info query.",
> +"",
> +"Unsafe tests:",
> +" uefirtauthvar   Authenticated variable tests.",
> +" uefirtmisc      UEFI miscellaneous runtime service interface tests.",
> +" uefirttime      UEFI Runtime service time interface tests.",
> +" uefirtvariable  UEFI Runtime service variable interface tests.",
> +"",
> +"UEFI tests:",
> +#ifdef FWTS_ARCH_INTEL
> +" csm             UEFI Compatibility Support Module test.",
> +#endif
> +" esrt            Sanity check UEFI ESRT Table.",
> +" securebootcert  UEFI secure boot test.",
> +" uefibootpath    Sanity check for UEFI Boot Path Boot####.",
> +" uefirtauthvar   Authenticated variable tests.",
> +" uefirtmisc      UEFI miscellaneous runtime service interface tests.",
> +" uefirttime      UEFI Runtime service time interface tests.",
> +" uefirtvariable  UEFI Runtime service variable interface tests.",
> +"",
> +"ACPI Spec Compliance tests:",
> +" fadt            FADT Fixed ACPI Description Table tests.",
> +" madt            MADT Multiple APIC Description Table"
> +		 		 " (spec compliant).",
> +" rsdp            RSDP Root System Description Pointer test.",
> +};
> +
> +static char *fwts_show_all[] = {
> +"ACPI tests:",
> +" acpiinfo        (3 tests):",
> +"  Determine Kernel ACPI version.",
> +"  Determine machine's ACPI version.",
> +"  Determine AML compiler.",
> +" acpitables      (1 test):",
> +"  Test ACPI headers.",
> +#ifdef FWTS_ARCH_INTEL
> +" apicinstance    (1 test):",
> +"  Test for single instance of APIC/MADT table.",
> +#endif
> +" asf             (1 test):",
> +"  ASF! Alert Standard Format Table test.",
> +" aspt            (1 test):",
> +"  ASPT Table test.",
> +" bert            (1 test):",
> +"  BERT Boot Error Record Table test.",
> +" bgrt            (1 test):",
> +"  BGRT Boot Graphics Resource Table test.",
> +" boot            (1 test):",
> +"  BOOT Table test.",
> +" checksum        (1 test):",
> +"  ACPI table checksum test.",
> +" cpep            (1 test):",
> +"  CPEP Corrected Platform Error Polling Table test.",
> +" csrt            (1 test):",
> +"  CSRT Core System Resource Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" cstates         (1 test):",
> +"  Test all CPUs C-states.",
> +#endif
> +" dbg2            (1 test):",
> +"  DBG2 (Debug Port Table 2) test.",
> +" dbgp            (1 test):",
> +"  DBGP (Debug Port) Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" dmar            (1 test):",
> +"  DMA Remapping test.",
> +#endif
> +" ecdt            (1 test):",
> +"  ECDT Embedded Controller Boot Resources Table test.",
> +" einj            (1 test):",
> +"  EINJ Error Injection Table test.",
> +" erst            (1 test):",
> +"  ERST Error Record Serialization Table test.",
> +" facs            (1 test):",
> +"  FACS Firmware ACPI Control Structure test.",
> +" fadt            (6 tests):",
> +"  ACPI FADT Description Table flag info.",
> +"  FADT checksum test.",
> +"  FADT revision test.",
> +"  ACPI FADT Description Table tests.",
> +"  Test FADT SCI_EN bit is enabled.",
> +"  Test FADT reset register.",
> +" fpdt            (1 test):",
> +"  FPDT Firmware Performance Data Table test.",
> +" gtdt            (1 test):",
> +"  GTDT Generic Timer Description Table test.",
> +" hest            (1 test):",
> +"  HEST Hardware Error Source Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" hpet            (4 tests):",
> +"  Test HPET base in kernel log.",
> +"  Test HPET base in HPET table.",
> +"  Test HPET base in DSDT and/or SSDT.",
> +"  Test HPET configuration.",
> +#endif
> +" iort            (1 test):",
> +"  IORT IO Remapping Table test.",
> +" lpit            (1 test):",
> +"  LPIT Low Power Idle Table test.",
> +" madt            (5 tests):",
> +"  MADT checksum test.",
> +"  MADT revision test.",
> +"  MADT architecture minimum revision test.",
> +"  MADT flags field reserved bits test.",
> +"  MADT subtable tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" mcfg            (2 tests):",
> +"  Validate MCFG table.",
> +"  Validate MCFG PCI config space.",
> +#endif
> +" mchi            (1 test):",
> +"  MCHI Management Controller Host Interface Table test.",
> +" method          (191 tests):",
> +"  Test Method Names.",
> +"  Test _AEI.",
> +"  Test _EVT (Event Method).",
> +"  Test _DLM (Device Lock Mutex).",
> +"  Test _PIC (Inform AML of Interrupt Model).",
> +"  Test _CID (Compatible ID).",
> +"  Test _DDN (DOS Device Name).",
> +"  Test _HID (Hardware ID).",
> +"  Test _HRV (Hardware Revision Number).",
> +"  Test _MLS (Multiple Language String).",
> +"  Test _PLD (Physical Device Location).",
> +"  Test _SUB (Subsystem ID).",
> +"  Test _SUN (Slot User Number).",
> +"  Test _STR (String).",
> +"  Test _UID (Unique ID).",
> +"  Test _CDM (Clock Domain).",
> +"  Test _CRS (Current Resource Settings).",
> +"  Test _DSD (Device Specific Data).",
> +"  Test _DIS (Disable).",
> +"  Test _DMA (Direct Memory Access).",
> +"  Test _FIX (Fixed Register Resource Provider).",
> +"  Test _GSB (Global System Interrupt Base).",
> +"  Test _HPP (Hot Plug Parameters).",
> +"  Test _PRS (Possible Resource Settings).",
> +"  Test _PRT (PCI Routing Table).",
> +"  Test _PXM (Proximity).",
> +"  Test _CCA (Cache Coherency Attribute).",
> +"  Test _EDL (Eject Device List).",
> +"  Test _EJD (Ejection Dependent Device).",
> +"  Test _EJ0 (Eject).",
> +"  Test _EJ1 (Eject).",
> +"  Test _EJ2 (Eject).",
> +"  Test _EJ3 (Eject).",
> +"  Test _EJ4 (Eject).",
> +"  Test _LCK (Lock).",
> +"  Test _RMV (Remove).",
> +"  Test _STA (Status).",
> +"  Test _DEP (Operational Region Dependencies).",
> +"  Test _BDN (BIOS Dock Name).",
> +"  Test _BBN (Base Bus Number).",
> +"  Test _DCK (Dock).",
> +"  Test _INI (Initialize).",
> +"  Test _GLK (Global Lock).",
> +"  Test _SEG (Segment).",
> +"  Test _OFF (Set resource off).",
> +"  Test _ON_ (Set resource on).",
> +"  Test _DSW (Device Sleep Wake).",
> +"  Test _IRC (In Rush Current).",
> +"  Test _PRE (Power Resources for Enumeration).",
> +"  Test _PR0 (Power Resources for D0).",
> +"  Test _PR1 (Power Resources for D1).",
> +"  Test _PR2 (Power Resources for D2).",
> +"  Test _PR3 (Power Resources for D3).",
> +"  Test _PRW (Power Resources for Wake).",
> +"  Test _PS0 (Power State 0).",
> +"  Test _PS1 (Power State 1).",
> +"  Test _PS2 (Power State 2).",
> +"  Test _PS3 (Power State 3).",
> +"  Test _PSC (Power State Current).",
> +"  Test _PSE (Power State for Enumeration).",
> +"  Test _PSW (Power State Wake).",
> +"  Test _S1D (S1 Device State).",
> +"  Test _S2D (S2 Device State).",
> +"  Test _S3D (S3 Device State).",
> +"  Test _S4D (S4 Device State).",
> +"  Test _S0W (S0 Device Wake State).",
> +"  Test _S1W (S1 Device Wake State).",
> +"  Test _S2W (S2 Device Wake State).",
> +"  Test _S3W (S3 Device Wake State).",
> +"  Test _S4W (S4 Device Wake State).",
> +"  Test _RST (Device Reset).",
> +"  Test _PRR (Power Resource for Reset).",
> +"  Test _S0_ (S0 System State).",
> +"  Test _S1_ (S1 System State).",
> +"  Test _S2_ (S2 System State).",
> +"  Test _S3_ (S3 System State).",
> +"  Test _S4_ (S4 System State).",
> +"  Test _S5_ (S5 System State).",
> +"  Test _SWS (System Wake Source).",
> +"  Test _PSS (Performance Supported States).",
> +"  Test _CPC (Continuous Performance Control).",
> +"  Test _CSD (C State Dependencies).",
> +"  Test _CST (C States).",
> +"  Test _PCT (Performance Control).",
> +"  Test _PDL (P-State Depth Limit).",
> +"  Test _PPC (Performance Present Capabilities).",
> +"  Test _PPE (Polling for Platform Error).",
> +"  Test _PSD (Power State Dependencies).",
> +"  Test _PTC (Processor Throttling Control).",
> +"  Test _TDL (T-State Depth Limit).",
> +"  Test _TPC (Throttling Present Capabilities).",
> +"  Test _TSD (Throttling State Dependencies).",
> +"  Test _TSS (Throttling Supported States).",
> +"  Test _LPI (Low Power Idle States).",
> +"  Test _RDI (Resource Dependencies for Idle).",
> +"  Test _PUR (Processor Utilization Request).",
> +"  Test _MSG (Message).",
> +"  Test _SST (System Status).",
> +"  Test _ALC (Ambient Light Colour Chromaticity).",
> +"  Test _ALI (Ambient Light Illuminance).",
> +"  Test _ALT (Ambient Light Temperature).",
> +"  Test _ALP (Ambient Light Polling).",
> +"  Test _ALR (Ambient Light Response).",
> +"  Test _LID (Lid Status).",
> +"  Test _GTF (Get Task File).",
> +"  Test _GTM (Get Timing Mode).",
> +"  Test _MBM (Memory Bandwidth Monitoring Data).",
> +"  Test _UPC (USB Port Capabilities).",
> +"  Test _UPD (User Presence Detect).",
> +"  Test _UPP (User Presence Polling).",
> +"  Test _GCP (Get Capabilities).",
> +"  Test _GRT (Get Real Time).",
> +"  Test _GWS (Get Wake Status).",
> +"  Test _CWS (Clear Wake Status).",
> +"  Test _STP (Set Expired Timer Wake Policy).",
> +"  Test _STV (Set Timer Value).",
> +"  Test _TIP (Expired Timer Wake Policy).",
> +"  Test _TIV (Timer Values).",
> +"  Test _SBS (Smart Battery Subsystem).",
> +"  Test _BCT (Battery Charge Time).",
> +"  Test _BIF (Battery Information).",
> +"  Test _BIX (Battery Information Extended).",
> +"  Test _BMA (Battery Measurement Averaging).",
> +"  Test _BMC (Battery Maintenance Control).",
> +"  Test _BMD (Battery Maintenance Data).",
> +"  Test _BMS (Battery Measurement Sampling Time).",
> +"  Test _BST (Battery Status).",
> +"  Test _BTP (Battery Trip Point).",
> +"  Test _BTH (Battery Throttle Limit).",
> +"  Test _BTM (Battery Time).",
> +"  Test _PCL (Power Consumer List).",
> +"  Test _PIF (Power Source Information).",
> +"  Test _PRL (Power Source Redundancy List).",
> +"  Test _PSR (Power Source).",
> +"  Test _GAI (Get Averaging Level).",
> +"  Test _GHL (Get Harware Limit).",
> +"  Test _PMC (Power Meter Capabilities).",
> +"  Test _PMD (Power Meter Devices).",
> +"  Test _PMM (Power Meter Measurement).",
> +"  Test _WPC (Wireless Power Calibration).",
> +"  Test _WPP (Wireless Power Polling).",
> +"  Test _FIF (Fan Information).",
> +"  Test _FPS (Fan Performance States).",
> +"  Test _FSL (Fan Set Level).",
> +"  Test _FST (Fan Status).",
> +"  Test _ACx (Active Cooling).",
> +"  Test _ART (Active Cooling Relationship Table).",
> +"  Test _CRT (Critical Trip Point).",
> +"  Test _CR3 (Warm/Standby Temperature).",
> +"  Test _DTI (Device Temperature Indication).",
> +"  Test _HOT (Hot Temperature).",
> +"  Test _MTL (Minimum Throttle Limit).",
> +"  Test _NTT (Notification Temp Threshold).",
> +"  Test _PSL (Passive List).",
> +"  Test _PSV (Passive Temp).",
> +"  Test _RTV (Relative Temp Values).",
> +"  Test _SCP (Set Cooling Policy).",
> +"  Test _TC1 (Thermal Constant 1).",
> +"  Test _TC2 (Thermal Constant 2).",
> +"  Test _TFP (Thermal fast Sampling Period).",
> +"  Test _TMP (Thermal Zone Current Temp).",
> +"  Test _TPT (Trip Point Temperature).",
> +"  Test _TRT (Thermal Relationship Table).",
> +"  Test _TSN (Thermal Sensor Device).",
> +"  Test _TSP (Thermal Sampling Period).",
> +"  Test _TST (Temperature Sensor Threshold).",
> +"  Test _TZD (Thermal Zone Devices).",
> +"  Test _TZM (Thermal Zone member).",
> +"  Test _TZP (Thermal Zone Polling).",
> +"  Test _GPE (General Purpose Events).",
> +"  Test _EC_ (EC Offset Query).",
> +"  Test _PTS (Prepare to Sleep).",
> +"  Test _TTS (Transition to State).",
> +"  Test _WAK (System Wake).",
> +"  Test _ADR (Return Unique ID for Device).",
> +"  Test _BCL (Query List of Brightness Control Levels Supported).",
> +"  Test _BCM (Set Brightness Level).",
> +"  Test _BQC (Brightness Query Current Level).",
> +"  Test _DCS (Return the Status of Output Device).",
> +"  Test _DDC (Return the EDID for this Device).",
> +"  Test _DSS (Device Set State).",
> +"  Test _DGS (Query Graphics State).",
> +"  Test _DOD (Enumerate All Devices Attached to Display Adapter).",
> +"  Test _DOS (Enable/Disable Output Switching).",
> +"  Test _GPD (Get POST Device).",
> +"  Test _ROM (Get ROM Data).",
> +"  Test _SPD (Set POST Device).",
> +"  Test _VPO (Video POST Options).",
> +"  Test _CBA (Configuration Base Address).",
> +"  Test _IFT (IPMI Interface Type).",
> +"  Test _SRV (IPMI Interface Revision).",
> +" msct            (1 test):",
> +"  MSCT Maximum System Characteristics Table test.",
> +" msdm            (1 test):",
> +"  MSDM Microsoft Data Management Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" pcc             (1 test):",
> +"  Processor Clocking Control (PCC) test.",
> +#endif
> +" rsdp            (1 test):",
> +"  RSDP Root System Description Pointer test.",
> +" rsdt            (1 test):",
> +"  RSDT Root System Description Table test.",
> +" sbst            (1 test):",
> +"  SBST Smart Battery Specificiation Table test.",
> +" slic            (1 test):",
> +"  SLIC Software Licensing Description Table test.",
> +" slit            (1 test):",
> +"  SLIT System Locality Distance Information test.",
> +" spcr            (1 test):",
> +"  SPCR Serial Port Console Redirection Table test.",
> +" spmi            (1 test):",
> +"  SPMI Service Processor Management Interface Description Table test.",
> +" srat            (1 test):",
> +"  SRAT System Resource Affinity Table test.",
> +" stao            (1 test):",
> +"  STAO Status Override Table test.",
> +" tcpa            (1 test):",
> +"  Validate TCPA table.",
> +" tpm2            (1 test):",
> +"  Validate TPM2 table.",
> +" uefi            (1 test):",
> +"  UEFI Data Table test.",
> +" waet            (1 test):",
> +"  Windows ACPI Emulated Devices Table test.",
> +" wdat            (1 test):",
> +"  WDAT Microsoft Hardware Watchdog Action Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" wmi             (1 test):",
> +"  Windows Management Instrumentation test.",
> +#endif
> +" xenv            (1 test):",
> +"  Validate XENV table.",
> +" xsdt            (1 test):",
> +"  XSDT Extended System Description Table test.",
> +"",
> +"Batch tests:",
> +" acpiinfo        (3 tests):",
> +"  Determine Kernel ACPI version.",
> +"  Determine machine's ACPI version.",
> +"  Determine AML compiler.",
> +" acpitables      (1 test):",
> +"  Test ACPI headers.",
> +#ifdef FWTS_ARCH_INTEL
> +" apicedge        (1 test):",
> +"  Legacy and PCI Interrupt Edge/Level trigger tests.",
> +" apicinstance    (1 test):",
> +"  Test for single instance of APIC/MADT table.",
> +#endif
> +" asf             (1 test):",
> +"  ASF! Alert Standard Format Table test.",
> +" aspm            (2 tests):",
> +"  PCIe ASPM ACPI test.",
> +"  PCIe ASPM registers test.",
> +" aspt            (1 test):",
> +"  ASPT Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" autobrightness  (2 tests):",
> +"  Test for maximum and actual brightness.",
> +"  Change actual brightness.",
> +#endif
> +" bert            (1 test):",
> +"  BERT Boot Error Record Table test.",
> +" bgrt            (1 test):",
> +"  BGRT Boot Graphics Resource Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" bios32          (1 test):",
> +"  BIOS32 Service Directory test.",
> +" bios_info       (1 test):",
> +"  Gather BIOS DMI information",
> +#endif
> +" bmc_info        (1 test):",
> +"  BMC Info",
> +" boot            (1 test):",
> +"  BOOT Table test.",
> +" checksum        (1 test):",
> +"  ACPI table checksum test.",
> +" cpep            (1 test):",
> +"  CPEP Corrected Platform Error Polling Table test.",
> +" cpufreq         (7 tests):",
> +"  CPU frequency table consistency",
> +"  CPU frequency table duplicates",
> +"  CPU frequency firmware limits",
> +"  CPU frequency claimed maximum",
> +"  CPU frequency SW_ANY control",
> +"  CPU frequency SW_ALL control",
> +"  CPU frequency performance tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" crs             (1 test):",
> +"  Test PCI host bridge configuration using _CRS.",
> +" csm             (1 test):",
> +"  UEFI Compatibility Support Module test.",
> +#endif
> +" csrt            (1 test):",
> +"  CSRT Core System Resource Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" cstates         (1 test):",
> +"  Test all CPUs C-states.",
> +#endif
> +" dbg2            (1 test):",
> +"  DBG2 (Debug Port Table 2) test.",
> +" dbgp            (1 test):",
> +"  DBGP (Debug Port) Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" dmar            (1 test):",
> +"  DMA Remapping test.",
> +" dmicheck        (3 tests):",
> +"  Find and test SMBIOS Table Entry Points.",
> +"  Test DMI/SMBIOS tables for errors.",
> +"  Test DMI/SMBIOS3 tables for errors.",
> +#endif
> +#ifdef HAVE_LIBFDT
> +" dt_base         (3 tests):",
> +"  Check device tree presence",
> +"  Check device tree baseline validity",
> +"  Check device tree warnings",
> +" dt_sysinfo      (3 tests):",
> +"  Check model property",
> +"  Check system-id property",
> +"  Check OpenPOWER Reference compatible",
> +#endif
> +#ifdef FWTS_ARCH_INTEL
> +" ebda            (1 test):",
> +"  Test EBDA is reserved in E820 table.",
> +#endif
> +" ecdt            (1 test):",
> +"  ECDT Embedded Controller Boot Resources Table test.",
> +" einj            (1 test):",
> +"  EINJ Error Injection Table test.",
> +" erst            (1 test):",
> +"  ERST Error Record Serialization Table test.",
> +" facs            (1 test):",
> +"  FACS Firmware ACPI Control Structure test.",
> +" fadt            (6 tests):",
> +"  ACPI FADT Description Table flag info.",
> +"  FADT checksum test.",
> +"  FADT revision test.",
> +"  ACPI FADT Description Table tests.",
> +"  Test FADT SCI_EN bit is enabled.",
> +"  Test FADT reset register.",
> +#ifdef FWTS_ARCH_INTEL
> +" fan             (2 tests):",
> +"  Test fan status.",
> +"  Load system, check CPU fan status.",
> +#endif
> +" fpdt            (1 test):",
> +"  FPDT Firmware Performance Data Table test.",
> +" gtdt            (1 test):",
> +"  GTDT Generic Timer Description Table test.",
> +" hda_audio       (1 test):",
> +"  HDA Audio Pin Configuration test.",
> +" hest            (1 test):",
> +"  HEST Hardware Error Source Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" hpet            (4 tests):",
> +"  Test HPET base in kernel log.",
> +"  Test HPET base in HPET table.",
> +"  Test HPET base in DSDT and/or SSDT.",
> +"  Test HPET configuration.",
> +#endif
> +" iort            (1 test):",
> +"  IORT IO Remapping Table test.",
> +" klog            (1 test):",
> +"  Kernel log error check.",
> +" lpit            (1 test):",
> +"  LPIT Low Power Idle Table test.",
> +" madt            (5 tests):",
> +"  MADT checksum test.",
> +"  MADT revision test.",
> +"  MADT architecture minimum revision test.",
> +"  MADT flags field reserved bits test.",
> +"  MADT subtable tests.",
> +#ifdef FWTS_ARCH_INTEL
> +" maxfreq         (1 test):",
> +"  Maximum CPU frequency test.",
> +#endif
> +" maxreadreq      (1 test):",
> +"  Test firmware settings MaxReadReq for PCI Express devices.",
> +#ifdef FWTS_ARCH_INTEL
> +" mcfg            (2 tests):",
> +"  Validate MCFG table.",
> +"  Validate MCFG PCI config space.",
> +#endif
> +" mchi            (1 test):",
> +"  MCHI Management Controller Host Interface Table test.",
> +" method          (191 tests):",
> +"  Test Method Names.",
> +"  Test _AEI.",
> +"  Test _EVT (Event Method).",
> +"  Test _DLM (Device Lock Mutex).",
> +"  Test _PIC (Inform AML of Interrupt Model).",
> +"  Test _CID (Compatible ID).",
> +"  Test _DDN (DOS Device Name).",
> +"  Test _HID (Hardware ID).",
> +"  Test _HRV (Hardware Revision Number).",
> +"  Test _MLS (Multiple Language String).",
> +"  Test _PLD (Physical Device Location).",
> +"  Test _SUB (Subsystem ID).",
> +"  Test _SUN (Slot User Number).",
> +"  Test _STR (String).",
> +"  Test _UID (Unique ID).",
> +"  Test _CDM (Clock Domain).",
> +"  Test _CRS (Current Resource Settings).",
> +"  Test _DSD (Device Specific Data).",
> +"  Test _DIS (Disable).",
> +"  Test _DMA (Direct Memory Access).",
> +"  Test _FIX (Fixed Register Resource Provider).",
> +"  Test _GSB (Global System Interrupt Base).",
> +"  Test _HPP (Hot Plug Parameters).",
> +"  Test _PRS (Possible Resource Settings).",
> +"  Test _PRT (PCI Routing Table).",
> +"  Test _PXM (Proximity).",
> +"  Test _CCA (Cache Coherency Attribute).",
> +"  Test _EDL (Eject Device List).",
> +"  Test _EJD (Ejection Dependent Device).",
> +"  Test _EJ0 (Eject).",
> +"  Test _EJ1 (Eject).",
> +"  Test _EJ2 (Eject).",
> +"  Test _EJ3 (Eject).",
> +"  Test _EJ4 (Eject).",
> +"  Test _LCK (Lock).",
> +"  Test _RMV (Remove).",
> +"  Test _STA (Status).",
> +"  Test _DEP (Operational Region Dependencies).",
> +"  Test _BDN (BIOS Dock Name).",
> +"  Test _BBN (Base Bus Number).",
> +"  Test _DCK (Dock).",
> +"  Test _INI (Initialize).",
> +"  Test _GLK (Global Lock).",
> +"  Test _SEG (Segment).",
> +"  Test _OFF (Set resource off).",
> +"  Test _ON_ (Set resource on).",
> +"  Test _DSW (Device Sleep Wake).",
> +"  Test _IRC (In Rush Current).",
> +"  Test _PRE (Power Resources for Enumeration).",
> +"  Test _PR0 (Power Resources for D0).",
> +"  Test _PR1 (Power Resources for D1).",
> +"  Test _PR2 (Power Resources for D2).",
> +"  Test _PR3 (Power Resources for D3).",
> +"  Test _PRW (Power Resources for Wake).",
> +"  Test _PS0 (Power State 0).",
> +"  Test _PS1 (Power State 1).",
> +"  Test _PS2 (Power State 2).",
> +"  Test _PS3 (Power State 3).",
> +"  Test _PSC (Power State Current).",
> +"  Test _PSE (Power State for Enumeration).",
> +"  Test _PSW (Power State Wake).",
> +"  Test _S1D (S1 Device State).",
> +"  Test _S2D (S2 Device State).",
> +"  Test _S3D (S3 Device State).",
> +"  Test _S4D (S4 Device State).",
> +"  Test _S0W (S0 Device Wake State).",
> +"  Test _S1W (S1 Device Wake State).",
> +"  Test _S2W (S2 Device Wake State).",
> +"  Test _S3W (S3 Device Wake State).",
> +"  Test _S4W (S4 Device Wake State).",
> +"  Test _RST (Device Reset).",
> +"  Test _PRR (Power Resource for Reset).",
> +"  Test _S0_ (S0 System State).",
> +"  Test _S1_ (S1 System State).",
> +"  Test _S2_ (S2 System State).",
> +"  Test _S3_ (S3 System State).",
> +"  Test _S4_ (S4 System State).",
> +"  Test _S5_ (S5 System State).",
> +"  Test _SWS (System Wake Source).",
> +"  Test _PSS (Performance Supported States).",
> +"  Test _CPC (Continuous Performance Control).",
> +"  Test _CSD (C State Dependencies).",
> +"  Test _CST (C States).",
> +"  Test _PCT (Performance Control).",
> +"  Test _PDL (P-State Depth Limit).",
> +"  Test _PPC (Performance Present Capabilities).",
> +"  Test _PPE (Polling for Platform Error).",
> +"  Test _PSD (Power State Dependencies).",
> +"  Test _PTC (Processor Throttling Control).",
> +"  Test _TDL (T-State Depth Limit).",
> +"  Test _TPC (Throttling Present Capabilities).",
> +"  Test _TSD (Throttling State Dependencies).",
> +"  Test _TSS (Throttling Supported States).",
> +"  Test _LPI (Low Power Idle States).",
> +"  Test _RDI (Resource Dependencies for Idle).",
> +"  Test _PUR (Processor Utilization Request).",
> +"  Test _MSG (Message).",
> +"  Test _SST (System Status).",
> +"  Test _ALC (Ambient Light Colour Chromaticity).",
> +"  Test _ALI (Ambient Light Illuminance).",
> +"  Test _ALT (Ambient Light Temperature).",
> +"  Test _ALP (Ambient Light Polling).",
> +"  Test _ALR (Ambient Light Response).",
> +"  Test _LID (Lid Status).",
> +"  Test _GTF (Get Task File).",
> +"  Test _GTM (Get Timing Mode).",
> +"  Test _MBM (Memory Bandwidth Monitoring Data).",
> +"  Test _UPC (USB Port Capabilities).",
> +"  Test _UPD (User Presence Detect).",
> +"  Test _UPP (User Presence Polling).",
> +"  Test _GCP (Get Capabilities).",
> +"  Test _GRT (Get Real Time).",
> +"  Test _GWS (Get Wake Status).",
> +"  Test _CWS (Clear Wake Status).",
> +"  Test _STP (Set Expired Timer Wake Policy).",
> +"  Test _STV (Set Timer Value).",
> +"  Test _TIP (Expired Timer Wake Policy).",
> +"  Test _TIV (Timer Values).",
> +"  Test _SBS (Smart Battery Subsystem).",
> +"  Test _BCT (Battery Charge Time).",
> +"  Test _BIF (Battery Information).",
> +"  Test _BIX (Battery Information Extended).",
> +"  Test _BMA (Battery Measurement Averaging).",
> +"  Test _BMC (Battery Maintenance Control).",
> +"  Test _BMD (Battery Maintenance Data).",
> +"  Test _BMS (Battery Measurement Sampling Time).",
> +"  Test _BST (Battery Status).",
> +"  Test _BTP (Battery Trip Point).",
> +"  Test _BTH (Battery Throttle Limit).",
> +"  Test _BTM (Battery Time).",
> +"  Test _PCL (Power Consumer List).",
> +"  Test _PIF (Power Source Information).",
> +"  Test _PRL (Power Source Redundancy List).",
> +"  Test _PSR (Power Source).",
> +"  Test _GAI (Get Averaging Level).",
> +"  Test _GHL (Get Harware Limit).",
> +"  Test _PMC (Power Meter Capabilities).",
> +"  Test _PMD (Power Meter Devices).",
> +"  Test _PMM (Power Meter Measurement).",
> +"  Test _WPC (Wireless Power Calibration).",
> +"  Test _WPP (Wireless Power Polling).",
> +"  Test _FIF (Fan Information).",
> +"  Test _FPS (Fan Performance States).",
> +"  Test _FSL (Fan Set Level).",
> +"  Test _FST (Fan Status).",
> +"  Test _ACx (Active Cooling).",
> +"  Test _ART (Active Cooling Relationship Table).",
> +"  Test _CRT (Critical Trip Point).",
> +"  Test _CR3 (Warm/Standby Temperature).",
> +"  Test _DTI (Device Temperature Indication).",
> +"  Test _HOT (Hot Temperature).",
> +"  Test _MTL (Minimum Throttle Limit).",
> +"  Test _NTT (Notification Temp Threshold).",
> +"  Test _PSL (Passive List).",
> +"  Test _PSV (Passive Temp).",
> +"  Test _RTV (Relative Temp Values).",
> +"  Test _SCP (Set Cooling Policy).",
> +"  Test _TC1 (Thermal Constant 1).",
> +"  Test _TC2 (Thermal Constant 2).",
> +"  Test _TFP (Thermal fast Sampling Period).",
> +"  Test _TMP (Thermal Zone Current Temp).",
> +"  Test _TPT (Trip Point Temperature).",
> +"  Test _TRT (Thermal Relationship Table).",
> +"  Test _TSN (Thermal Sensor Device).",
> +"  Test _TSP (Thermal Sampling Period).",
> +"  Test _TST (Temperature Sensor Threshold).",
> +"  Test _TZD (Thermal Zone Devices).",
> +"  Test _TZM (Thermal Zone member).",
> +"  Test _TZP (Thermal Zone Polling).",
> +"  Test _GPE (General Purpose Events).",
> +"  Test _EC_ (EC Offset Query).",
> +"  Test _PTS (Prepare to Sleep).",
> +"  Test _TTS (Transition to State).",
> +"  Test _WAK (System Wake).",
> +"  Test _ADR (Return Unique ID for Device).",
> +"  Test _BCL (Query List of Brightness Control Levels Supported).",
> +"  Test _BCM (Set Brightness Level).",
> +"  Test _BQC (Brightness Query Current Level).",
> +"  Test _DCS (Return the Status of Output Device).",
> +"  Test _DDC (Return the EDID for this Device).",
> +"  Test _DSS (Device Set State).",
> +"  Test _DGS (Query Graphics State).",
> +"  Test _DOD (Enumerate All Devices Attached to Display Adapter).",
> +"  Test _DOS (Enable/Disable Output Switching).",
> +"  Test _GPD (Get POST Device).",
> +"  Test _ROM (Get ROM Data).",
> +"  Test _SPD (Set POST Device).",
> +"  Test _VPO (Video POST Options).",
> +"  Test _CBA (Configuration Base Address).",
> +"  Test _IFT (IPMI Interface Type).",
> +"  Test _SRV (IPMI Interface Revision).",
> +#ifdef FWTS_ARCH_INTEL
> +" microcode       (1 test):",
> +"  Test for most recent microcode being loaded.",
> +" mpcheck         (9 tests):",
> +"  Test MP header.",
> +"  Test MP CPU entries.",
> +"  Test MP Bus entries.",
> +"  Test MP IO APIC entries.",
> +"  Test MP IO Interrupt entries.",
> +"  Test MP Local Interrupt entries.",
> +"  Test MP System Address entries.",
> +"  Test MP Bus Hierarchy entries.",
> +"  Test MP Compatible Bus Address Space entries.",
> +#endif
> +" msct            (1 test):",
> +"  MSCT Maximum System Characteristics Table test.",
> +" msdm            (1 test):",
> +"  MSDM Microsoft Data Management Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" msr             (5 tests):",
> +"  Test CPU generic MSRs.",
> +"  Test CPU specific model MSRs.",
> +"  Test all P State Ratios.",
> +"  Test C1 and C3 autodemotion.",
> +"  Test SMRR MSR registers.",
> +" mtrr            (3 tests):",
> +"  Validate the kernel MTRR IOMEM setup.",
> +"  Validate the MTRR setup across all processors.",
> +"  Test for AMD MtrrFixDramModEn being cleared by the BIOS.",
> +" nx              (3 tests):",
> +"  Test CPU NX capability.",
> +"  Test all CPUs have same BIOS set NX flag.",
> +"  Test all CPUs have same msr setting in MSR 0x1a0.",
> +#endif
> +" olog            (1 test):",
> +"  OLOG scan and analysis checks results.",
> +" oops            (1 test):",
> +"  Kernel log oops check.",
> +#ifdef FWTS_ARCH_INTEL
> +" osilinux        (1 test):",
> +"  Disassemble DSDT to check for _OSI(\"Linux\").",
> +" pcc             (1 test):",
> +"  Processor Clocking Control (PCC) test.",
> +" pciirq          (1 test):",
> +"  PCI IRQ Routing Table test.",
> +" pnp             (1 test):",
> +"  PnP BIOS Support Installation structure test.",
> +#endif
> +" prd_info        (1 test):",
> +"  OPAL Processor Recovery Diagnostics Info",
> +" rsdp            (1 test):",
> +"  RSDP Root System Description Pointer test.",
> +" rsdt            (1 test):",
> +"  RSDT Root System Description Table test.",
> +" sbst            (1 test):",
> +"  SBST Smart Battery Specificiation Table test.",
> +" securebootcert  (1 test):",
> +"  UEFI secure boot test.",
> +" show_logs       (1 test):",
> +"  Show Tests Log Files",
> +" slic            (1 test):",
> +"  SLIC Software Licensing Description Table test.",
> +" slit            (1 test):",
> +"  SLIT System Locality Distance Information test.",
> +" spcr            (1 test):",
> +"  SPCR Serial Port Console Redirection Table test.",
> +" spmi            (1 test):",
> +"  SPMI Service Processor Management Interface Description Table test.",
> +" srat            (1 test):",
> +"  SRAT System Resource Affinity Table test.",
> +" stao            (1 test):",
> +"  STAO Status Override Table test.",
> +" syntaxcheck     (1 test):",
> +"  Disassemble and reassemble DSDT and SSDTs.",
> +" tcpa            (1 test):",
> +"  Validate TCPA table.",
> +" tpm2            (1 test):",
> +"  Validate TPM2 table.",
> +" uefi            (1 test):",
> +"  UEFI Data Table test.",
> +" uefibootpath    (1 test):",
> +"  Test UEFI Boot Path Boot####.",
> +" version         (4 tests):",
> +"  Gather kernel signature.",
> +"  Gather kernel system information.",
> +"  Gather kernel boot command line.",
> +"  Gather ACPI driver version.",
> +#ifdef FWTS_ARCH_INTEL
> +" virt            (1 test):",
> +"  CPU Virtualisation Configuration test.",
> +#endif
> +" waet            (1 test):",
> +"  Windows ACPI Emulated Devices Table test.",
> +" wakealarm       (5 tests):",
> +"  Test existence of RTC with alarm interface.",
> +"  Trigger wakealarm for 1 seconds in the future.",
> +"  Test if wakealarm is fired.",
> +"  Multiple wakealarm firing tests.",
> +"  Reset wakealarm time.",
> +" wdat            (1 test):",
> +"  WDAT Microsoft Hardware Watchdog Action Table test.",
> +#ifdef FWTS_ARCH_INTEL
> +" wmi             (1 test):",
> +"  Windows Management Instrumentation test.",
> +#endif
> +" xenv            (1 test):",
> +"  Validate XENV table.",
> +" xsdt            (1 test):",
> +"  XSDT Extended System Description Table test.",
> +"",
> +#ifdef FWTS_ARCH_INTEL
> +"Interactive tests:",
> +" ac_adapter      (3 tests):",
> +"  Test ACPI ac_adapter state.",
> +"  Test ac_adapter initial on-line state.",
> +"  Test ac_adapter state changes.",
> +" battery         (1 test):",
> +"  Battery test.",
> +" brightness      (3 tests):",
> +"  Observe all brightness changes.",
> +"  Observe min, max brightness changes.",
> +"  Test brightness hotkeys.",
> +" hotkey          (1 test):",
> +"  Hotkey keypress checks.",
> +" lid             (3 tests):",
> +"  Test LID buttons report open correctly.",
> +"  Test LID buttons on a single open/close.",
> +"  Test LID buttons on multiple open/close events.",
> +" power_button    (1 test):",
> +"  Test press of power button and ACPI event.",
> +"",
> +"Power States tests:",
> +" s3              (1 test):",
> +"  S3 suspend/resume test.",
> +" s3power         (1 test):",
> +"  S3 power loss during suspend test.",
> +" s4              (1 test):",
> +"  S4 hibernate/resume test.",
> +"",
> +#endif
> +"Utilities:",
> +" acpidump        (1 test):",
> +"  Dump ACPI tables.",
> +#ifdef FWTS_ARCH_INTEL
> +" cmosdump        (1 test):",
> +"  Dump CMOS Memory.",
> +#endif
> +" crsdump         (1 test):",
> +"  Dump ACPI _CRS (Current Resource Settings).",
> +#ifdef FWTS_ARCH_INTEL
> +" ebdadump        (1 test):",
> +"  Dump EBDA region.",
> +#endif
> +" esrtdump        (1 test):",
> +"  Dump ESRT Table.",
> +" gpedump         (1 test):",
> +"  Dump GPEs.",
> +#ifdef FWTS_ARCH_INTEL
> +" memmapdump      (1 test):",
> +"  Dump system memory map.",
> +" mpdump          (1 test):",
> +"  Dump Multi Processor Data.",
> +#endif
> +" plddump         (1 test):",
> +"  Dump ACPI _PLD (Physical Device Location).",
> +" prsdump         (1 test):",
> +"  Dump ACPI _PRS (Possible Resource Settings).",
> +#ifdef FWTS_ARCH_INTEL
> +" romdump         (1 test):",
> +"  Dump ROM data.",
> +#endif
> +" uefidump        (1 test):",
> +"  Dump UEFI Variables.",
> +" uefivarinfo     (1 test):",
> +"  UEFI variable info query.",
> +"",
> +"Unsafe tests:",
> +" uefirtauthvar   (12 tests):",
> +"  Create authenticated variable test.",
> +"  Authenticated variable test with the same authenticated variable.",
> +"  Authenticated variable test with another valid authenticated"
> +		 " variable.",
> +"  Append authenticated variable test.",
> +"  Update authenticated variable test.",
> +"  Authenticated variable test with old authenticated variable.",
> +"  Delete authenticated variable test.",
> +"  Authenticated variable test with invalid modified data.",
> +"  Authenticated variable test with invalid modified timestamp.",
> +"  Authenticated variable test with different guid.",
> +"  Authenticated variable test with invalid attributes.",
> +"  Set and delete authenticated variable created by different"
> +		 " key test.",
> +" uefirtmisc      (3 tests):",
> +"  Test for UEFI miscellaneous runtime service interfaces.",
> +"  Stress test for UEFI miscellaneous runtime service interfaces.",
> +"  Test GetNextHighMonotonicCount with invalid NULL parameter.",
> +" uefirttime      (35 tests):",
> +"  Test UEFI RT service get time interface.",
> +"  Test UEFI RT service get time interface, NULL time parameter.",
> +"  Test UEFI RT service get time interface, NULL time and NULL"
> +		 " capabilties parameters.",
> +"  Test UEFI RT service set time interface.",
> +"  Test UEFI RT service set time interface, invalid year 1899.",
> +"  Test UEFI RT service set time interface, invalid year 10000.",
> +"  Test UEFI RT service set time interface, invalid month 0.",
> +"  Test UEFI RT service set time interface, invalid month 13.",
> +"  Test UEFI RT service set time interface, invalid day 0.",
> +"  Test UEFI RT service set time interface, invalid day 32.",
> +"  Test UEFI RT service set time interface, invalid hour 24.",
> +"  Test UEFI RT service set time interface, invalid minute 60.",
> +"  Test UEFI RT service set time interface, invalid second 60.",
> +"  Test UEFI RT service set time interface, invalid nanosecond"
> +		 " 1000000000.",
> +"  Test UEFI RT service set time interface, invalid timezone -1441.",
> +"  Test UEFI RT service set time interface, invalid timezone 1441.",
> +"  Test UEFI RT service get wakeup time interface.",
> +"  Test UEFI RT service get wakeup time interface, NULL enabled"
> +		 " parameter.",
> +"  Test UEFI RT service get wakeup time interface, NULL pending"
> +		 " parameter.",
> +"  Test UEFI RT service get wakeup time interface, NULL time"
> +		 " parameter.",
> +"  Test UEFI RT service get wakeup time interface, NULL enabled,"
> +		 " pending and time parameters.",
> +"  Test UEFI RT service set wakeup time interface.",
> +"  Test UEFI RT service set wakeup time interface, NULL time"
> +		 " parameter.",
> +"  Test UEFI RT service set wakeup time interface, invalid year 1899.",
> +"  Test UEFI RT service set wakeup time interface, invalid year 10000.",
> +"  Test UEFI RT service set wakeup time interface, invalid month 0.",
> +"  Test UEFI RT service set wakeup time interface, invalid month 13.",
> +"  Test UEFI RT service set wakeup time interface, invalid day 0.",
> +"  Test UEFI RT service set wakeup time interface, invalid day 32.",
> +"  Test UEFI RT service set wakeup time interface, invalid hour 24.",
> +"  Test UEFI RT service set wakeup time interface, invalid minute 60.",
> +"  Test UEFI RT service set wakeup time interface, invalid second 60.",
> +"  Test UEFI RT service set wakeup time interface, invalid"
> +		 " nanosecond 1000000000.",
> +"  Test UEFI RT service set wakeup time interface, invalid"
> +		 " timezone -1441.",
> +"  Test UEFI RT service set wakeup time interface, invalid"
> +		 " timezone 1441.",
> +" uefirtvariable  (8 tests):",
> +"  Test UEFI RT service get variable interface.",
> +"  Test UEFI RT service get next variable name interface.",
> +"  Test UEFI RT service set variable interface.",
> +"  Test UEFI RT service query variable info interface.",
> +"  Test UEFI RT service variable interface stress test.",
> +"  Test UEFI RT service set variable interface stress test.",
> +"  Test UEFI RT service query variable info interface stress test.",
> +"  Test UEFI RT service get variable interface, invalid parameters.",
> +"",
> +"UEFI tests:",
> +#ifdef FWTS_ARCH_INTEL
> +" csm             (1 test):",
> +"  UEFI Compatibility Support Module test.",
> +#endif
> +" esrt            (1 test):",
> +"  Sanity check UEFI ESRT Table.",
> +" securebootcert  (1 test):",
> +"  UEFI secure boot test.",
> +" uefibootpath    (1 test):",
> +"  Test UEFI Boot Path Boot####.",
> +" uefirtauthvar   (12 tests):",
> +"  Create authenticated variable test.",
> +"  Authenticated variable test with the same authenticated variable.",
> +"  Authenticated variable test with another valid authenticated"
> +		 " variable.",
> +"  Append authenticated variable test.",
> +"  Update authenticated variable test.",
> +"  Authenticated variable test with old authenticated variable.",
> +"  Delete authenticated variable test.",
> +"  Authenticated variable test with invalid modified data.",
> +"  Authenticated variable test with invalid modified timestamp.",
> +"  Authenticated variable test with different guid.",
> +"  Authenticated variable test with invalid attributes.",
> +"  Set and delete authenticated variable created by different"
> +		 " key test.",
> +" uefirtmisc      (3 tests):",
> +"  Test for UEFI miscellaneous runtime service interfaces.",
> +"  Stress test for UEFI miscellaneous runtime service interfaces.",
> +"  Test GetNextHighMonotonicCount with invalid NULL parameter.",
> +" uefirttime      (35 tests):",
> +"  Test UEFI RT service get time interface.",
> +"  Test UEFI RT service get time interface, NULL time parameter.",
> +"  Test UEFI RT service get time interface, NULL time and NULL"
> +		 " capabilties parameters.",
> +"  Test UEFI RT service set time interface.",
> +"  Test UEFI RT service set time interface, invalid year 1899.",
> +"  Test UEFI RT service set time interface, invalid year 10000.",
> +"  Test UEFI RT service set time interface, invalid month 0.",
> +"  Test UEFI RT service set time interface, invalid month 13.",
> +"  Test UEFI RT service set time interface, invalid day 0.",
> +"  Test UEFI RT service set time interface, invalid day 32.",
> +"  Test UEFI RT service set time interface, invalid hour 24.",
> +"  Test UEFI RT service set time interface, invalid minute 60.",
> +"  Test UEFI RT service set time interface, invalid second 60.",
> +"  Test UEFI RT service set time interface, invalid"
> +		 " nanosecond 1000000000.",
> +"  Test UEFI RT service set time interface, invalid timezone -1441.",
> +"  Test UEFI RT service set time interface, invalid timezone 1441.",
> +"  Test UEFI RT service get wakeup time interface.",
> +"  Test UEFI RT service get wakeup time interface, NULL"
> +		 " enabled parameter.",
> +"  Test UEFI RT service get wakeup time interface, NULL"
> +		 " pending parameter.",
> +"  Test UEFI RT service get wakeup time interface, NULL"
> +		 " time parameter.",
> +"  Test UEFI RT service get wakeup time interface, NULL"
> +		 " enabled, pending and time parameters.",
> +"  Test UEFI RT service set wakeup time interface.",
> +"  Test UEFI RT service set wakeup time interface, NULL"
> +		 " time parameter.",
> +"  Test UEFI RT service set wakeup time interface, invalid year 1899.",
> +"  Test UEFI RT service set wakeup time interface, invalid year 10000.",
> +"  Test UEFI RT service set wakeup time interface, invalid month 0.",
> +"  Test UEFI RT service set wakeup time interface, invalid month 13.",
> +"  Test UEFI RT service set wakeup time interface, invalid day 0.",
> +"  Test UEFI RT service set wakeup time interface, invalid day 32.",
> +"  Test UEFI RT service set wakeup time interface, invalid hour 24.",
> +"  Test UEFI RT service set wakeup time interface, invalid minute 60.",
> +"  Test UEFI RT service set wakeup time interface, invalid second 60.",
> +"  Test UEFI RT service set wakeup time interface, invalid"
> +		 " nanosecond 1000000000.",
> +"  Test UEFI RT service set wakeup time interface, invalid"
> +		 " timezone -1441.",
> +"  Test UEFI RT service set wakeup time interface, invalid"
> +		 " timezone 1441.",
> +" uefirtvariable  (8 tests):",
> +"  Test UEFI RT service get variable interface.",
> +"  Test UEFI RT service get next variable name interface.",
> +"  Test UEFI RT service set variable interface.",
> +"  Test UEFI RT service query variable info interface.",
> +"  Test UEFI RT service variable interface stress test.",
> +"  Test UEFI RT service set variable interface stress test.",
> +"  Test UEFI RT service query variable info interface stress test.",
> +"  Test UEFI RT service get variable interface, invalid parameters.",
> +"",
> +"ACPI Spec Compliance tests:",
> +" fadt            (6 tests):",
> +"  ACPI FADT Description Table flag info.",
> +"  FADT checksum test.",
> +"  FADT revision test.",
> +"  ACPI FADT Description Table tests.",
> +"  Test FADT SCI_EN bit is enabled.",
> +"  Test FADT reset register.",
> +" madt            (5 tests):",
> +"  MADT checksum test.",
> +"  MADT revision test.",
> +"  MADT architecture minimum revision test.",
> +"  MADT flags field reserved bits test.",
> +"  MADT subtable tests.",
> +" rsdp            (1 test):",
> +"  RSDP Root System Description Pointer test.",
> +};
> +
> +static int show_log_create(fwts_framework *fw,
> +		 		 char *show_abs_path_name,
> +		 		 const char *log_name,
> +		 		 char * log_template[],
> +		 		 int log_array_size)
> +{
> +		 int i, count;
> +		 FILE *show_log;
> +
> +		 char fq_log_name[PATH_MAX+1];
> +
> +		 memset(fq_log_name, 0, sizeof(fq_log_name));
> +
> +		 /* -1 for the slash in the snprintf concatenation */
> +		 if (strlen(show_abs_path_name) + strlen(log_name)
> +		 		 >= sizeof(fq_log_name)-1) {
> +		 		 fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create1",
> +		 		 		 "Unable to properly create"
> +		 		 		 " the fwts-test logs.");
> +		 		 return FWTS_ERROR;
> +		 }
> +		 count = snprintf(fq_log_name, sizeof(fq_log_name), "%s/%s",
> +		 		 show_abs_path_name, log_name);
> +
> +		 if ((count < 0) || (count >= (int)sizeof(fq_log_name))) {
> +		 		 fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create2",
> +		 		 		 "Unable to properly create"
> +		 		 		 " the fwts-test logs.");
> +		 		 return FWTS_ERROR;
> +		 }
> +
> +		 show_log = fopen(fq_log_name, "w+");
> +
> +		 if (!show_log) {
> +		 		 fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create3",
> +		 		 		 "Unable to properly create"
> +		 		 		 " the fwts-test logs.");
> +		 		 return FWTS_ERROR;
> +		 }
> +
> +		 for ( i= 0; i < log_array_size; i++) {
> +		 		 fprintf(show_log, "%s\n", log_template[i]);
> +
> +		 }
> +		 if (fclose(show_log)) {
> +		 		 fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create4",
> +		 		 		 "Unable to properly create"
> +		 		 		 " the fwts-test logs.");
> +		 		 return FWTS_ERROR;
> +		 }
> +
> +		 fwts_log_info(fw,
> +		 "Dynamic creation of %s is complete", fq_log_name);
> +
> +		 return FWTS_OK;
> +}
> +
> +static int show_logs_test1(fwts_framework *fw)
> +{
> +		 const char show_all_log_name[] =
> +		 "arg-show-tests-0001/arg-show-tests-0001.log";
> +		 const char show_all_full_log_name[] =
> +		 "arg-show-tests-full-0001/arg-show-tests-full-0001.log";
> +
> +		 int rc = 0;
> +		 char *fwtstestdir = NULL, *fwts_show_log_flags = NULL;
> +
> +		 char *fwts_abs_path_name;
> +		 char tmp_abs_path [PATH_MAX+1];
> +
> +		 memset(tmp_abs_path, 0, sizeof(tmp_abs_path));
> +
> +		 /* Use the inherited env var since these logs */
> +		 /* are only used during make check tests      */
> +		 /* For a fail safe use the FWTS_SRCDIR        */
> +		 /* from config.h during direct invocation     */
> +		 /* of show_logs                               */
> +
> +		 fwtstestdir = getenv("FWTSTESTDIR");
> +		 fwts_show_log_flags = getenv("FWTS_SHOW_LOGS");
> +
> +		 if (fwtstestdir != NULL) {
> +		 		 fwts_abs_path_name = realpath(fwtstestdir,
> +		 		 		 		 		 tmp_abs_path);
> +		 } else {
> +		 		 if (FWTS_SRCDIR == NULL) {
> +		 		 		 fwts_failed(fw, LOG_LEVEL_LOW,
> +		 		 		 		 "show-logs-fq-log1",
> +		 		 		 		 "Unable to properly
create"
> +		 		 		 		 " the fwts-test logs.");
> +		 		 		 return FWTS_ERROR;
> +		 		 } else {
> +		 		 		 if (strlen(FWTS_SRCDIR)+11
> +		 		 		 		 <= sizeof(tmp_abs_path)) {
> +		 		 		 		 if (!(strncpy
(tmp_abs_path,
> +		 		 		 		 		 FWTS_SRCDIR,
> +		 		 		 		 		 sizeof
(tmp_abs_path))
> +		 		 		 		 		 == NULL)) {
> +
fwts_abs_path_name =
> +
strncat(tmp_abs_path,
> +
"/fwts-test", 11);
> +		 		 		 		 } else {
> +		 		 		 		 		 fwts_failed
(fw, LOG_LEVEL_LOW,
> +
"show-logs-fq-log2",
> +		 		 		 		 		 "Unable to
properly create"
> +		 		 		 		 		 " the
fwts-test logs.");
> +		 		 		 		 		 return
FWTS_ERROR;
> +		 		 		 		 }
> +		 		 		 }
> +		 		 }
> +		 }
> +
> +		 if (fwts_abs_path_name == NULL) {
> +		 		 fwts_failed(fw, LOG_LEVEL_LOW,
"show-logs-fq-log3",
> +		 		 		 "Unable to properly create"
> +		 		 		 " the fwts-test logs.");
> +		 		 		 return FWTS_ERROR;
> +		 }
> +
> +		 if (fwts_show_log_flags == NULL) {
> +		 		 rc = show_log_create(fw,
> +		 		 		 fwts_abs_path_name,
> +		 		 		 show_all_full_log_name,
> +		 		 		 fwts_show_all,
> +		 		 		 FWTS_ARRAY_LEN(fwts_show_all));
> +		 		 if (!rc) {
> +		 		 		 rc = show_log_create(fw,
> +		 		 		 		 fwts_abs_path_name,
> +		 		 		 		 show_all_log_name,
> +		 		 		 		 fwts_show,
> +		 		 		 		 FWTS_ARRAY_LEN
(fwts_show));
> +		 		 }
> +		 } else {
> +		 		 if (!strncmp(fwts_show_log_flags, "BASE", 4)){
> +		 		 		 rc = show_log_create(fw,
> +		 		 		 		 fwts_abs_path_name,
> +		 		 		 		 show_all_log_name,
> +		 		 		 		 fwts_show,
> +		 		 		 		 FWTS_ARRAY_LEN
(fwts_show));
> +		 		 } else {
> +		 		 		 if (!strncmp(fwts_show_log_flags,
"FULL", 4)) {
> +		 		 		 		 rc = show_log_create(fw,
> +
fwts_abs_path_name,
> +
show_all_full_log_name,
> +		 		 		 		 		 fwts_show_all,
> +		 		 		 		 		 FWTS_ARRAY_LEN
(fwts_show_all));
> +		 		 		 }
> +		 		 }
> +		 }
> +
> +		 if (!rc) {
> +		 		 fwts_passed(fw, "Show Tests Log Files"
> +		 		 		 " completed successfully.");
> +		 } /* subroutines logged fwts failures */
> +
> +		 return rc;
> +}
> +
> +static fwts_framework_minor_test show_logs_tests[] = {
> +		 { show_logs_test1, "Show Tests Log Files" },
> +		 { NULL, NULL }
> +};
> +
> +static fwts_framework_ops show_logs_ops = {
> +		 .description = "Show Tests Log Files",
> +		 .minor_tests = show_logs_tests
> +};
> +
> +FWTS_REGISTER("show_logs", &show_logs_ops, FWTS_TEST_EARLY,
> +		 FWTS_FLAG_BATCH)
>

The show* text is auto-generated from the each test at startup time, so
this is not really a good solution as we're duplicating this in
fwts_show_all[] and fwts_show[] arrays. Plus, maintaining this when we
add extra tests will be a maintenance burden.

Sorry, NACK.

Colin

--
fwts-devel mailing list
fwts-devel@lists.ubuntu.com
Modify settings or unsubscribe at:
https://lists.ubuntu.com/mailman/listinfo/fwts-devel
Colin Ian King July 5, 2016, 9:48 p.m. UTC | #3
On 05/07/16 20:34, Deborah McLemore wrote:
> Hi Colin,
> 
> The static log files (which are the two sources which are deleted below)
> are already a maintenance item which must be updated with each new test
> which is added.
> 
> The burden is only moved from updating the 2 static log files which are
> then compared to the real output from the show and show all command.
> 
> Maybe I am not following the reply, can you elaborate ?
> 
> This patch allows the conditional compilation of what goes in the two
> log files below.

The patch is duplicating text strings in fwts; the show logs output in
the patch is a hunk of text built into fwts - however, this data is
already in fwts on a per test basis.  The first rule to any code is
never duplicate and that is exactly what we have here, the text in two
places in the code.  That is a recipe for things to get out of sync.

The regression tests compare the output of fwts to the expected output;
the patch here is doing things the opposite way around; the output is
embedded into fwts, which is not the way fwts was designed to work wrt
to the regression tests.  If the regression tests don't do the right
thing for a specific configuration then we need to tweak the regression
tests and not fwts.



> 
> 
>> delete mode 100644 fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
>> delete mode 100644
> fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
> =====================================
> Deb McLemore
> IBM OpenPower - IBM Systems
> (512) 286 9980
> 
> debmc@us.ibm.com
> debmc@linux.vnet.ibm.com - (plain text)
> =====================================
> 
> Inactive hide details for Colin Ian King ---07/05/2016 02:16:40 PM---On
> 05/07/16 20:05, Deb McLemore wrote: > We added the capaColin Ian King
> ---07/05/2016 02:16:40 PM---On 05/07/16 20:05, Deb McLemore wrote: > We
> added the capability to dynamically create (based on tes
> 
> From: Colin Ian King <colin.king@canonical.com>
> To: Deb McLemore <debmc@linux.vnet.ibm.com>, fwts-devel@lists.ubuntu.com
> Date: 07/05/2016 02:16 PM
> Subject: Re: [PATCH] show/show_logs: Add dynamic creation of fwts-test logs
> Sent by: fwts-devel-bounces@lists.ubuntu.com
> 
> ------------------------------------------------------------------------
> 
> 
> 
> On 05/07/16 20:05, Deb McLemore wrote:
>> We added the capability to dynamically create (based on test)
>> the content of the log files used to validate the show commands.
>> This allows customization of the Makefile.am to optionally
>> include objects to be linked.
>>
>> Signed-off-by: Deb McLemore <debmc@linux.vnet.ibm.com>
>> ---
>>  configure.ac                                       |    2 +
>>  .../arg-show-tests-0001/arg-show-tests-0001.log    |  187 ---
>>  fwts-test/arg-show-tests-0001/test-0001.sh         |   20 +-
>>  fwts-test/arg-show-tests-0001/test-0002.sh         |   26 +-
>>  .../arg-show-tests-full-0001.log                   |  930 ------------
>>  fwts-test/arg-show-tests-full-0001/test-0001.sh    |   19 +-
>>  src/Makefile.am                                    |    1 +
>>  src/show/show_logs.c                               | 1480
> ++++++++++++++++++++
>>  8 files changed, 1519 insertions(+), 1146 deletions(-)
>>  delete mode 100644 fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
>>  delete mode 100644
> fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
>>  create mode 100644 src/show/show_logs.c
>>
>> diff --git a/configure.ac b/configure.ac
>> index e3e7512..0f15540 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -71,6 +71,8 @@
>>     ])
>>     AM_CONDITIONAL([HAVE_LIBFDT],
>>     [test "x$ac_cv_search_fdt_check_header" != "xno"])
>> +   fwts_srcdir=`readlink -f $srcdir`
>> +   AC_DEFINE_UNQUOTED([FWTS_SRCDIR],["$fwts_srcdir"], [FWTS absolute
> src path])
>>     AC_FUNC_MALLOC
>>     AC_FUNC_FORK
>>     AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
>> diff --git a/fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
> b/fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
>> deleted file mode 100644
>> index 1a76b9d..0000000
>> --- a/fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
>> +++ /dev/null
>> @@ -1,187 +0,0 @@
>> -ACPI tests:
>> - acpiinfo        General ACPI information test.
>> - acpitables      ACPI table headers sanity tests.
>> - apicinstance    Test for single instance of APIC/MADT table.
>> - asf             ASF! Alert Standard Format Table test.
>> - aspt            ASPT Table test.
>> - bert            BERT Boot Error Record Table test.
>> - bgrt            BGRT Boot Graphics Resource Table test.
>> - boot            BOOT Table test.
>> - checksum        ACPI table checksum test.
>> - cpep            CPEP Corrected Platform Error Polling Table test.
>> - csrt            CSRT Core System Resource Table test.
>> - cstates         Processor C state support test.
>> - dbg2            DBG2 (Debug Port Table 2) test.
>> - dbgp            DBGP (Debug Port) Table test.
>> - dmar            DMA Remapping (VT-d) test.
>> - ecdt            ECDT Embedded Controller Boot Resources Table test.
>> - einj            EINJ Error Injection Table test.
>> - erst            ERST Error Record Serialization Table test.
>> - facs            FACS Firmware ACPI Control Structure test.
>> - fadt            FADT Fixed ACPI Description Table tests.
>> - fpdt            FPDT Firmware Performance Data Table test.
>> - gtdt            GTDT Generic Timer Description Table test.
>> - hest            HEST Hardware Error Source Table test.
>> - hpet            HPET IA-PC High Precision Event Timer Table tests.
>> - iort            IORT IO Remapping Table test.
>> - lpit            LPIT Low Power Idle Table test.
>> - madt            MADT Multiple APIC Description Table (spec compliant).
>> - mcfg            MCFG PCI Express* memory mapped config space test.
>> - mchi            MCHI Management Controller Host Interface Table test.
>> - method          ACPI DSDT Method Semantic tests.
>> - msct            MSCT Maximum System Characteristics Table test.
>> - msdm            MSDM Microsoft Data Management Table test.
>> - pcc             Processor Clocking Control (PCC) test.
>> - rsdp            RSDP Root System Description Pointer test.
>> - rsdt            RSDT Root System Description Table test.
>> - sbst            SBST Smart Battery Specification Table test.
>> - slic            SLIC Software Licensing Description Table test.
>> - slit            SLIT System Locality Distance Information test.
>> - spcr            SPCR Serial Port Console Redirection Table test.
>> - spmi            SPMI Service Processor Management Interface
> Description Table test.
>> - srat            SRAT System Resource Affinity Table test.
>> - stao            STAO Status Override Table test.
>> - tcpa            TCPA Trusted Computing Platform Alliance
> Capabilities Table test.
>> - tpm2            TPM2 Trusted Platform Module 2 test.
>> - uefi            UEFI Data Table test.
>> - waet            WAET Windows ACPI Emulated Devices Table test.
>> - wdat            WDAT Microsoft Hardware Watchdog Action Table test.
>> - wmi             Extract and analyse Windows Management
> Instrumentation (WMI).
>> - xenv            XENV Xen Environment Table tests.
>> - xsdt            XSDT Extended System Description Table test.
>> -
>> -Batch tests:
>> - acpiinfo        General ACPI information test.
>> - acpitables      ACPI table headers sanity tests.
>> - apicedge        APIC edge/level test.
>> - apicinstance    Test for single instance of APIC/MADT table.
>> - asf             ASF! Alert Standard Format Table test.
>> - aspm            PCIe ASPM test.
>> - aspt            ASPT Table test.
>> - autobrightness  Automated LCD brightness test.
>> - bert            BERT Boot Error Record Table test.
>> - bgrt            BGRT Boot Graphics Resource Table test.
>> - bios32          BIOS32 Service Directory test.
>> - bios_info       Gather BIOS DMI information.
>> - bmc_info        BMC Info
>> - boot            BOOT Table test.
>> - checksum        ACPI table checksum test.
>> - cpep            CPEP Corrected Platform Error Polling Table test.
>> - cpufreq         CPU frequency scaling tests.
>> - crs             Test PCI host bridge configuration using _CRS.
>> - csm             UEFI Compatibility Support Module test.
>> - csrt            CSRT Core System Resource Table test.
>> - cstates         Processor C state support test.
>> - dbg2            DBG2 (Debug Port Table 2) test.
>> - dbgp            DBGP (Debug Port) Table test.
>> - dmar            DMA Remapping (VT-d) test.
>> - dmicheck        DMI/SMBIOS table tests.
>> - dt_base         Base device tree validity check
>> - dt_sysinfo      Device tree system information test
>> - ebda            Test EBDA region is mapped and reserved in memory
> map table.
>> - ecdt            ECDT Embedded Controller Boot Resources Table test.
>> - einj            EINJ Error Injection Table test.
>> - erst            ERST Error Record Serialization Table test.
>> - facs            FACS Firmware ACPI Control Structure test.
>> - fadt            FADT Fixed ACPI Description Table tests.
>> - fan             Simple fan tests.
>> - fpdt            FPDT Firmware Performance Data Table test.
>> - gtdt            GTDT Generic Timer Description Table test.
>> - hda_audio       HDA Audio Pin Configuration test.
>> - hest            HEST Hardware Error Source Table test.
>> - hpet            HPET IA-PC High Precision Event Timer Table tests.
>> - iort            IORT IO Remapping Table test.
>> - klog            Scan kernel log for errors and warnings.
>> - lpit            LPIT Low Power Idle Table test.
>> - madt            MADT Multiple APIC Description Table (spec compliant).
>> - maxfreq         Test max CPU frequencies against max scaling frequency.
>> - maxreadreq      Test firmware has set PCI Express MaxReadReq to a
> higher value on non-motherboard devices.
>> - mcfg            MCFG PCI Express* memory mapped config space test.
>> - mchi            MCHI Management Controller Host Interface Table test.
>> - method          ACPI DSDT Method Semantic tests.
>> - microcode       Test if system is using latest microcode.
>> - mpcheck         MultiProcessor Tables tests.
>> - msct            MSCT Maximum System Characteristics Table test.
>> - msdm            MSDM Microsoft Data Management Table test.
>> - msr             MSR register tests.
>> - mtrr            MTRR tests.
>> - nx              Test if CPU NX is disabled by the BIOS.
>> - olog            Run OLOG scan and analysis checks.
>> - oops            Scan kernel log for Oopses.
>> - osilinux        Disassemble DSDT to check for _OSI("Linux").
>> - pcc             Processor Clocking Control (PCC) test.
>> - pciirq          PCI IRQ Routing Table test.
>> - pnp             BIOS Support Installation structure test.
>> - prd_info        OPAL Processor Recovery Diagnostics Info
>> - rsdp            RSDP Root System Description Pointer test.
>> - rsdt            RSDT Root System Description Table test.
>> - sbst            SBST Smart Battery Specification Table test.
>> - securebootcert  UEFI secure boot test.
>> - slic            SLIC Software Licensing Description Table test.
>> - slit            SLIT System Locality Distance Information test.
>> - spcr            SPCR Serial Port Console Redirection Table test.
>> - spmi            SPMI Service Processor Management Interface
> Description Table test.
>> - srat            SRAT System Resource Affinity Table test.
>> - stao            STAO Status Override Table test.
>> - syntaxcheck     Re-assemble DSDT and SSDTs to find syntax errors and
> warnings.
>> - tcpa            TCPA Trusted Computing Platform Alliance
> Capabilities Table test.
>> - tpm2            TPM2 Trusted Platform Module 2 test.
>> - uefi            UEFI Data Table test.
>> - uefibootpath    Sanity check for UEFI Boot Path Boot####.
>> - version         Gather kernel system information.
>> - virt            CPU Virtualisation Configuration test.
>> - waet            WAET Windows ACPI Emulated Devices Table test.
>> - wakealarm       ACPI Wakealarm tests.
>> - wdat            WDAT Microsoft Hardware Watchdog Action Table test.
>> - wmi             Extract and analyse Windows Management
> Instrumentation (WMI).
>> - xenv            XENV Xen Environment Table tests.
>> - xsdt            XSDT Extended System Description Table test.
>> -
>> -Interactive tests:
>> - ac_adapter      Interactive ac_adapter power test.
>> - battery         Battery tests.
>> - brightness      Interactive LCD brightness test.
>> - hotkey          Hotkey scan code tests.
>> - lid             Interactive lid button test.
>> - power_button    Interactive power_button button test.
>> -
>> -Power States tests:
>> - s3              S3 suspend/resume test.
>> - s3power         S3 power loss during suspend test (takes minimum of
> 10 minutes to run).
>> - s4              S4 hibernate/resume test.
>> -
>> -Utilities:
>> - acpidump        Dump ACPI tables.
>> - cmosdump        Dump CMOS Memory.
>> - crsdump         Dump ACPI _CRS resources.
>> - ebdadump        Dump EBDA region.
>> - esrtdump        Dump ESRT table.
>> - gpedump         Dump GPEs.
>> - memmapdump      Dump system memory map.
>> - mpdump          Dump MultiProcessor Data.
>> - plddump         Dump ACPI _PLD (Physical Device Location).
>> - prsdump         Dump ACPI _PRS resources.
>> - romdump         Dump ROM data.
>> - uefidump        Dump UEFI variables.
>> - uefivarinfo     UEFI variable info query.
>> -
>> -Unsafe tests:
>> - uefirtauthvar   Authenticated variable tests.
>> - uefirtmisc      UEFI miscellaneous runtime service interface tests.
>> - uefirttime      UEFI Runtime service time interface tests.
>> - uefirtvariable  UEFI Runtime service variable interface tests.
>> -
>> -UEFI tests:
>> - csm             UEFI Compatibility Support Module test.
>> - esrt            Sanity check UEFI ESRT Table.
>> - securebootcert  UEFI secure boot test.
>> - uefibootpath    Sanity check for UEFI Boot Path Boot####.
>> - uefirtauthvar   Authenticated variable tests.
>> - uefirtmisc      UEFI miscellaneous runtime service interface tests.
>> - uefirttime      UEFI Runtime service time interface tests.
>> - uefirtvariable  UEFI Runtime service variable interface tests.
>> -
>> -ACPI Spec Compliance tests:
>> - fadt            FADT Fixed ACPI Description Table tests.
>> - madt            MADT Multiple APIC Description Table (spec compliant).
>> - rsdp            RSDP Root System Description Pointer test.
>> diff --git a/fwts-test/arg-show-tests-0001/test-0001.sh
> b/fwts-test/arg-show-tests-0001/test-0001.sh
>> index a62071c..ade98a3 100755
>> --- a/fwts-test/arg-show-tests-0001/test-0001.sh
>> +++ b/fwts-test/arg-show-tests-0001/test-0001.sh
>> @@ -3,23 +3,21 @@
>>  TEST="Test -s option"
>>  NAME=test-0001.sh
>>  TMPLOG=$TMP/arg-show-tests.log.$$
>> +export FWTS_SHOW_LOGS="BASE"
>>  
>> -#
>> -#  Non-x86 tests don't have WMI so skip this test
>> -#
>> -$FWTS --show-tests | grep wmi > /dev/null
>> -if [ $? -eq 1 ]; then
>> +# Dynamically create the log template per test
>> +$FWTS show_logs &> /dev/null
>> +if [ $? -ne 0 ]; then
>>   echo SKIP: $TEST, $NAME
>>   exit 77
>>  fi
>>  
>> -cols=$(stty -a | tr ';' '\n' | grep "columns" | cut -d' ' -f3) 2>
> /dev/null
>>  #
>>  #  If we can't set the tty then we can't test
>>  #
>> -stty cols 80 2> /dev/null
>> -if [ $? -eq 1 ]; then
>> -        tset 2> /dev/null
>> +stty cols 80 &> /dev/null
>> +if [ $? -ne 0 ]; then
>> +        tset &> /dev/null
>>          echo SKIP: $TEST, $NAME
>>          exit 77
>>  fi
>> @@ -32,8 +30,8 @@ else
>>   echo FAILED: $TEST, $NAME
>>  fi
>>  
>> -stty cols 80 2> /dev/null
>> -tset 2> /dev/null
>> +stty cols 80 &> /dev/null
>> +tset &> /dev/null
>>  
>>  rm $TMPLOG
>>  exit $ret
>> diff --git a/fwts-test/arg-show-tests-0001/test-0002.sh
> b/fwts-test/arg-show-tests-0001/test-0002.sh
>> index f92fd8f..078f3e7 100755
>> --- a/fwts-test/arg-show-tests-0001/test-0002.sh
>> +++ b/fwts-test/arg-show-tests-0001/test-0002.sh
>> @@ -3,27 +3,25 @@
>>  TEST="Test --show-tests option"
>>  NAME=test-0002.sh
>>  TMPLOG=$TMP/arg-show-tests.log.$$
>> +export FWTS_SHOW_LOGS="BASE"
>>  
>> -#
>> -#  Non-x86 tests don't have WMI so skip this test
>> -#
>> -$FWTS --show-tests | grep wmi > /dev/null
>> -if [ $? -eq 1 ]; then
>> +# Dynamically create the log template per test
>> +$FWTS show_logs &> /dev/null
>> +if [ $? -ne 0 ]; then
>>   echo SKIP: $TEST, $NAME
>>   exit 77
>>  fi
>>  
>> -cols=$(stty -a | tr ';' '\n' | grep "columns" | cut -d' ' -f3) 2>
> /dev/null
>>  #
>>  #  If we can't set the tty then we can't test
>>  #
>> -stty cols 80 2> /dev/null
>> -if [ $? -eq 1 ]; then
>> -        tset 2> /dev/null
>> -        echo SKIP: $TEST, $NAME
>> -        exit 77
>> +stty cols 80 &> /dev/null
>> +if [ $? -ne 0 ]; then
>> + tset &> /dev/null
>> + echo SKIP: $TEST, $NAME
>> + exit 77
>>  fi
>> -$FWTS -s > $TMPLOG
>> +$FWTS --show-tests > $TMPLOG
>>  diff $TMPLOG $FWTSTESTDIR/arg-show-tests-0001/arg-show-tests-0001.log
>>> $FAILURE_LOG
>>  ret=$?
>>  if [ $ret -eq 0 ]; then
>> @@ -32,8 +30,8 @@ else
>>   echo FAILED: $TEST, $NAME
>>  fi
>>  
>> -stty cols 80 2> /dev/null
>> -tset 2> /dev/null
>> +stty cols 80 &> /dev/null
>> +tset &> /dev/null
>>  
>>  rm $TMPLOG
>>  exit $ret
>> diff --git
> a/fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
> b/fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
>> deleted file mode 100644
>> index 3eb5e3e..0000000
>> --- a/fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
>> +++ /dev/null
>> @@ -1,930 +0,0 @@
>> -ACPI tests:
>> - acpiinfo        (3 tests):
>> -  Determine Kernel ACPI version.
>> -  Determine machine's ACPI version.
>> -  Determine AML compiler.
>> - acpitables      (1 test):
>> -  Test ACPI headers.
>> - apicinstance    (1 test):
>> -  Test for single instance of APIC/MADT table.
>> - asf             (1 test):
>> -  ASF! Alert Standard Format Table test.
>> - aspt            (1 test):
>> -  ASPT Table test.
>> - bert            (1 test):
>> -  BERT Boot Error Record Table test.
>> - bgrt            (1 test):
>> -  BGRT Boot Graphics Resource Table test.
>> - boot            (1 test):
>> -  BOOT Table test.
>> - checksum        (1 test):
>> -  ACPI table checksum test.
>> - cpep            (1 test):
>> -  CPEP Corrected Platform Error Polling Table test.
>> - csrt            (1 test):
>> -  CSRT Core System Resource Table test.
>> - cstates         (1 test):
>> -  Test all CPUs C-states.
>> - dbg2            (1 test):
>> -  DBG2 (Debug Port Table 2) test.
>> - dbgp            (1 test):
>> -  DBGP (Debug Port) Table test.
>> - dmar            (1 test):
>> -  DMA Remapping test.
>> - ecdt            (1 test):
>> -  ECDT Embedded Controller Boot Resources Table test.
>> - einj            (1 test):
>> -  EINJ Error Injection Table test.
>> - erst            (1 test):
>> -  ERST Error Record Serialization Table test.
>> - facs            (1 test):
>> -  FACS Firmware ACPI Control Structure test.
>> - fadt            (6 tests):
>> -  ACPI FADT Description Table flag info.
>> -  FADT checksum test.
>> -  FADT revision test.
>> -  ACPI FADT Description Table tests.
>> -  Test FADT SCI_EN bit is enabled.
>> -  Test FADT reset register.
>> - fpdt            (1 test):
>> -  FPDT Firmware Performance Data Table test.
>> - gtdt            (1 test):
>> -  GTDT Generic Timer Description Table test.
>> - hest            (1 test):
>> -  HEST Hardware Error Source Table test.
>> - hpet            (4 tests):
>> -  Test HPET base in kernel log.
>> -  Test HPET base in HPET table.
>> -  Test HPET base in DSDT and/or SSDT.
>> -  Test HPET configuration.
>> - iort            (1 test):
>> -  IORT IO Remapping Table test.
>> - lpit            (1 test):
>> -  LPIT Low Power Idle Table test.
>> - madt            (5 tests):
>> -  MADT checksum test.
>> -  MADT revision test.
>> -  MADT architecture minimum revision test.
>> -  MADT flags field reserved bits test.
>> -  MADT subtable tests.
>> - mcfg            (2 tests):
>> -  Validate MCFG table.
>> -  Validate MCFG PCI config space.
>> - mchi            (1 test):
>> -  MCHI Management Controller Host Interface Table test.
>> - method          (191 tests):
>> -  Test Method Names.
>> -  Test _AEI.
>> -  Test _EVT (Event Method).
>> -  Test _DLM (Device Lock Mutex).
>> -  Test _PIC (Inform AML of Interrupt Model).
>> -  Test _CID (Compatible ID).
>> -  Test _DDN (DOS Device Name).
>> -  Test _HID (Hardware ID).
>> -  Test _HRV (Hardware Revision Number).
>> -  Test _MLS (Multiple Language String).
>> -  Test _PLD (Physical Device Location).
>> -  Test _SUB (Subsystem ID).
>> -  Test _SUN (Slot User Number).
>> -  Test _STR (String).
>> -  Test _UID (Unique ID).
>> -  Test _CDM (Clock Domain).
>> -  Test _CRS (Current Resource Settings).
>> -  Test _DSD (Device Specific Data).
>> -  Test _DIS (Disable).
>> -  Test _DMA (Direct Memory Access).
>> -  Test _FIX (Fixed Register Resource Provider).
>> -  Test _GSB (Global System Interrupt Base).
>> -  Test _HPP (Hot Plug Parameters).
>> -  Test _PRS (Possible Resource Settings).
>> -  Test _PRT (PCI Routing Table).
>> -  Test _PXM (Proximity).
>> -  Test _CCA (Cache Coherency Attribute).
>> -  Test _EDL (Eject Device List).
>> -  Test _EJD (Ejection Dependent Device).
>> -  Test _EJ0 (Eject).
>> -  Test _EJ1 (Eject).
>> -  Test _EJ2 (Eject).
>> -  Test _EJ3 (Eject).
>> -  Test _EJ4 (Eject).
>> -  Test _LCK (Lock).
>> -  Test _RMV (Remove).
>> -  Test _STA (Status).
>> -  Test _DEP (Operational Region Dependencies).
>> -  Test _BDN (BIOS Dock Name).
>> -  Test _BBN (Base Bus Number).
>> -  Test _DCK (Dock).
>> -  Test _INI (Initialize).
>> -  Test _GLK (Global Lock).
>> -  Test _SEG (Segment).
>> -  Test _OFF (Set resource off).
>> -  Test _ON_ (Set resource on).
>> -  Test _DSW (Device Sleep Wake).
>> -  Test _IRC (In Rush Current).
>> -  Test _PRE (Power Resources for Enumeration).
>> -  Test _PR0 (Power Resources for D0).
>> -  Test _PR1 (Power Resources for D1).
>> -  Test _PR2 (Power Resources for D2).
>> -  Test _PR3 (Power Resources for D3).
>> -  Test _PRW (Power Resources for Wake).
>> -  Test _PS0 (Power State 0).
>> -  Test _PS1 (Power State 1).
>> -  Test _PS2 (Power State 2).
>> -  Test _PS3 (Power State 3).
>> -  Test _PSC (Power State Current).
>> -  Test _PSE (Power State for Enumeration).
>> -  Test _PSW (Power State Wake).
>> -  Test _S1D (S1 Device State).
>> -  Test _S2D (S2 Device State).
>> -  Test _S3D (S3 Device State).
>> -  Test _S4D (S4 Device State).
>> -  Test _S0W (S0 Device Wake State).
>> -  Test _S1W (S1 Device Wake State).
>> -  Test _S2W (S2 Device Wake State).
>> -  Test _S3W (S3 Device Wake State).
>> -  Test _S4W (S4 Device Wake State).
>> -  Test _RST (Device Reset).
>> -  Test _PRR (Power Resource for Reset).
>> -  Test _S0_ (S0 System State).
>> -  Test _S1_ (S1 System State).
>> -  Test _S2_ (S2 System State).
>> -  Test _S3_ (S3 System State).
>> -  Test _S4_ (S4 System State).
>> -  Test _S5_ (S5 System State).
>> -  Test _SWS (System Wake Source).
>> -  Test _PSS (Performance Supported States).
>> -  Test _CPC (Continuous Performance Control).
>> -  Test _CSD (C State Dependencies).
>> -  Test _CST (C States).
>> -  Test _PCT (Performance Control).
>> -  Test _PDL (P-State Depth Limit).
>> -  Test _PPC (Performance Present Capabilities).
>> -  Test _PPE (Polling for Platform Error).
>> -  Test _PSD (Power State Dependencies).
>> -  Test _PTC (Processor Throttling Control).
>> -  Test _TDL (T-State Depth Limit).
>> -  Test _TPC (Throttling Present Capabilities).
>> -  Test _TSD (Throttling State Dependencies).
>> -  Test _TSS (Throttling Supported States).
>> -  Test _LPI (Low Power Idle States).
>> -  Test _RDI (Resource Dependencies for Idle).
>> -  Test _PUR (Processor Utilization Request).
>> -  Test _MSG (Message).
>> -  Test _SST (System Status).
>> -  Test _ALC (Ambient Light Colour Chromaticity).
>> -  Test _ALI (Ambient Light Illuminance).
>> -  Test _ALT (Ambient Light Temperature).
>> -  Test _ALP (Ambient Light Polling).
>> -  Test _ALR (Ambient Light Response).
>> -  Test _LID (Lid Status).
>> -  Test _GTF (Get Task File).
>> -  Test _GTM (Get Timing Mode).
>> -  Test _MBM (Memory Bandwidth Monitoring Data).
>> -  Test _UPC (USB Port Capabilities).
>> -  Test _UPD (User Presence Detect).
>> -  Test _UPP (User Presence Polling).
>> -  Test _GCP (Get Capabilities).
>> -  Test _GRT (Get Real Time).
>> -  Test _GWS (Get Wake Status).
>> -  Test _CWS (Clear Wake Status).
>> -  Test _STP (Set Expired Timer Wake Policy).
>> -  Test _STV (Set Timer Value).
>> -  Test _TIP (Expired Timer Wake Policy).
>> -  Test _TIV (Timer Values).
>> -  Test _SBS (Smart Battery Subsystem).
>> -  Test _BCT (Battery Charge Time).
>> -  Test _BIF (Battery Information).
>> -  Test _BIX (Battery Information Extended).
>> -  Test _BMA (Battery Measurement Averaging).
>> -  Test _BMC (Battery Maintenance Control).
>> -  Test _BMD (Battery Maintenance Data).
>> -  Test _BMS (Battery Measurement Sampling Time).
>> -  Test _BST (Battery Status).
>> -  Test _BTP (Battery Trip Point).
>> -  Test _BTH (Battery Throttle Limit).
>> -  Test _BTM (Battery Time).
>> -  Test _PCL (Power Consumer List).
>> -  Test _PIF (Power Source Information).
>> -  Test _PRL (Power Source Redundancy List).
>> -  Test _PSR (Power Source).
>> -  Test _GAI (Get Averaging Level).
>> -  Test _GHL (Get Harware Limit).
>> -  Test _PMC (Power Meter Capabilities).
>> -  Test _PMD (Power Meter Devices).
>> -  Test _PMM (Power Meter Measurement).
>> -  Test _WPC (Wireless Power Calibration).
>> -  Test _WPP (Wireless Power Polling).
>> -  Test _FIF (Fan Information).
>> -  Test _FPS (Fan Performance States).
>> -  Test _FSL (Fan Set Level).
>> -  Test _FST (Fan Status).
>> -  Test _ACx (Active Cooling).
>> -  Test _ART (Active Cooling Relationship Table).
>> -  Test _CRT (Critical Trip Point).
>> -  Test _CR3 (Warm/Standby Temperature).
>> -  Test _DTI (Device Temperature Indication).
>> -  Test _HOT (Hot Temperature).
>> -  Test _MTL (Minimum Throttle Limit).
>> -  Test _NTT (Notification Temp Threshold).
>> -  Test _PSL (Passive List).
>> -  Test _PSV (Passive Temp).
>> -  Test _RTV (Relative Temp Values).
>> -  Test _SCP (Set Cooling Policy).
>> -  Test _TC1 (Thermal Constant 1).
>> -  Test _TC2 (Thermal Constant 2).
>> -  Test _TFP (Thermal fast Sampling Period).
>> -  Test _TMP (Thermal Zone Current Temp).
>> -  Test _TPT (Trip Point Temperature).
>> -  Test _TRT (Thermal Relationship Table).
>> -  Test _TSN (Thermal Sensor Device).
>> -  Test _TSP (Thermal Sampling Period).
>> -  Test _TST (Temperature Sensor Threshold).
>> -  Test _TZD (Thermal Zone Devices).
>> -  Test _TZM (Thermal Zone member).
>> -  Test _TZP (Thermal Zone Polling).
>> -  Test _GPE (General Purpose Events).
>> -  Test _EC_ (EC Offset Query).
>> -  Test _PTS (Prepare to Sleep).
>> -  Test _TTS (Transition to State).
>> -  Test _WAK (System Wake).
>> -  Test _ADR (Return Unique ID for Device).
>> -  Test _BCL (Query List of Brightness Control Levels Supported).
>> -  Test _BCM (Set Brightness Level).
>> -  Test _BQC (Brightness Query Current Level).
>> -  Test _DCS (Return the Status of Output Device).
>> -  Test _DDC (Return the EDID for this Device).
>> -  Test _DSS (Device Set State).
>> -  Test _DGS (Query Graphics State).
>> -  Test _DOD (Enumerate All Devices Attached to Display Adapter).
>> -  Test _DOS (Enable/Disable Output Switching).
>> -  Test _GPD (Get POST Device).
>> -  Test _ROM (Get ROM Data).
>> -  Test _SPD (Set POST Device).
>> -  Test _VPO (Video POST Options).
>> -  Test _CBA (Configuration Base Address).
>> -  Test _IFT (IPMI Interface Type).
>> -  Test _SRV (IPMI Interface Revision).
>> - msct            (1 test):
>> -  MSCT Maximum System Characteristics Table test.
>> - msdm            (1 test):
>> -  MSDM Microsoft Data Management Table test.
>> - pcc             (1 test):
>> -  Processor Clocking Control (PCC) test.
>> - rsdp            (1 test):
>> -  RSDP Root System Description Pointer test.
>> - rsdt            (1 test):
>> -  RSDT Root System Description Table test.
>> - sbst            (1 test):
>> -  SBST Smart Battery Specificiation Table test.
>> - slic            (1 test):
>> -  SLIC Software Licensing Description Table test.
>> - slit            (1 test):
>> -  SLIT System Locality Distance Information test.
>> - spcr            (1 test):
>> -  SPCR Serial Port Console Redirection Table test.
>> - spmi            (1 test):
>> -  SPMI Service Processor Management Interface Description Table test.
>> - srat            (1 test):
>> -  SRAT System Resource Affinity Table test.
>> - stao            (1 test):
>> -  STAO Status Override Table test.
>> - tcpa            (1 test):
>> -  Validate TCPA table.
>> - tpm2            (1 test):
>> -  Validate TPM2 table.
>> - uefi            (1 test):
>> -  UEFI Data Table test.
>> - waet            (1 test):
>> -  Windows ACPI Emulated Devices Table test.
>> - wdat            (1 test):
>> -  WDAT Microsoft Hardware Watchdog Action Table test.
>> - wmi             (1 test):
>> -  Windows Management Instrumentation test.
>> - xenv            (1 test):
>> -  Validate XENV table.
>> - xsdt            (1 test):
>> -  XSDT Extended System Description Table test.
>> -
>> -Batch tests:
>> - acpiinfo        (3 tests):
>> -  Determine Kernel ACPI version.
>> -  Determine machine's ACPI version.
>> -  Determine AML compiler.
>> - acpitables      (1 test):
>> -  Test ACPI headers.
>> - apicedge        (1 test):
>> -  Legacy and PCI Interrupt Edge/Level trigger tests.
>> - apicinstance    (1 test):
>> -  Test for single instance of APIC/MADT table.
>> - asf             (1 test):
>> -  ASF! Alert Standard Format Table test.
>> - aspm            (2 tests):
>> -  PCIe ASPM ACPI test.
>> -  PCIe ASPM registers test.
>> - aspt            (1 test):
>> -  ASPT Table test.
>> - autobrightness  (2 tests):
>> -  Test for maximum and actual brightness.
>> -  Change actual brightness.
>> - bert            (1 test):
>> -  BERT Boot Error Record Table test.
>> - bgrt            (1 test):
>> -  BGRT Boot Graphics Resource Table test.
>> - bios32          (1 test):
>> -  BIOS32 Service Directory test.
>> - bios_info       (1 test):
>> -  Gather BIOS DMI information
>> - bmc_info        (1 test):
>> -  BMC Info
>> - boot            (1 test):
>> -  BOOT Table test.
>> - checksum        (1 test):
>> -  ACPI table checksum test.
>> - cpep            (1 test):
>> -  CPEP Corrected Platfor m Error Polling Table test.
>> - cpufreq         (7 tests):
>> -  CPU frequency table consistency
>> -  CPU frequency table duplicates
>> -  CPU frequency firmware limits
>> -  CPU frequency claimed maximum
>> -  CPU frequency SW_ANY control
>> -  CPU frequency SW_ALL control
>> -  CPU frequency performance tests.
>> - crs             (1 test):
>> -  Test PCI host bridge configuration using _CRS.
>> - csm             (1 test):
>> -  UEFI Compatibility Support Module test.
>> - csrt            (1 test):
>> -  CSRT Core System Resource Table test.
>> - cstates         (1 test):
>> -  Test all CPUs C-states.
>> - dbg2            (1 test):
>> -  DBG2 (Debug Port Table 2) test.
>> - dbgp            (1 test):
>> -  DBGP (Debug Port) Table test.
>> - dmar            (1 test):
>> -  DMA Remapping test.
>> - dmicheck        (3 tests):
>> -  Find and test SMBIOS Table Entry Points.
>> -  Test DMI/SMBIOS tables for errors.
>> -  Test DMI/SMBIOS3 tables for errors.
>> - dt_base         (3 tests):
>> -  Check device tree presence
>> -  Check device tree baseline validity
>> -  Check device tree warnings
>> - dt_sysinfo      (3 tests):
>> -  Check model property
>> -  Check system-id property
>> -  Check OpenPOWER Reference compatible
>> - ebda            (1 test):
>> -  Test EBDA is reserved in E820 table.
>> - ecdt            (1 test):
>> -  ECDT Embedded Controller Boot Resources Table test.
>> - einj            (1 test):
>> -  EINJ Error Injection Table test.
>> - erst            (1 test):
>> -  ERST Error Record Serialization Table test.
>> - facs            (1 test):
>> -  FACS Firmware ACPI Control Structure test.
>> - fadt            (6 tests):
>> -  ACPI FADT Description Table flag info.
>> -  FADT checksum test.
>> -  FADT revision test.
>> -  ACPI FADT Description Table tests.
>> -  Test FADT SCI_EN bit is enabled.
>> -  Test FADT reset register.
>> - fan             (2 tests):
>> -  Test fan status.
>> -  Load system, check CPU fan status.
>> - fpdt            (1 test):
>> -  FPDT Firmware Performance Data Table test.
>> - gtdt            (1 test):
>> -  GTDT Generic Timer Description Table test.
>> - hda_audio       (1 test):
>> -  HDA Audio Pin Configuration test.
>> - hest            (1 test):
>> -  HEST Hardware Error Source Table test.
>> - hpet            (4 tests):
>> -  Test HPET base in kernel log.
>> -  Test HPET base in HPET table.
>> -  Test HPET base in DSDT and/or SSDT.
>> -  Test HPET configuration.
>> - iort            (1 test):
>> -  IORT IO Remapping Table test.
>> - klog            (1 test):
>> -  Kernel log error check.
>> - lpit            (1 test):
>> -  LPIT Low Power Idle Table test.
>> - madt            (5 tests):
>> -  MADT checksum test.
>> -  MADT revision test.
>> -  MADT architecture minimum revision test.
>> -  MADT flags field reserved bits test.
>> -  MADT subtable tests.
>> - maxfreq         (1 test):
>> -  Maximum CPU frequency test.
>> - maxreadreq      (1 test):
>> -  Test firmware settings MaxReadReq for PCI Express devices.
>> - mcfg            (2 tests):
>> -  Validate MCFG table.
>> -  Validate MCFG PCI config space.
>> - mchi            (1 test):
>> -  MCHI Management Controller Host Interface Table test.
>> - method          (191 tests):
>> -  Test Method Names.
>> -  Test _AEI.
>> -  Test _EVT (Event Method).
>> -  Test _DLM (Device Lock Mutex).
>> -  Test _PIC (Inform AML of Interrupt Model).
>> -  Test _CID (Compatible ID).
>> -  Test _DDN (DOS Device Name).
>> -  Test _HID (Hardware ID).
>> -  Test _HRV (Hardware Revision Number).
>> -  Test _MLS (Multiple Language String).
>> -  Test _PLD (Physical Device Location).
>> -  Test _SUB (Subsystem ID).
>> -  Test _SUN (Slot User Number).
>> -  Test _STR (String).
>> -  Test _UID (Unique ID).
>> -  Test _CDM (Clock Domain).
>> -  Test _CRS (Current Resource Settings).
>> -  Test _DSD (Device Specific Data).
>> -  Test _DIS (Disable).
>> -  Test _DMA (Direct Memory Access).
>> -  Test _FIX (Fixed Register Resource Provider).
>> -  Test _GSB (Global System Interrupt Base).
>> -  Test _HPP (Hot Plug Parameters).
>> -  Test _PRS (Possible Resource Settings).
>> -  Test _PRT (PCI Routing Table).
>> -  Test _PXM (Proximity).
>> -  Test _CCA (Cache Coherency Attribute).
>> -  Test _EDL (Eject Device List).
>> -  Test _EJD (Ejection Dependent Device).
>> -  Test _EJ0 (Eject).
>> -  Test _EJ1 (Eject).
>> -  Test _EJ2 (Eject).
>> -  Test _EJ3 (Eject).
>> -  Test _EJ4 (Eject).
>> -  Test _LCK (Lock).
>> -  Test _RMV (Remove).
>> -  Test _STA (Status).
>> -  Test _DEP (Operational Region Dependencies).
>> -  Test _BDN (BIOS Dock Name).
>> -  Test _BBN (Base Bus Number).
>> -  Test _DCK (Dock).
>> -  Test _INI (Initialize).
>> -  Test _GLK (Global Lock).
>> -  Test _SEG (Segment).
>> -  Test _OFF (Set resource off).
>> -  Test _ON_ (Set resource on).
>> -  Test _DSW (Device Sleep Wake).
>> -  Test _IRC (In Rush Current).
>> -  Test _PRE (Power Resources for Enumeration).
>> -  Test _PR0 (Power Resources for D0).
>> -  Test _PR1 (Power Resources for D1).
>> -  Test _PR2 (Power Resources for D2).
>> -  Test _PR3 (Power Resources for D3).
>> -  Test _PRW (Power Resources for Wake).
>> -  Test _PS0 (Power State 0).
>> -  Test _PS1 (Power State 1).
>> -  Test _PS2 (Power State 2).
>> -  Test _PS3 (Power State 3).
>> -  Test _PSC (Power State Current).
>> -  Test _PSE (Power State for Enumeration).
>> -  Test _PSW (Power State Wake).
>> -  Test _S1D (S1 Device State).
>> -  Test _S2D (S2 Device State).
>> -  Test _S3D (S3 Device State).
>> -  Test _S4D (S4 Device State).
>> -  Test _S0W (S0 Device Wake State).
>> -  Test _S1W (S1 Device Wake State).
>> -  Test _S2W (S2 Device Wake State).
>> -  Test _S3W (S3 Device Wake State).
>> -  Test _S4W (S4 Device Wake State).
>> -  Test _RST (Device Reset).
>> -  Test _PRR (Power Resource for Reset).
>> -  Test _S0_ (S0 System State).
>> -  Test _S1_ (S1 System State).
>> -  Test _S2_ (S2 System State).
>> -  Test _S3_ (S3 System State).
>> -  Test _S4_ (S4 System State).
>> -  Test _S5_ (S5 System State).
>> -  Test _SWS (System Wake Source).
>> -  Test _PSS (Performance Supported States).
>> -  Test _CPC (Continuous Performance Control).
>> -  Test _CSD (C State Dependencies).
>> -  Test _CST (C States).
>> -  Test _PCT (Performance Control).
>> -  Test _PDL (P-State Depth Limit).
>> -  Test _PPC (Performance Present Capabilities).
>> -  Test _PPE (Polling for Platform Error).
>> -  Test _PSD (Power State Dependencies).
>> -  Test _PTC (Processor Throttling Control).
>> -  Test _TDL (T-State Depth Limit).
>> -  Test _TPC (Throttling Present Capabilities).
>> -  Test _TSD (Throttling State Dependencies).
>> -  Test _TSS (Throttling Supported States).
>> -  Test _LPI (Low Power Idle States).
>> -  Test _RDI (Resource Dependencies for Idle).
>> -  Test _PUR (Processor Utilization Request).
>> -  Test _MSG (Message).
>> -  Test _SST (System Status).
>> -  Test _ALC (Ambient Light Colour Chromaticity).
>> -  Test _ALI (Ambient Light Illuminance).
>> -  Test _ALT (Ambient Light Temperature).
>> -  Test _ALP (Ambient Light Polling).
>> -  Test _ALR (Ambient Light Response).
>> -  Test _LID (Lid Status).
>> -  Test _GTF (Get Task File).
>> -  Test _GTM (Get Timing Mode).
>> -  Test _MBM (Memory Bandwidth Monitoring Data).
>> -  Test _UPC (USB Port Capabilities).
>> -  Test _UPD (User Presence Detect).
>> -  Test _UPP (User Presence Polling).
>> -  Test _GCP (Get Capabilities).
>> -  Test _GRT (Get Real Time).
>> -  Test _GWS (Get Wake Status).
>> -  Test _CWS (Clear Wake Status).
>> -  Test _STP (Set Expired Timer Wake Policy).
>> -  Test _STV (Set Timer Value).
>> -  Test _TIP (Expired Timer Wake Policy).
>> -  Test _TIV (Timer Values).
>> -  Test _SBS (Smart Battery Subsystem).
>> -  Test _BCT (Battery Charge Time).
>> -  Test _BIF (Battery Information).
>> -  Test _BIX (Battery Information Extended).
>> -  Test _BMA (Battery Measurement Averaging).
>> -  Test _BMC (Battery Maintenance Control).
>> -  Test _BMD (Battery Maintenance Data).
>> -  Test _BMS (Battery Measurement Sampling Time).
>> -  Test _BST (Battery Status).
>> -  Test _BTP (Battery Trip Point).
>> -  Test _BTH (Battery Throttle Limit).
>> -  Test _BTM (Battery Time).
>> -  Test _PCL (Power Consumer List).
>> -  Test _PIF (Power Source Information).
>> -  Test _PRL (Power Source Redundancy List).
>> -  Test _PSR (Power Source).
>> -  Test _GAI (Get Averaging Level).
>> -  Test _GHL (Get Harware Limit).
>> -  Test _PMC (Power Meter Capabilities).
>> -  Test _PMD (Power Meter Devices).
>> -  Test _PMM (Power Meter Measurement).
>> -  Test _WPC (Wireless Power Calibration).
>> -  Test _WPP (Wireless Power Polling).
>> -  Test _FIF (Fan Information).
>> -  Test _FPS (Fan Performance States).
>> -  Test _FSL (Fan Set Level).
>> -  Test _FST (Fan Status).
>> -  Test _ACx (Active Cooling).
>> -  Test _ART (Active Cooling Relationship Table).
>> -  Test _CRT (Critical Trip Point).
>> -  Test _CR3 (Warm/Standby Temperature).
>> -  Test _DTI (Device Temperature Indication).
>> -  Test _HOT (Hot Temperature).
>> -  Test _MTL (Minimum Throttle Limit).
>> -  Test _NTT (Notification Temp Threshold).
>> -  Test _PSL (Passive List).
>> -  Test _PSV (Passive Temp).
>> -  Test _RTV (Relative Temp Values).
>> -  Test _SCP (Set Cooling Policy).
>> -  Test _TC1 (Thermal Constant 1).
>> -  Test _TC2 (Thermal Constant 2).
>> -  Test _TFP (Thermal fast Sampling Period).
>> -  Test _TMP (Thermal Zone Current Temp).
>> -  Test _TPT (Trip Point Temperature).
>> -  Test _TRT (Thermal Relationship Table).
>> -  Test _TSN (Thermal Sensor Device).
>> -  Test _TSP (Thermal Sampling Period).
>> -  Test _TST (Temperature Sensor Threshold).
>> -  Test _TZD (Thermal Zone Devices).
>> -  Test _TZM (Thermal Zone member).
>> -  Test _TZP (Thermal Zone Polling).
>> -  Test _GPE (General Purpose Events).
>> -  Test _EC_ (EC Offset Query).
>> -  Test _PTS (Prepare to Sleep).
>> -  Test _TTS (Transition to State).
>> -  Test _WAK (System Wake).
>> -  Test _ADR (Return Unique ID for Device).
>> -  Test _BCL (Query List of Brightness Control Levels Supported).
>> -  Test _BCM (Set Brightness Level).
>> -  Test _BQC (Brightness Query Current Level).
>> -  Test _DCS (Return the Status of Output Device).
>> -  Test _DDC (Return the EDID for this Device).
>> -  Test _DSS (Device Set State).
>> -  Test _DGS (Query Graphics State).
>> -  Test _DOD (Enumerate All Devices Attached to Display Adapter).
>> -  Test _DOS (Enable/Disable Output Switching).
>> -  Test _GPD (Get POST Device).
>> -  Test _ROM (Get ROM Data).
>> -  Test _SPD (Set POST Device).
>> -  Test _VPO (Video POST Options).
>> -  Test _CBA (Configuration Base Address).
>> -  Test _IFT (IPMI Interface Type).
>> -  Test _SRV (IPMI Interface Revision).
>> - microcode       (1 test):
>> -  Test for most recent microcode being loaded.
>> - mpcheck         (9 tests):
>> -  Test MP header.
>> -  Test MP CPU entries.
>> -  Test MP Bus entries.
>> -  Test MP IO APIC entries.
>> -  Test MP IO Interrupt entries.
>> -  Test MP Local Interrupt entries.
>> -  Test MP System Address entries.
>> -  Test MP Bus Hierarchy entries.
>> -  Test MP Compatible Bus Address Space entries.
>> - msct            (1 test):
>> -  MSCT Maximum System Characteristics Table test.
>> - msdm            (1 test):
>> -  MSDM Microsoft Data Management Table test.
>> - msr             (5 tests):
>> -  Test CPU generic MSRs.
>> -  Test CPU specific model MSRs.
>> -  Test all P State Ratios.
>> -  Test C1 and C3 autodemotion.
>> -  Test SMRR MSR registers.
>> - mtrr            (3 tests):
>> -  Validate the kernel MTRR IOMEM setup.
>> -  Validate the MTRR setup across all processors.
>> -  Test for AMD MtrrFixDramModEn being cleared by the BIOS.
>> - nx              (3 tests):
>> -  Test CPU NX capability.
>> -  Test all CPUs have same BIOS set NX flag.
>> -  Test all CPUs have same msr setting in MSR 0x1a0.
>> - olog            (1 test):
>> -  OLOG scan and analysis checks results.
>> - oops            (1 test):
>> -  Kernel log oops check.
>> - osilinux        (1 test):
>> -  Disassemble DSDT to check for _OSI("Linux").
>> - pcc             (1 test):
>> -  Processor Clocking Control (PCC) test.
>> - pciirq          (1 test):
>> -  PCI IRQ Routing Table test.
>> - pnp             (1 test):
>> -  PnP BIOS Support Installation structure test.
>> - prd_info        (1 test):
>> -  OPAL Processor Recovery Diagnostics Info
>> - rsdp            (1 test):
>> -  RSDP Root System Description Pointer test.
>> - rsdt            (1 test):
>> -  RSDT Root System Description Table test.
>> - sbst            (1 test):
>> -  SBST Smart Battery Specificiation Table test.
>> - securebootcert  (1 test):
>> -  UEFI secure boot test.
>> - slic            (1 test):
>> -  SLIC Software Licensing Description Table test.
>> - slit            (1 test):
>> -  SLIT System Locality Distance Information test.
>> - spcr            (1 test):
>> -  SPCR Serial Port Console Redirection Table test.
>> - spmi            (1 test):
>> -  SPMI Service Processor Management Interface Description Table test.
>> - srat            (1 test):
>> -  SRAT System Resource Affinity Table test.
>> - stao            (1 test):
>> -  STAO Status Override Table test.
>> - syntaxcheck     (1 test):
>> -  Disassemble and reassemble DSDT and SSDTs.
>> - tcpa            (1 test):
>> -  Validate TCPA table.
>> - tpm2            (1 test):
>> -  Validate TPM2 table.
>> - uefi            (1 test):
>> -  UEFI Data Table test.
>> - uefibootpath    (1 test):
>> -  Test UEFI Boot Path Boot####.
>> - version         (4 tests):
>> -  Gather kernel signature.
>> -  Gather kernel system information.
>> -  Gather kernel boot command line.
>> -  Gather ACPI driver version.
>> - virt            (1 test):
>> -  CPU Virtualisation Configuration test.
>> - waet            (1 test):
>> -  Windows ACPI Emulated Devices Table test.
>> - wakealarm       (5 tests):
>> -  Test existence of RTC with alarm interface.
>> -  Trigger wakealarm for 1 seconds in the future.
>> -  Test if wakealarm is fired.
>> -  Multiple wakealarm firing tests.
>> -  Reset wakealarm time.
>> - wdat            (1 test):
>> -  WDAT Microsoft Hardware Watchdog Action Table test.
>> - wmi             (1 test):
>> -  Windows Management Instrumentation test.
>> - xenv            (1 test):
>> -  Validate XENV table.
>> - xsdt            (1 test):
>> -  XSDT Extended System Description Table test.
>> -
>> -Interactive tests:
>> - ac_adapter      (3 tests):
>> -  Test ACPI ac_adapter state.
>> -  Test ac_adapter initial on-line state.
>> -  Test ac_adapter state changes.
>> - battery         (1 test):
>> -  Battery test.
>> - brightness      (3 tests):
>> -  Observe all brightness changes.
>> -  Observe min, max brightness changes.
>> -  Test brightness hotkeys.
>> - hotkey          (1 test):
>> -  Hotkey keypress checks.
>> - lid             (3 tests):
>> -  Test LID buttons report open correctly.
>> -  Test LID buttons on a single open/close.
>> -  Test LID buttons on multiple open/close events.
>> - power_button    (1 test):
>> -  Test press of power button and ACPI event.
>> -
>> -Power States tests:
>> - s3              (1 test):
>> -  S3 suspend/resume test.
>> - s3power         (1 test):
>> -  S3 power loss during suspend test.
>> - s4              (1 test):
>> -  S4 hibernate/resume test.
>> -
>> -Utilities:
>> - acpidump        (1 test):
>> -  Dump ACPI tables.
>> - cmosdump        (1 test):
>> -  Dump CMOS Memory.
>> - crsdump         (1 test):
>> -  Dump ACPI _CRS (Current Resource Settings).
>> - ebdadump        (1 test):
>> -  Dump EBDA region.
>> - esrtdump        (1 test):
>> -  Dump ESRT Table.
>> - gpedump         (1 test):
>> -  Dump GPEs.
>> - memmapdump      (1 test):
>> -  Dump system memory map.
>> - mpdump          (1 test):
>> -  Dump Multi Processor Data.
>> - plddump         (1 test):
>> -  Dump ACPI _PLD (Physical Device Location).
>> - prsdump         (1 test):
>> -  Dump ACPI _PRS (Possible Resource Settings).
>> - romdump         (1 test):
>> -  Dump ROM data.
>> - uefidump        (1 test):
>> -  Dump UEFI Variables.
>> - uefivarinfo     (1 test):
>> -  UEFI variable info query.
>> -
>> -Unsafe tests:
>> - uefirtauthvar   (12 tests):
>> -  Create authenticated variable test.
>> -  Authenticated variable test with the same authenticated variable.
>> -  Authenticated variable test with another valid authenticated variable.
>> -  Append authenticated variable test.
>> -  Update authenticated variable test.
>> -  Authenticated variable test with old authenticated variable.
>> -  Delete authenticated variable test.
>> -  Authenticated variable test with invalid modified data.
>> -  Authenticated variable test with invalid modified timestamp.
>> -  Authenticated variable test with different guid.
>> -  Authenticated variable test with invalid attributes.
>> -  Set and delete authenticated variable created by different key test.
>> - uefirtmisc      (3 tests):
>> -  Test for UEFI miscellaneous runtime service interfaces.
>> -  Stress test for UEFI miscellaneous runtime service interfaces.
>> -  Test GetNextHighMonotonicCount with invalid NULL parameter.
>> - uefirttime      (35 tests):
>> -  Test UEFI RT service get time interface.
>> -  Test UEFI RT service get time interface, NULL time parameter.
>> -  Test UEFI RT service get time interface, NULL time and NULL
> capabilties parameters.
>> -  Test UEFI RT service set time interface.
>> -  Test UEFI RT service set time interface, invalid year 1899.
>> -  Test UEFI RT service set time interface, invalid year 10000.
>> -  Test UEFI RT service set time interface, invalid month 0.
>> -  Test UEFI RT service set time interface, invalid month 13.
>> -  Test UEFI RT service set time interface, invalid day 0.
>> -  Test UEFI RT service set time interface, invalid day 32.
>> -  Test UEFI RT service set time interface, invalid hour 24.
>> -  Test UEFI RT service set time interface, invalid minute 60.
>> -  Test UEFI RT service set time interface, invalid second 60.
>> -  Test UEFI RT service set time interface, invalid nanosecond 1000000000.
>> -  Test UEFI RT service set time interface, invalid timezone -1441.
>> -  Test UEFI RT service set time interface, invalid timezone 1441.
>> -  Test UEFI RT service get wakeup time interface.
>> -  Test UEFI RT service get wakeup time interface, NULL enabled parameter.
>> -  Test UEFI RT service get wakeup time interface, NULL pending parameter.
>> -  Test UEFI RT service get wakeup time interface, NULL time parameter.
>> -  Test UEFI RT service get wakeup time interface, NULL enabled,
> pending and time parameters.
>> -  Test UEFI RT service set wakeup time interface.
>> -  Test UEFI RT service set wakeup time interface, NULL time parameter.
>> -  Test UEFI RT service set wakeup time interface, invalid year 1899.
>> -  Test UEFI RT service set wakeup time interface, invalid year 10000.
>> -  Test UEFI RT service set wakeup time interface, invalid month 0.
>> -  Test UEFI RT service set wakeup time interface, invalid month 13.
>> -  Test UEFI RT service set wakeup time interface, invalid day 0.
>> -  Test UEFI RT service set wakeup time interface, invalid day 32.
>> -  Test UEFI RT service set wakeup time interface, invalid hour 24.
>> -  Test UEFI RT service set wakeup time interface, invalid minute 60.
>> -  Test UEFI RT service set wakeup time interface, invalid second 60.
>> -  Test UEFI RT service set wakeup time interface, invalid nanosecond
> 1000000000.
>> -  Test UEFI RT service set wakeup time interface, invalid timezone -1441.
>> -  Test UEFI RT service set wakeup time interface, invalid timezone 1441.
>> - uefirtvariable  (8 tests):
>> -  Test UEFI RT service get variable interface.
>> -  Test UEFI RT service get next variable name interface.
>> -  Test UEFI RT service set variable interface.
>> -  Test UEFI RT service query variable info interface.
>> -  Test UEFI RT service variable interface stress test.
>> -  Test UEFI RT service set variable interface stress test.
>> -  Test UEFI RT service query variable info interface stress test.
>> -  Test UEFI RT service get variable interface, invalid parameters.
>> -
>> -UEFI tests:
>> - csm             (1 test):
>> -  UEFI Compatibility Support Module test.
>> - esrt            (1 test):
>> -  Sanity check UEFI ESRT Table.
>> - securebootcert  (1 test):
>> -  UEFI secure boot test.
>> - uefibootpath    (1 test):
>> -  Test UEFI Boot Path Boot####.
>> - uefirtauthvar   (12 tests):
>> -  Create authenticated variable test.
>> -  Authenticated variable test with the same authenticated variable.
>> -  Authenticated variable test with another valid authenticated variable.
>> -  Append authenticated variable test.
>> -  Update authenticated variable test.
>> -  Authenticated variable test with old authenticated variable.
>> -  Delete authenticated variable test.
>> -  Authenticated variable test with invalid modified data.
>> -  Authenticated variable test with invalid modified timestamp.
>> -  Authenticated variable test with different guid.
>> -  Authenticated variable test with invalid attributes.
>> -  Set and delete authenticated variable created by different key test.
>> - uefirtmisc      (3 tests):
>> -  Test for UEFI miscellaneous runtime service interfaces.
>> -  Stress test for UEFI miscellaneous runtime service interfaces.
>> -  Test GetNextHighMonotonicCount with invalid NULL parameter.
>> - uefirttime      (35 tests):
>> -  Test UEFI RT service get time interface.
>> -  Test UEFI RT service get time interface, NULL time parameter.
>> -  Test UEFI RT service get time interface, NULL time and NULL
> capabilties parameters.
>> -  Test UEFI RT service set time interface.
>> -  Test UEFI RT service set time interface, invalid year 1899.
>> -  Test UEFI RT service set time interface, invalid year 10000.
>> -  Test UEFI RT service set time interface, invalid month 0.
>> -  Test UEFI RT service set time interface, invalid month 13.
>> -  Test UEFI RT service set time interface, invalid day 0.
>> -  Test UEFI RT service set time interface, invalid day 32.
>> -  Test UEFI RT service set time interface, invalid hour 24.
>> -  Test UEFI RT service set time interface, invalid minute 60.
>> -  Test UEFI RT service set time interface, invalid second 60.
>> -  Test UEFI RT service set time interface, invalid nanosecond 1000000000.
>> -  Test UEFI RT service set time interface, invalid timezone -1441.
>> -  Test UEFI RT service set time interface, invalid timezone 1441.
>> -  Test UEFI RT service get wakeup time interface.
>> -  Test UEFI RT service get wakeup time interface, NULL enabled parameter.
>> -  Test UEFI RT service get wakeup time interface, NULL pending parameter.
>> -  Test UEFI RT service get wakeup time interface, NULL time parameter.
>> -  Test UEFI RT service get wakeup time interface, NULL enabled,
> pending and time parameters.
>> -  Test UEFI RT service set wakeup time interface.
>> -  Test UEFI RT service set wakeup time interface, NULL time parameter.
>> -  Test UEFI RT service set wakeup time interface, invalid year 1899.
>> -  Test UEFI RT service set wakeup time interface, invalid year 10000.
>> -  Test UEFI RT service set wakeup time interface, invalid month 0.
>> -  Test UEFI RT service set wakeup time interface, invalid month 13.
>> -  Test UEFI RT service set wakeup time interface, invalid day 0.
>> -  Test UEFI RT service set wakeup time interface, invalid day 32.
>> -  Test UEFI RT service set wakeup time interface, invalid hour 24.
>> -  Test UEFI RT service set wakeup time interface, invalid minute 60.
>> -  Test UEFI RT service set wakeup time interface, invalid second 60.
>> -  Test UEFI RT service set wakeup time interface, invalid nanosecond
> 1000000000.
>> -  Test UEFI RT service set wakeup time interface, invalid timezone -1441.
>> -  Test UEFI RT service set wakeup time interface, invalid timezone 1441.
>> - uefirtvariable  (8 tests):
>> -  Test UEFI RT service get variable interface.
>> -  Test UEFI RT service get next variable name interface.
>> -  Test UEFI RT service set variable interface.
>> -  Test UEFI RT service query variable info interface.
>> -  Test UEFI RT service variable interface stress test.
>> -  Test UEFI RT service set variable interface stress test.
>> -  Test UEFI RT service query variable info interface stress test.
>> -  Test UEFI RT service get variable interface, invalid parameters.
>> -
>> -ACPI Spec Compliance tests:
>> - fadt            (6 tests):
>> -  ACPI FADT Description Table flag info.
>> -  FADT checksum test.
>> -  FADT revision test.
>> -  ACPI FADT Description Table tests.
>> -  Test FADT SCI_EN bit is enabled.
>> -  Test FADT reset register.
>> - madt            (5 tests):
>> -  MADT checksum test.
>> -  MADT revision test.
>> -  MADT architecture minimum revision test.
>> -  MADT flags field reserved bits test.
>> -  MADT subtable tests.
>> - rsdp            (1 test):
>> -  RSDP Root System Description Pointer test.
>> diff --git a/fwts-test/arg-show-tests-full-0001/test-0001.sh
> b/fwts-test/arg-show-tests-full-0001/test-0001.sh
>> index b4e74f7..1302bd3 100755
>> --- a/fwts-test/arg-show-tests-full-0001/test-0001.sh
>> +++ b/fwts-test/arg-show-tests-full-0001/test-0001.sh
>> @@ -3,17 +3,25 @@
>>  TEST="Test --show-tests-full option"
>>  NAME=test-0001.sh
>>  TMPLOG=$TMP/arg-show-tests-full.log.$$
>> +export FWTS_SHOW_LOGS="FULL"
>> +
>> +# Dynamically create the log template per test
>> +$FWTS show_logs &> /dev/null
>> +if [ $? -ne 0 ]; then
>> + echo SKIP: $TEST, $NAME
>> + exit 77
>> +fi
>>  
>>  #
>> -#  Non-x86 tests don't have WMI so skip this test
>> +#  If we can't set the tty then we can't test
>>  #
>> -$FWTS --show-tests | grep wmi > /dev/null
>> -if [ $? -eq 1 ]; then
>> +stty cols 80 &> /dev/null
>> +if [ $? -ne 0 ]; then
>> + tset &> /dev/null
>>   echo SKIP: $TEST, $NAME
>>   exit 77
>>  fi
>>  
>> -stty cols 80
>>  $FWTS --show-tests-full > $TMPLOG
>>  diff $TMPLOG
> $FWTSTESTDIR/arg-show-tests-full-0001/arg-show-tests-full-0001.log >>
> $FAILURE_LOG
>>  ret=$?
>> @@ -23,5 +31,8 @@ else
>>   echo FAILED: $TEST, $NAME
>>  fi
>>  
>> +stty cols 80 &> /dev/null
>> +tset &> /dev/null
>> +
>>  rm $TMPLOG
>>  exit $ret
>> diff --git a/src/Makefile.am b/src/Makefile.am
>> index 100eaa3..8ac67b4 100644
>> --- a/src/Makefile.am
>> +++ b/src/Makefile.am
>> @@ -132,6 +132,7 @@ fwts_SOURCES = main.c \
>>   pci/aspm/aspm.c \
>>   pci/crs/crs.c \
>>   pci/maxreadreq/maxreadreq.c \
>> + show/show_logs.c \
>>   uefi/csm/csm.c \
>>   uefi/uefidump/uefidump.c \
>>   uefi/uefirttime/uefirttime.c \
>> diff --git a/src/show/show_logs.c b/src/show/show_logs.c
>> new file mode 100644
>> index 0000000..7b958ff
>> --- /dev/null
>> +++ b/src/show/show_logs.c
>> @@ -0,0 +1,1480 @@
>> +/*
>> + * Copyright (C) 2010-2016 Canonical
>> + * Some of this work - Copyright (C) 2016 IBM
>> + *
>> + * 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 2
>> + * 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, write to the Free Software
>> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
> 02110-1301, USA.
>> + *
>> + */
>> +
>> +
>> +#include "fwts.h"
>> +
>> +static char *fwts_show[] = {
>> +"ACPI tests:",
>> +" acpiinfo        General ACPI information test.",
>> +" acpitables      ACPI table headers sanity tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" apicinstance    Test for single instance of APIC/MADT table.",
>> +#endif
>> +" asf             ASF! Alert Standard Format Table test.",
>> +" aspt            ASPT Table test.",
>> +" bert            BERT Boot Error Record Table test.",
>> +" bgrt            BGRT Boot Graphics Resource Table test.",
>> +" boot            BOOT Table test.",
>> +" checksum        ACPI table checksum test.",
>> +" cpep            CPEP Corrected Platform Error Polling Table test.",
>> +" csrt            CSRT Core System Resource Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" cstates         Processor C state support test.",
>> +#endif
>> +" dbg2            DBG2 (Debug Port Table 2) test.",
>> +" dbgp            DBGP (Debug Port) Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" dmar            DMA Remapping (VT-d) test.",
>> +#endif
>> +" ecdt            ECDT Embedded Controller Boot Resources Table test.",
>> +" einj            EINJ Error Injection Table test.",
>> +" erst            ERST Error Record Serialization Table test.",
>> +" facs            FACS Firmware ACPI Control Structure test.",
>> +" fadt            FADT Fixed ACPI Description Table tests.",
>> +" fpdt            FPDT Firmware Performance Data Table test.",
>> +" gtdt            GTDT Generic Timer Description Table test.",
>> +" hest            HEST Hardware Error Source Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" hpet            HPET IA-PC High Precision Event Timer Table tests.",
>> +#endif
>> +" iort            IORT IO Remapping Table test.",
>> +" lpit            LPIT Low Power Idle Table test.",
>> +" madt            MADT Multiple APIC Description Table "
>> + "(spec compliant).",
>> +#ifdef FWTS_ARCH_INTEL
>> +" mcfg            MCFG PCI Express* memory mapped config space test.",
>> +#endif
>> +" mchi            MCHI Management Controller Host Interface"
>> + " Table test.",
>> +" method          ACPI DSDT Method Semantic tests.",
>> +" msct            MSCT Maximum System Characteristics Table test.",
>> +" msdm            MSDM Microsoft Data Management Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" pcc             Processor Clocking Control (PCC) test.",
>> +#endif
>> +" rsdp            RSDP Root System Description Pointer test.",
>> +" rsdt            RSDT Root System Description Table test.",
>> +" sbst            SBST Smart Battery Specification Table test.",
>> +" slic            SLIC Software Licensing Description Table test.",
>> +" slit            SLIT System Locality Distance Information test.",
>> +" spcr            SPCR Serial Port Console Redirection Table test.",
>> +" spmi            SPMI Service Processor Management Interface"
>> + " Description Table test.",
>> +" srat            SRAT System Resource Affinity Table test.",
>> +" stao            STAO Status Override Table test.",
>> +" tcpa            TCPA Trusted Computing Platform Alliance"
>> + " Capabilities Table test.",
>> +" tpm2            TPM2 Trusted Platform Module 2 test.",
>> +" uefi            UEFI Data Table test.",
>> +" waet            WAET Windows ACPI Emulated Devices Table test.",
>> +" wdat            WDAT Microsoft Hardware Watchdog Action Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" wmi             Extract and analyse Windows Management"
>> + " Instrumentation (WMI).",
>> +#endif
>> +" xenv            XENV Xen Environment Table tests.",
>> +" xsdt            XSDT Extended System Description Table test.",
>> +" ",
>> +"Batch tests:",
>> +" acpiinfo        General ACPI information test.",
>> +" acpitables      ACPI table headers sanity tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" apicedge        APIC edge/level test.",
>> +" apicinstance    Test for single instance of APIC/MADT table.",
>> +#endif
>> +" asf             ASF! Alert Standard Format Table test.",
>> +" aspm            PCIe ASPM test.",
>> +" aspt            ASPT Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" autobrightness  Automated LCD brightness test.",
>> +#endif
>> +" bert            BERT Boot Error Record Table test.",
>> +" bgrt            BGRT Boot Graphics Resource Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" bios32          BIOS32 Service Directory test.",
>> +" bios_info       Gather BIOS DMI information.",
>> +#endif
>> +" bmc_info        BMC Info",
>> +" boot            BOOT Table test.",
>> +" checksum        ACPI table checksum test.",
>> +" cpep            CPEP Corrected Platform Error Polling Table test.",
>> +" cpufreq         CPU frequency scaling tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" crs             Test PCI host bridge configuration using _CRS.",
>> +" csm             UEFI Compatibility Support Module test.",
>> +#endif
>> +" csrt            CSRT Core System Resource Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" cstates         Processor C state support test.",
>> +#endif
>> +" dbg2            DBG2 (Debug Port Table 2) test.",
>> +" dbgp            DBGP (Debug Port) Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" dmar            DMA Remapping (VT-d) test.",
>> +" dmicheck        DMI/SMBIOS table tests.",
>> +#endif
>> +#ifdef HAVE_LIBFDT
>> +" dt_base         Base device tree validity check",
>> +" dt_sysinfo      Device tree system information test",
>> +#endif
>> +#ifdef FWTS_ARCH_INTEL
>> +" ebda            Test EBDA region is mapped and reserved in memory"
>> + " map table.",
>> +#endif
>> +" ecdt            ECDT Embedded Controller Boot Resources Table test.",
>> +" einj            EINJ Error Injection Table test.",
>> +" erst            ERST Error Record Serialization Table test.",
>> +" facs            FACS Firmware ACPI Control Structure test.",
>> +" fadt            FADT Fixed ACPI Description Table tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" fan             Simple fan tests.",
>> +#endif
>> +" fpdt            FPDT Firmware Performance Data Table test.",
>> +" gtdt            GTDT Generic Timer Description Table test.",
>> +" hda_audio       HDA Audio Pin Configuration test.",
>> +" hest            HEST Hardware Error Source Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" hpet            HPET IA-PC High Precision Event Timer Table tests.",
>> +#endif
>> +" iort            IORT IO Remapping Table test.",
>> +" klog            Scan kernel log for errors and warnings.",
>> +" lpit            LPIT Low Power Idle Table test.",
>> +" madt            MADT Multiple APIC Description Table"
>> + " (spec compliant).",
>> +#ifdef FWTS_ARCH_INTEL
>> +" maxfreq         Test max CPU frequencies against max scaling"
>> + " frequency.",
>> +#endif
>> +" maxreadreq      Test firmware has set PCI Express MaxReadReq to a"
>> + " higher value on non-motherboard devices.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" mcfg            MCFG PCI Express* memory mapped config space test.",
>> +#endif
>> +" mchi            MCHI Management Controller Host Interface Table test.",
>> +" method          ACPI DSDT Method Semantic tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" microcode       Test if system is using latest microcode.",
>> +" mpcheck         MultiProcessor Tables tests.",
>> +#endif
>> +" msct            MSCT Maximum System Characteristics Table test.",
>> +" msdm            MSDM Microsoft Data Management Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" msr             MSR register tests.",
>> +" mtrr            MTRR tests.",
>> +#endif
>> +#ifdef FWTS_ARCH_INTEL
>> +" nx              Test if CPU NX is disabled by the BIOS.",
>> +#endif
>> +" olog            Run OLOG scan and analysis checks.",
>> +" oops            Scan kernel log for Oopses.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" osilinux        Disassemble DSDT to check for _OSI(\"Linux\").",
>> +" pcc             Processor Clocking Control (PCC) test.",
>> +" pciirq          PCI IRQ Routing Table test.",
>> +" pnp             BIOS Support Installation structure test.",
>> +#endif
>> +" prd_info        OPAL Processor Recovery Diagnostics Info",
>> +" rsdp            RSDP Root System Description Pointer test.",
>> +" rsdt            RSDT Root System Description Table test.",
>> +" sbst            SBST Smart Battery Specification Table test.",
>> +" securebootcert  UEFI secure boot test.",
>> +" show_logs       Show Tests Log Files",
>> +" slic            SLIC Software Licensing Description Table test.",
>> +" slit            SLIT System Locality Distance Information test.",
>> +" spcr            SPCR Serial Port Console Redirection Table test.",
>> +" spmi            SPMI Service Processor Management Interface"
>> + " Description Table test.",
>> +" srat            SRAT System Resource Affinity Table test.",
>> +" stao            STAO Status Override Table test.",
>> +" syntaxcheck     Re-assemble DSDT and SSDTs to find syntax errors"
>> + " and warnings.",
>> +" tcpa            TCPA Trusted Computing Platform Alliance"
>> + " Capabilities Table test.",
>> +" tpm2            TPM2 Trusted Platform Module 2 test.",
>> +" uefi            UEFI Data Table test.",
>> +" uefibootpath    Sanity check for UEFI Boot Path Boot####.",
>> +" version         Gather kernel system information.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" virt            CPU Virtualisation Configuration test.",
>> +#endif
>> +" waet            WAET Windows ACPI Emulated Devices Table test.",
>> +" wakealarm       ACPI Wakealarm tests.",
>> +" wdat            WDAT Microsoft Hardware Watchdog Action Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" wmi             Extract and analyse Windows Management"
>> + " Instrumentation (WMI).",
>> +#endif
>> +" xenv            XENV Xen Environment Table tests.",
>> +" xsdt            XSDT Extended System Description Table test.",
>> +"",
>> +#ifdef FWTS_ARCH_INTEL
>> +"Interactive tests:",
>> +" ac_adapter      Interactive ac_adapter power test.",
>> +" battery         Battery tests.",
>> +" brightness      Interactive LCD brightness test.",
>> +" hotkey          Hotkey scan code tests.",
>> +" lid             Interactive lid button test.",
>> +" power_button    Interactive power_button button test.",
>> +"",
>> +"Power States tests:",
>> +" s3              S3 suspend/resume test.",
>> +" s3power         S3 power loss during suspend test (takes minimum"
>> + " of 10 minutes to run).",
>> +" s4              S4 hibernate/resume test.",
>> +"",
>> +#endif
>> +"Utilities:",
>> +" acpidump        Dump ACPI tables.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" cmosdump        Dump CMOS Memory.",
>> +#endif
>> +" crsdump         Dump ACPI _CRS resources.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" ebdadump        Dump EBDA region.",
>> +#endif
>> +" esrtdump        Dump ESRT table.",
>> +" gpedump         Dump GPEs.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" memmapdump      Dump system memory map.",
>> +" mpdump          Dump MultiProcessor Data.",
>> +#endif
>> +" plddump         Dump ACPI _PLD (Physical Device Location).",
>> +" prsdump         Dump ACPI _PRS resources.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" romdump         Dump ROM data.",
>> +#endif
>> +" uefidump        Dump UEFI variables.",
>> +" uefivarinfo     UEFI variable info query.",
>> +"",
>> +"Unsafe tests:",
>> +" uefirtauthvar   Authenticated variable tests.",
>> +" uefirtmisc      UEFI miscellaneous runtime service interface tests.",
>> +" uefirttime      UEFI Runtime service time interface tests.",
>> +" uefirtvariable  UEFI Runtime service variable interface tests.",
>> +"",
>> +"UEFI tests:",
>> +#ifdef FWTS_ARCH_INTEL
>> +" csm             UEFI Compatibility Support Module test.",
>> +#endif
>> +" esrt            Sanity check UEFI ESRT Table.",
>> +" securebootcert  UEFI secure boot test.",
>> +" uefibootpath    Sanity check for UEFI Boot Path Boot####.",
>> +" uefirtauthvar   Authenticated variable tests.",
>> +" uefirtmisc      UEFI miscellaneous runtime service interface tests.",
>> +" uefirttime      UEFI Runtime service time interface tests.",
>> +" uefirtvariable  UEFI Runtime service variable interface tests.",
>> +"",
>> +"ACPI Spec Compliance tests:",
>> +" fadt            FADT Fixed ACPI Description Table tests.",
>> +" madt            MADT Multiple APIC Description Table"
>> + " (spec compliant).",
>> +" rsdp            RSDP Root System Description Pointer test.",
>> +};
>> +
>> +static char *fwts_show_all[] = {
>> +"ACPI tests:",
>> +" acpiinfo        (3 tests):",
>> +"  Determine Kernel ACPI version.",
>> +"  Determine machine's ACPI version.",
>> +"  Determine AML compiler.",
>> +" acpitables      (1 test):",
>> +"  Test ACPI headers.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" apicinstance    (1 test):",
>> +"  Test for single instance of APIC/MADT table.",
>> +#endif
>> +" asf             (1 test):",
>> +"  ASF! Alert Standard Format Table test.",
>> +" aspt            (1 test):",
>> +"  ASPT Table test.",
>> +" bert            (1 test):",
>> +"  BERT Boot Error Record Table test.",
>> +" bgrt            (1 test):",
>> +"  BGRT Boot Graphics Resource Table test.",
>> +" boot            (1 test):",
>> +"  BOOT Table test.",
>> +" checksum        (1 test):",
>> +"  ACPI table checksum test.",
>> +" cpep            (1 test):",
>> +"  CPEP Corrected Platform Error Polling Table test.",
>> +" csrt            (1 test):",
>> +"  CSRT Core System Resource Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" cstates         (1 test):",
>> +"  Test all CPUs C-states.",
>> +#endif
>> +" dbg2            (1 test):",
>> +"  DBG2 (Debug Port Table 2) test.",
>> +" dbgp            (1 test):",
>> +"  DBGP (Debug Port) Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" dmar            (1 test):",
>> +"  DMA Remapping test.",
>> +#endif
>> +" ecdt            (1 test):",
>> +"  ECDT Embedded Controller Boot Resources Table test.",
>> +" einj            (1 test):",
>> +"  EINJ Error Injection Table test.",
>> +" erst            (1 test):",
>> +"  ERST Error Record Serialization Table test.",
>> +" facs            (1 test):",
>> +"  FACS Firmware ACPI Control Structure test.",
>> +" fadt            (6 tests):",
>> +"  ACPI FADT Description Table flag info.",
>> +"  FADT checksum test.",
>> +"  FADT revision test.",
>> +"  ACPI FADT Description Table tests.",
>> +"  Test FADT SCI_EN bit is enabled.",
>> +"  Test FADT reset register.",
>> +" fpdt            (1 test):",
>> +"  FPDT Firmware Performance Data Table test.",
>> +" gtdt            (1 test):",
>> +"  GTDT Generic Timer Description Table test.",
>> +" hest            (1 test):",
>> +"  HEST Hardware Error Source Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" hpet            (4 tests):",
>> +"  Test HPET base in kernel log.",
>> +"  Test HPET base in HPET table.",
>> +"  Test HPET base in DSDT and/or SSDT.",
>> +"  Test HPET configuration.",
>> +#endif
>> +" iort            (1 test):",
>> +"  IORT IO Remapping Table test.",
>> +" lpit            (1 test):",
>> +"  LPIT Low Power Idle Table test.",
>> +" madt            (5 tests):",
>> +"  MADT checksum test.",
>> +"  MADT revision test.",
>> +"  MADT architecture minimum revision test.",
>> +"  MADT flags field reserved bits test.",
>> +"  MADT subtable tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" mcfg            (2 tests):",
>> +"  Validate MCFG table.",
>> +"  Validate MCFG PCI config space.",
>> +#endif
>> +" mchi            (1 test):",
>> +"  MCHI Management Controller Host Interface Table test.",
>> +" method          (191 tests):",
>> +"  Test Method Names.",
>> +"  Test _AEI.",
>> +"  Test _EVT (Event Method).",
>> +"  Test _DLM (Device Lock Mutex).",
>> +"  Test _PIC (Inform AML of Interrupt Model).",
>> +"  Test _CID (Compatible ID).",
>> +"  Test _DDN (DOS Device Name).",
>> +"  Test _HID (Hardware ID).",
>> +"  Test _HRV (Hardware Revision Number).",
>> +"  Test _MLS (Multiple Language String).",
>> +"  Test _PLD (Physical Device Location).",
>> +"  Test _SUB (Subsystem ID).",
>> +"  Test _SUN (Slot User Number).",
>> +"  Test _STR (String).",
>> +"  Test _UID (Unique ID).",
>> +"  Test _CDM (Clock Domain).",
>> +"  Test _CRS (Current Resource Settings).",
>> +"  Test _DSD (Device Specific Data).",
>> +"  Test _DIS (Disable).",
>> +"  Test _DMA (Direct Memory Access).",
>> +"  Test _FIX (Fixed Register Resource Provider).",
>> +"  Test _GSB (Global System Interrupt Base).",
>> +"  Test _HPP (Hot Plug Parameters).",
>> +"  Test _PRS (Possible Resource Settings).",
>> +"  Test _PRT (PCI Routing Table).",
>> +"  Test _PXM (Proximity).",
>> +"  Test _CCA (Cache Coherency Attribute).",
>> +"  Test _EDL (Eject Device List).",
>> +"  Test _EJD (Ejection Dependent Device).",
>> +"  Test _EJ0 (Eject).",
>> +"  Test _EJ1 (Eject).",
>> +"  Test _EJ2 (Eject).",
>> +"  Test _EJ3 (Eject).",
>> +"  Test _EJ4 (Eject).",
>> +"  Test _LCK (Lock).",
>> +"  Test _RMV (Remove).",
>> +"  Test _STA (Status).",
>> +"  Test _DEP (Operational Region Dependencies).",
>> +"  Test _BDN (BIOS Dock Name).",
>> +"  Test _BBN (Base Bus Number).",
>> +"  Test _DCK (Dock).",
>> +"  Test _INI (Initialize).",
>> +"  Test _GLK (Global Lock).",
>> +"  Test _SEG (Segment).",
>> +"  Test _OFF (Set resource off).",
>> +"  Test _ON_ (Set resource on).",
>> +"  Test _DSW (Device Sleep Wake).",
>> +"  Test _IRC (In Rush Current).",
>> +"  Test _PRE (Power Resources for Enumeration).",
>> +"  Test _PR0 (Power Resources for D0).",
>> +"  Test _PR1 (Power Resources for D1).",
>> +"  Test _PR2 (Power Resources for D2).",
>> +"  Test _PR3 (Power Resources for D3).",
>> +"  Test _PRW (Power Resources for Wake).",
>> +"  Test _PS0 (Power State 0).",
>> +"  Test _PS1 (Power State 1).",
>> +"  Test _PS2 (Power State 2).",
>> +"  Test _PS3 (Power State 3).",
>> +"  Test _PSC (Power State Current).",
>> +"  Test _PSE (Power State for Enumeration).",
>> +"  Test _PSW (Power State Wake).",
>> +"  Test _S1D (S1 Device State).",
>> +"  Test _S2D (S2 Device State).",
>> +"  Test _S3D (S3 Device State).",
>> +"  Test _S4D (S4 Device State).",
>> +"  Test _S0W (S0 Device Wake State).",
>> +"  Test _S1W (S1 Device Wake State).",
>> +"  Test _S2W (S2 Device Wake State).",
>> +"  Test _S3W (S3 Device Wake State).",
>> +"  Test _S4W (S4 Device Wake State).",
>> +"  Test _RST (Device Reset).",
>> +"  Test _PRR (Power Resource for Reset).",
>> +"  Test _S0_ (S0 System State).",
>> +"  Test _S1_ (S1 System State).",
>> +"  Test _S2_ (S2 System State).",
>> +"  Test _S3_ (S3 System State).",
>> +"  Test _S4_ (S4 System State).",
>> +"  Test _S5_ (S5 System State).",
>> +"  Test _SWS (System Wake Source).",
>> +"  Test _PSS (Performance Supported States).",
>> +"  Test _CPC (Continuous Performance Control).",
>> +"  Test _CSD (C State Dependencies).",
>> +"  Test _CST (C States).",
>> +"  Test _PCT (Performance Control).",
>> +"  Test _PDL (P-State Depth Limit).",
>> +"  Test _PPC (Performance Present Capabilities).",
>> +"  Test _PPE (Polling for Platform Error).",
>> +"  Test _PSD (Power State Dependencies).",
>> +"  Test _PTC (Processor Throttling Control).",
>> +"  Test _TDL (T-State Depth Limit).",
>> +"  Test _TPC (Throttling Present Capabilities).",
>> +"  Test _TSD (Throttling State Dependencies).",
>> +"  Test _TSS (Throttling Supported States).",
>> +"  Test _LPI (Low Power Idle States).",
>> +"  Test _RDI (Resource Dependencies for Idle).",
>> +"  Test _PUR (Processor Utilization Request).",
>> +"  Test _MSG (Message).",
>> +"  Test _SST (System Status).",
>> +"  Test _ALC (Ambient Light Colour Chromaticity).",
>> +"  Test _ALI (Ambient Light Illuminance).",
>> +"  Test _ALT (Ambient Light Temperature).",
>> +"  Test _ALP (Ambient Light Polling).",
>> +"  Test _ALR (Ambient Light Response).",
>> +"  Test _LID (Lid Status).",
>> +"  Test _GTF (Get Task File).",
>> +"  Test _GTM (Get Timing Mode).",
>> +"  Test _MBM (Memory Bandwidth Monitoring Data).",
>> +"  Test _UPC (USB Port Capabilities).",
>> +"  Test _UPD (User Presence Detect).",
>> +"  Test _UPP (User Presence Polling).",
>> +"  Test _GCP (Get Capabilities).",
>> +"  Test _GRT (Get Real Time).",
>> +"  Test _GWS (Get Wake Status).",
>> +"  Test _CWS (Clear Wake Status).",
>> +"  Test _STP (Set Expired Timer Wake Policy).",
>> +"  Test _STV (Set Timer Value).",
>> +"  Test _TIP (Expired Timer Wake Policy).",
>> +"  Test _TIV (Timer Values).",
>> +"  Test _SBS (Smart Battery Subsystem).",
>> +"  Test _BCT (Battery Charge Time).",
>> +"  Test _BIF (Battery Information).",
>> +"  Test _BIX (Battery Information Extended).",
>> +"  Test _BMA (Battery Measurement Averaging).",
>> +"  Test _BMC (Battery Maintenance Control).",
>> +"  Test _BMD (Battery Maintenance Data).",
>> +"  Test _BMS (Battery Measurement Sampling Time).",
>> +"  Test _BST (Battery Status).",
>> +"  Test _BTP (Battery Trip Point).",
>> +"  Test _BTH (Battery Throttle Limit).",
>> +"  Test _BTM (Battery Time).",
>> +"  Test _PCL (Power Consumer List).",
>> +"  Test _PIF (Power Source Information).",
>> +"  Test _PRL (Power Source Redundancy List).",
>> +"  Test _PSR (Power Source).",
>> +"  Test _GAI (Get Averaging Level).",
>> +"  Test _GHL (Get Harware Limit).",
>> +"  Test _PMC (Power Meter Capabilities).",
>> +"  Test _PMD (Power Meter Devices).",
>> +"  Test _PMM (Power Meter Measurement).",
>> +"  Test _WPC (Wireless Power Calibration).",
>> +"  Test _WPP (Wireless Power Polling).",
>> +"  Test _FIF (Fan Information).",
>> +"  Test _FPS (Fan Performance States).",
>> +"  Test _FSL (Fan Set Level).",
>> +"  Test _FST (Fan Status).",
>> +"  Test _ACx (Active Cooling).",
>> +"  Test _ART (Active Cooling Relationship Table).",
>> +"  Test _CRT (Critical Trip Point).",
>> +"  Test _CR3 (Warm/Standby Temperature).",
>> +"  Test _DTI (Device Temperature Indication).",
>> +"  Test _HOT (Hot Temperature).",
>> +"  Test _MTL (Minimum Throttle Limit).",
>> +"  Test _NTT (Notification Temp Threshold).",
>> +"  Test _PSL (Passive List).",
>> +"  Test _PSV (Passive Temp).",
>> +"  Test _RTV (Relative Temp Values).",
>> +"  Test _SCP (Set Cooling Policy).",
>> +"  Test _TC1 (Thermal Constant 1).",
>> +"  Test _TC2 (Thermal Constant 2).",
>> +"  Test _TFP (Thermal fast Sampling Period).",
>> +"  Test _TMP (Thermal Zone Current Temp).",
>> +"  Test _TPT (Trip Point Temperature).",
>> +"  Test _TRT (Thermal Relationship Table).",
>> +"  Test _TSN (Thermal Sensor Device).",
>> +"  Test _TSP (Thermal Sampling Period).",
>> +"  Test _TST (Temperature Sensor Threshold).",
>> +"  Test _TZD (Thermal Zone Devices).",
>> +"  Test _TZM (Thermal Zone member).",
>> +"  Test _TZP (Thermal Zone Polling).",
>> +"  Test _GPE (General Purpose Events).",
>> +"  Test _EC_ (EC Offset Query).",
>> +"  Test _PTS (Prepare to Sleep).",
>> +"  Test _TTS (Transition to State).",
>> +"  Test _WAK (System Wake).",
>> +"  Test _ADR (Return Unique ID for Device).",
>> +"  Test _BCL (Query List of Brightness Control Levels Supported).",
>> +"  Test _BCM (Set Brightness Level).",
>> +"  Test _BQC (Brightness Query Current Level).",
>> +"  Test _DCS (Return the Status of Output Device).",
>> +"  Test _DDC (Return the EDID for this Device).",
>> +"  Test _DSS (Device Set State).",
>> +"  Test _DGS (Query Graphics State).",
>> +"  Test _DOD (Enumerate All Devices Attached to Display Adapter).",
>> +"  Test _DOS (Enable/Disable Output Switching).",
>> +"  Test _GPD (Get POST Device).",
>> +"  Test _ROM (Get ROM Data).",
>> +"  Test _SPD (Set POST Device).",
>> +"  Test _VPO (Video POST Options).",
>> +"  Test _CBA (Configuration Base Address).",
>> +"  Test _IFT (IPMI Interface Type).",
>> +"  Test _SRV (IPMI Interface Revision).",
>> +" msct            (1 test):",
>> +"  MSCT Maximum System Characteristics Table test.",
>> +" msdm            (1 test):",
>> +"  MSDM Microsoft Data Management Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" pcc             (1 test):",
>> +"  Processor Clocking Control (PCC) test.",
>> +#endif
>> +" rsdp            (1 test):",
>> +"  RSDP Root System Description Pointer test.",
>> +" rsdt            (1 test):",
>> +"  RSDT Root System Description Table test.",
>> +" sbst            (1 test):",
>> +"  SBST Smart Battery Specificiation Table test.",
>> +" slic            (1 test):",
>> +"  SLIC Software Licensing Description Table test.",
>> +" slit            (1 test):",
>> +"  SLIT System Locality Distance Information test.",
>> +" spcr            (1 test):",
>> +"  SPCR Serial Port Console Redirection Table test.",
>> +" spmi            (1 test):",
>> +"  SPMI Service Processor Management Interface Description Table test.",
>> +" srat            (1 test):",
>> +"  SRAT System Resource Affinity Table test.",
>> +" stao            (1 test):",
>> +"  STAO Status Override Table test.",
>> +" tcpa            (1 test):",
>> +"  Validate TCPA table.",
>> +" tpm2            (1 test):",
>> +"  Validate TPM2 table.",
>> +" uefi            (1 test):",
>> +"  UEFI Data Table test.",
>> +" waet            (1 test):",
>> +"  Windows ACPI Emulated Devices Table test.",
>> +" wdat            (1 test):",
>> +"  WDAT Microsoft Hardware Watchdog Action Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" wmi             (1 test):",
>> +"  Windows Management Instrumentation test.",
>> +#endif
>> +" xenv            (1 test):",
>> +"  Validate XENV table.",
>> +" xsdt            (1 test):",
>> +"  XSDT Extended System Description Table test.",
>> +"",
>> +"Batch tests:",
>> +" acpiinfo        (3 tests):",
>> +"  Determine Kernel ACPI version.",
>> +"  Determine machine's ACPI version.",
>> +"  Determine AML compiler.",
>> +" acpitables      (1 test):",
>> +"  Test ACPI headers.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" apicedge        (1 test):",
>> +"  Legacy and PCI Interrupt Edge/Level trigger tests.",
>> +" apicinstance    (1 test):",
>> +"  Test for single instance of APIC/MADT table.",
>> +#endif
>> +" asf             (1 test):",
>> +"  ASF! Alert Standard Format Table test.",
>> +" aspm            (2 tests):",
>> +"  PCIe ASPM ACPI test.",
>> +"  PCIe ASPM registers test.",
>> +" aspt            (1 test):",
>> +"  ASPT Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" autobrightness  (2 tests):",
>> +"  Test for maximum and actual brightness.",
>> +"  Change actual brightness.",
>> +#endif
>> +" bert            (1 test):",
>> +"  BERT Boot Error Record Table test.",
>> +" bgrt            (1 test):",
>> +"  BGRT Boot Graphics Resource Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" bios32          (1 test):",
>> +"  BIOS32 Service Directory test.",
>> +" bios_info       (1 test):",
>> +"  Gather BIOS DMI information",
>> +#endif
>> +" bmc_info        (1 test):",
>> +"  BMC Info",
>> +" boot            (1 test):",
>> +"  BOOT Table test.",
>> +" checksum        (1 test):",
>> +"  ACPI table checksum test.",
>> +" cpep            (1 test):",
>> +"  CPEP Corrected Platform Error Polling Table test.",
>> +" cpufreq         (7 tests):",
>> +"  CPU frequency table consistency",
>> +"  CPU frequency table duplicates",
>> +"  CPU frequency firmware limits",
>> +"  CPU frequency claimed maximum",
>> +"  CPU frequency SW_ANY control",
>> +"  CPU frequency SW_ALL control",
>> +"  CPU frequency performance tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" crs             (1 test):",
>> +"  Test PCI host bridge configuration using _CRS.",
>> +" csm             (1 test):",
>> +"  UEFI Compatibility Support Module test.",
>> +#endif
>> +" csrt            (1 test):",
>> +"  CSRT Core System Resource Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" cstates         (1 test):",
>> +"  Test all CPUs C-states.",
>> +#endif
>> +" dbg2            (1 test):",
>> +"  DBG2 (Debug Port Table 2) test.",
>> +" dbgp            (1 test):",
>> +"  DBGP (Debug Port) Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" dmar            (1 test):",
>> +"  DMA Remapping test.",
>> +" dmicheck        (3 tests):",
>> +"  Find and test SMBIOS Table Entry Points.",
>> +"  Test DMI/SMBIOS tables for errors.",
>> +"  Test DMI/SMBIOS3 tables for errors.",
>> +#endif
>> +#ifdef HAVE_LIBFDT
>> +" dt_base         (3 tests):",
>> +"  Check device tree presence",
>> +"  Check device tree baseline validity",
>> +"  Check device tree warnings",
>> +" dt_sysinfo      (3 tests):",
>> +"  Check model property",
>> +"  Check system-id property",
>> +"  Check OpenPOWER Reference compatible",
>> +#endif
>> +#ifdef FWTS_ARCH_INTEL
>> +" ebda            (1 test):",
>> +"  Test EBDA is reserved in E820 table.",
>> +#endif
>> +" ecdt            (1 test):",
>> +"  ECDT Embedded Controller Boot Resources Table test.",
>> +" einj            (1 test):",
>> +"  EINJ Error Injection Table test.",
>> +" erst            (1 test):",
>> +"  ERST Error Record Serialization Table test.",
>> +" facs            (1 test):",
>> +"  FACS Firmware ACPI Control Structure test.",
>> +" fadt            (6 tests):",
>> +"  ACPI FADT Description Table flag info.",
>> +"  FADT checksum test.",
>> +"  FADT revision test.",
>> +"  ACPI FADT Description Table tests.",
>> +"  Test FADT SCI_EN bit is enabled.",
>> +"  Test FADT reset register.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" fan             (2 tests):",
>> +"  Test fan status.",
>> +"  Load system, check CPU fan status.",
>> +#endif
>> +" fpdt            (1 test):",
>> +"  FPDT Firmware Performance Data Table test.",
>> +" gtdt            (1 test):",
>> +"  GTDT Generic Timer Description Table test.",
>> +" hda_audio       (1 test):",
>> +"  HDA Audio Pin Configuration test.",
>> +" hest            (1 test):",
>> +"  HEST Hardware Error Source Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" hpet            (4 tests):",
>> +"  Test HPET base in kernel log.",
>> +"  Test HPET base in HPET table.",
>> +"  Test HPET base in DSDT and/or SSDT.",
>> +"  Test HPET configuration.",
>> +#endif
>> +" iort            (1 test):",
>> +"  IORT IO Remapping Table test.",
>> +" klog            (1 test):",
>> +"  Kernel log error check.",
>> +" lpit            (1 test):",
>> +"  LPIT Low Power Idle Table test.",
>> +" madt            (5 tests):",
>> +"  MADT checksum test.",
>> +"  MADT revision test.",
>> +"  MADT architecture minimum revision test.",
>> +"  MADT flags field reserved bits test.",
>> +"  MADT subtable tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" maxfreq         (1 test):",
>> +"  Maximum CPU frequency test.",
>> +#endif
>> +" maxreadreq      (1 test):",
>> +"  Test firmware settings MaxReadReq for PCI Express devices.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" mcfg            (2 tests):",
>> +"  Validate MCFG table.",
>> +"  Validate MCFG PCI config space.",
>> +#endif
>> +" mchi            (1 test):",
>> +"  MCHI Management Controller Host Interface Table test.",
>> +" method          (191 tests):",
>> +"  Test Method Names.",
>> +"  Test _AEI.",
>> +"  Test _EVT (Event Method).",
>> +"  Test _DLM (Device Lock Mutex).",
>> +"  Test _PIC (Inform AML of Interrupt Model).",
>> +"  Test _CID (Compatible ID).",
>> +"  Test _DDN (DOS Device Name).",
>> +"  Test _HID (Hardware ID).",
>> +"  Test _HRV (Hardware Revision Number).",
>> +"  Test _MLS (Multiple Language String).",
>> +"  Test _PLD (Physical Device Location).",
>> +"  Test _SUB (Subsystem ID).",
>> +"  Test _SUN (Slot User Number).",
>> +"  Test _STR (String).",
>> +"  Test _UID (Unique ID).",
>> +"  Test _CDM (Clock Domain).",
>> +"  Test _CRS (Current Resource Settings).",
>> +"  Test _DSD (Device Specific Data).",
>> +"  Test _DIS (Disable).",
>> +"  Test _DMA (Direct Memory Access).",
>> +"  Test _FIX (Fixed Register Resource Provider).",
>> +"  Test _GSB (Global System Interrupt Base).",
>> +"  Test _HPP (Hot Plug Parameters).",
>> +"  Test _PRS (Possible Resource Settings).",
>> +"  Test _PRT (PCI Routing Table).",
>> +"  Test _PXM (Proximity).",
>> +"  Test _CCA (Cache Coherency Attribute).",
>> +"  Test _EDL (Eject Device List).",
>> +"  Test _EJD (Ejection Dependent Device).",
>> +"  Test _EJ0 (Eject).",
>> +"  Test _EJ1 (Eject).",
>> +"  Test _EJ2 (Eject).",
>> +"  Test _EJ3 (Eject).",
>> +"  Test _EJ4 (Eject).",
>> +"  Test _LCK (Lock).",
>> +"  Test _RMV (Remove).",
>> +"  Test _STA (Status).",
>> +"  Test _DEP (Operational Region Dependencies).",
>> +"  Test _BDN (BIOS Dock Name).",
>> +"  Test _BBN (Base Bus Number).",
>> +"  Test _DCK (Dock).",
>> +"  Test _INI (Initialize).",
>> +"  Test _GLK (Global Lock).",
>> +"  Test _SEG (Segment).",
>> +"  Test _OFF (Set resource off).",
>> +"  Test _ON_ (Set resource on).",
>> +"  Test _DSW (Device Sleep Wake).",
>> +"  Test _IRC (In Rush Current).",
>> +"  Test _PRE (Power Resources for Enumeration).",
>> +"  Test _PR0 (Power Resources for D0).",
>> +"  Test _PR1 (Power Resources for D1).",
>> +"  Test _PR2 (Power Resources for D2).",
>> +"  Test _PR3 (Power Resources for D3).",
>> +"  Test _PRW (Power Resources for Wake).",
>> +"  Test _PS0 (Power State 0).",
>> +"  Test _PS1 (Power State 1).",
>> +"  Test _PS2 (Power State 2).",
>> +"  Test _PS3 (Power State 3).",
>> +"  Test _PSC (Power State Current).",
>> +"  Test _PSE (Power State for Enumeration).",
>> +"  Test _PSW (Power State Wake).",
>> +"  Test _S1D (S1 Device State).",
>> +"  Test _S2D (S2 Device State).",
>> +"  Test _S3D (S3 Device State).",
>> +"  Test _S4D (S4 Device State).",
>> +"  Test _S0W (S0 Device Wake State).",
>> +"  Test _S1W (S1 Device Wake State).",
>> +"  Test _S2W (S2 Device Wake State).",
>> +"  Test _S3W (S3 Device Wake State).",
>> +"  Test _S4W (S4 Device Wake State).",
>> +"  Test _RST (Device Reset).",
>> +"  Test _PRR (Power Resource for Reset).",
>> +"  Test _S0_ (S0 System State).",
>> +"  Test _S1_ (S1 System State).",
>> +"  Test _S2_ (S2 System State).",
>> +"  Test _S3_ (S3 System State).",
>> +"  Test _S4_ (S4 System State).",
>> +"  Test _S5_ (S5 System State).",
>> +"  Test _SWS (System Wake Source).",
>> +"  Test _PSS (Performance Supported States).",
>> +"  Test _CPC (Continuous Performance Control).",
>> +"  Test _CSD (C State Dependencies).",
>> +"  Test _CST (C States).",
>> +"  Test _PCT (Performance Control).",
>> +"  Test _PDL (P-State Depth Limit).",
>> +"  Test _PPC (Performance Present Capabilities).",
>> +"  Test _PPE (Polling for Platform Error).",
>> +"  Test _PSD (Power State Dependencies).",
>> +"  Test _PTC (Processor Throttling Control).",
>> +"  Test _TDL (T-State Depth Limit).",
>> +"  Test _TPC (Throttling Present Capabilities).",
>> +"  Test _TSD (Throttling State Dependencies).",
>> +"  Test _TSS (Throttling Supported States).",
>> +"  Test _LPI (Low Power Idle States).",
>> +"  Test _RDI (Resource Dependencies for Idle).",
>> +"  Test _PUR (Processor Utilization Request).",
>> +"  Test _MSG (Message).",
>> +"  Test _SST (System Status).",
>> +"  Test _ALC (Ambient Light Colour Chromaticity).",
>> +"  Test _ALI (Ambient Light Illuminance).",
>> +"  Test _ALT (Ambient Light Temperature).",
>> +"  Test _ALP (Ambient Light Polling).",
>> +"  Test _ALR (Ambient Light Response).",
>> +"  Test _LID (Lid Status).",
>> +"  Test _GTF (Get Task File).",
>> +"  Test _GTM (Get Timing Mode).",
>> +"  Test _MBM (Memory Bandwidth Monitoring Data).",
>> +"  Test _UPC (USB Port Capabilities).",
>> +"  Test _UPD (User Presence Detect).",
>> +"  Test _UPP (User Presence Polling).",
>> +"  Test _GCP (Get Capabilities).",
>> +"  Test _GRT (Get Real Time).",
>> +"  Test _GWS (Get Wake Status).",
>> +"  Test _CWS (Clear Wake Status).",
>> +"  Test _STP (Set Expired Timer Wake Policy).",
>> +"  Test _STV (Set Timer Value).",
>> +"  Test _TIP (Expired Timer Wake Policy).",
>> +"  Test _TIV (Timer Values).",
>> +"  Test _SBS (Smart Battery Subsystem).",
>> +"  Test _BCT (Battery Charge Time).",
>> +"  Test _BIF (Battery Information).",
>> +"  Test _BIX (Battery Information Extended).",
>> +"  Test _BMA (Battery Measurement Averaging).",
>> +"  Test _BMC (Battery Maintenance Control).",
>> +"  Test _BMD (Battery Maintenance Data).",
>> +"  Test _BMS (Battery Measurement Sampling Time).",
>> +"  Test _BST (Battery Status).",
>> +"  Test _BTP (Battery Trip Point).",
>> +"  Test _BTH (Battery Throttle Limit).",
>> +"  Test _BTM (Battery Time).",
>> +"  Test _PCL (Power Consumer List).",
>> +"  Test _PIF (Power Source Information).",
>> +"  Test _PRL (Power Source Redundancy List).",
>> +"  Test _PSR (Power Source).",
>> +"  Test _GAI (Get Averaging Level).",
>> +"  Test _GHL (Get Harware Limit).",
>> +"  Test _PMC (Power Meter Capabilities).",
>> +"  Test _PMD (Power Meter Devices).",
>> +"  Test _PMM (Power Meter Measurement).",
>> +"  Test _WPC (Wireless Power Calibration).",
>> +"  Test _WPP (Wireless Power Polling).",
>> +"  Test _FIF (Fan Information).",
>> +"  Test _FPS (Fan Performance States).",
>> +"  Test _FSL (Fan Set Level).",
>> +"  Test _FST (Fan Status).",
>> +"  Test _ACx (Active Cooling).",
>> +"  Test _ART (Active Cooling Relationship Table).",
>> +"  Test _CRT (Critical Trip Point).",
>> +"  Test _CR3 (Warm/Standby Temperature).",
>> +"  Test _DTI (Device Temperature Indication).",
>> +"  Test _HOT (Hot Temperature).",
>> +"  Test _MTL (Minimum Throttle Limit).",
>> +"  Test _NTT (Notification Temp Threshold).",
>> +"  Test _PSL (Passive List).",
>> +"  Test _PSV (Passive Temp).",
>> +"  Test _RTV (Relative Temp Values).",
>> +"  Test _SCP (Set Cooling Policy).",
>> +"  Test _TC1 (Thermal Constant 1).",
>> +"  Test _TC2 (Thermal Constant 2).",
>> +"  Test _TFP (Thermal fast Sampling Period).",
>> +"  Test _TMP (Thermal Zone Current Temp).",
>> +"  Test _TPT (Trip Point Temperature).",
>> +"  Test _TRT (Thermal Relationship Table).",
>> +"  Test _TSN (Thermal Sensor Device).",
>> +"  Test _TSP (Thermal Sampling Period).",
>> +"  Test _TST (Temperature Sensor Threshold).",
>> +"  Test _TZD (Thermal Zone Devices).",
>> +"  Test _TZM (Thermal Zone member).",
>> +"  Test _TZP (Thermal Zone Polling).",
>> +"  Test _GPE (General Purpose Events).",
>> +"  Test _EC_ (EC Offset Query).",
>> +"  Test _PTS (Prepare to Sleep).",
>> +"  Test _TTS (Transition to State).",
>> +"  Test _WAK (System Wake).",
>> +"  Test _ADR (Return Unique ID for Device).",
>> +"  Test _BCL (Query List of Brightness Control Levels Supported).",
>> +"  Test _BCM (Set Brightness Level).",
>> +"  Test _BQC (Brightness Query Current Level).",
>> +"  Test _DCS (Return the Status of Output Device).",
>> +"  Test _DDC (Return the EDID for this Device).",
>> +"  Test _DSS (Device Set State).",
>> +"  Test _DGS (Query Graphics State).",
>> +"  Test _DOD (Enumerate All Devices Attached to Display Adapter).",
>> +"  Test _DOS (Enable/Disable Output Switching).",
>> +"  Test _GPD (Get POST Device).",
>> +"  Test _ROM (Get ROM Data).",
>> +"  Test _SPD (Set POST Device).",
>> +"  Test _VPO (Video POST Options).",
>> +"  Test _CBA (Configuration Base Address).",
>> +"  Test _IFT (IPMI Interface Type).",
>> +"  Test _SRV (IPMI Interface Revision).",
>> +#ifdef FWTS_ARCH_INTEL
>> +" microcode       (1 test):",
>> +"  Test for most recent microcode being loaded.",
>> +" mpcheck         (9 tests):",
>> +"  Test MP header.",
>> +"  Test MP CPU entries.",
>> +"  Test MP Bus entries.",
>> +"  Test MP IO APIC entries.",
>> +"  Test MP IO Interrupt entries.",
>> +"  Test MP Local Interrupt entries.",
>> +"  Test MP System Address entries.",
>> +"  Test MP Bus Hierarchy entries.",
>> +"  Test MP Compatible Bus Address Space entries.",
>> +#endif
>> +" msct            (1 test):",
>> +"  MSCT Maximum System Characteristics Table test.",
>> +" msdm            (1 test):",
>> +"  MSDM Microsoft Data Management Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" msr             (5 tests):",
>> +"  Test CPU generic MSRs.",
>> +"  Test CPU specific model MSRs.",
>> +"  Test all P State Ratios.",
>> +"  Test C1 and C3 autodemotion.",
>> +"  Test SMRR MSR registers.",
>> +" mtrr            (3 tests):",
>> +"  Validate the kernel MTRR IOMEM setup.",
>> +"  Validate the MTRR setup across all processors.",
>> +"  Test for AMD MtrrFixDramModEn being cleared by the BIOS.",
>> +" nx              (3 tests):",
>> +"  Test CPU NX capability.",
>> +"  Test all CPUs have same BIOS set NX flag.",
>> +"  Test all CPUs have same msr setting in MSR 0x1a0.",
>> +#endif
>> +" olog            (1 test):",
>> +"  OLOG scan and analysis checks results.",
>> +" oops            (1 test):",
>> +"  Kernel log oops check.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" osilinux        (1 test):",
>> +"  Disassemble DSDT to check for _OSI(\"Linux\").",
>> +" pcc             (1 test):",
>> +"  Processor Clocking Control (PCC) test.",
>> +" pciirq          (1 test):",
>> +"  PCI IRQ Routing Table test.",
>> +" pnp             (1 test):",
>> +"  PnP BIOS Support Installation structure test.",
>> +#endif
>> +" prd_info        (1 test):",
>> +"  OPAL Processor Recovery Diagnostics Info",
>> +" rsdp            (1 test):",
>> +"  RSDP Root System Description Pointer test.",
>> +" rsdt            (1 test):",
>> +"  RSDT Root System Description Table test.",
>> +" sbst            (1 test):",
>> +"  SBST Smart Battery Specificiation Table test.",
>> +" securebootcert  (1 test):",
>> +"  UEFI secure boot test.",
>> +" show_logs       (1 test):",
>> +"  Show Tests Log Files",
>> +" slic            (1 test):",
>> +"  SLIC Software Licensing Description Table test.",
>> +" slit            (1 test):",
>> +"  SLIT System Locality Distance Information test.",
>> +" spcr            (1 test):",
>> +"  SPCR Serial Port Console Redirection Table test.",
>> +" spmi            (1 test):",
>> +"  SPMI Service Processor Management Interface Description Table test.",
>> +" srat            (1 test):",
>> +"  SRAT System Resource Affinity Table test.",
>> +" stao            (1 test):",
>> +"  STAO Status Override Table test.",
>> +" syntaxcheck     (1 test):",
>> +"  Disassemble and reassemble DSDT and SSDTs.",
>> +" tcpa            (1 test):",
>> +"  Validate TCPA table.",
>> +" tpm2            (1 test):",
>> +"  Validate TPM2 table.",
>> +" uefi            (1 test):",
>> +"  UEFI Data Table test.",
>> +" uefibootpath    (1 test):",
>> +"  Test UEFI Boot Path Boot####.",
>> +" version         (4 tests):",
>> +"  Gather kernel signature.",
>> +"  Gather kernel system information.",
>> +"  Gather kernel boot command line.",
>> +"  Gather ACPI driver version.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" virt            (1 test):",
>> +"  CPU Virtualisation Configuration test.",
>> +#endif
>> +" waet            (1 test):",
>> +"  Windows ACPI Emulated Devices Table test.",
>> +" wakealarm       (5 tests):",
>> +"  Test existence of RTC with alarm interface.",
>> +"  Trigger wakealarm for 1 seconds in the future.",
>> +"  Test if wakealarm is fired.",
>> +"  Multiple wakealarm firing tests.",
>> +"  Reset wakealarm time.",
>> +" wdat            (1 test):",
>> +"  WDAT Microsoft Hardware Watchdog Action Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" wmi             (1 test):",
>> +"  Windows Management Instrumentation test.",
>> +#endif
>> +" xenv            (1 test):",
>> +"  Validate XENV table.",
>> +" xsdt            (1 test):",
>> +"  XSDT Extended System Description Table test.",
>> +"",
>> +#ifdef FWTS_ARCH_INTEL
>> +"Interactive tests:",
>> +" ac_adapter      (3 tests):",
>> +"  Test ACPI ac_adapter state.",
>> +"  Test ac_adapter initial on-line state.",
>> +"  Test ac_adapter state changes.",
>> +" battery         (1 test):",
>> +"  Battery test.",
>> +" brightness      (3 tests):",
>> +"  Observe all brightness changes.",
>> +"  Observe min, max brightness changes.",
>> +"  Test brightness hotkeys.",
>> +" hotkey          (1 test):",
>> +"  Hotkey keypress checks.",
>> +" lid             (3 tests):",
>> +"  Test LID buttons report open correctly.",
>> +"  Test LID buttons on a single open/close.",
>> +"  Test LID buttons on multiple open/close events.",
>> +" power_button    (1 test):",
>> +"  Test press of power button and ACPI event.",
>> +"",
>> +"Power States tests:",
>> +" s3              (1 test):",
>> +"  S3 suspend/resume test.",
>> +" s3power         (1 test):",
>> +"  S3 power loss during suspend test.",
>> +" s4              (1 test):",
>> +"  S4 hibernate/resume test.",
>> +"",
>> +#endif
>> +"Utilities:",
>> +" acpidump        (1 test):",
>> +"  Dump ACPI tables.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" cmosdump        (1 test):",
>> +"  Dump CMOS Memory.",
>> +#endif
>> +" crsdump         (1 test):",
>> +"  Dump ACPI _CRS (Current Resource Settings).",
>> +#ifdef FWTS_ARCH_INTEL
>> +" ebdadump        (1 test):",
>> +"  Dump EBDA region.",
>> +#endif
>> +" esrtdump        (1 test):",
>> +"  Dump ESRT Table.",
>> +" gpedump         (1 test):",
>> +"  Dump GPEs.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" memmapdump      (1 test):",
>> +"  Dump system memory map.",
>> +" mpdump          (1 test):",
>> +"  Dump Multi Processor Data.",
>> +#endif
>> +" plddump         (1 test):",
>> +"  Dump ACPI _PLD (Physical Device Location).",
>> +" prsdump         (1 test):",
>> +"  Dump ACPI _PRS (Possible Resource Settings).",
>> +#ifdef FWTS_ARCH_INTEL
>> +" romdump         (1 test):",
>> +"  Dump ROM data.",
>> +#endif
>> +" uefidump        (1 test):",
>> +"  Dump UEFI Variables.",
>> +" uefivarinfo     (1 test):",
>> +"  UEFI variable info query.",
>> +"",
>> +"Unsafe tests:",
>> +" uefirtauthvar   (12 tests):",
>> +"  Create authenticated variable test.",
>> +"  Authenticated variable test with the same authenticated variable.",
>> +"  Authenticated variable test with another valid authenticated"
>> + " variable.",
>> +"  Append authenticated variable test.",
>> +"  Update authenticated variable test.",
>> +"  Authenticated variable test with old authenticated variable.",
>> +"  Delete authenticated variable test.",
>> +"  Authenticated variable test with invalid modified data.",
>> +"  Authenticated variable test with invalid modified timestamp.",
>> +"  Authenticated variable test with different guid.",
>> +"  Authenticated variable test with invalid attributes.",
>> +"  Set and delete authenticated variable created by different"
>> + " key test.",
>> +" uefirtmisc      (3 tests):",
>> +"  Test for UEFI miscellaneous runtime service interfaces.",
>> +"  Stress test for UEFI miscellaneous runtime service interfaces.",
>> +"  Test GetNextHighMonotonicCount with invalid NULL parameter.",
>> +" uefirttime      (35 tests):",
>> +"  Test UEFI RT service get time interface.",
>> +"  Test UEFI RT service get time interface, NULL time parameter.",
>> +"  Test UEFI RT service get time interface, NULL time and NULL"
>> + " capabilties parameters.",
>> +"  Test UEFI RT service set time interface.",
>> +"  Test UEFI RT service set time interface, invalid year 1899.",
>> +"  Test UEFI RT service set time interface, invalid year 10000.",
>> +"  Test UEFI RT service set time interface, invalid month 0.",
>> +"  Test UEFI RT service set time interface, invalid month 13.",
>> +"  Test UEFI RT service set time interface, invalid day 0.",
>> +"  Test UEFI RT service set time interface, invalid day 32.",
>> +"  Test UEFI RT service set time interface, invalid hour 24.",
>> +"  Test UEFI RT service set time interface, invalid minute 60.",
>> +"  Test UEFI RT service set time interface, invalid second 60.",
>> +"  Test UEFI RT service set time interface, invalid nanosecond"
>> + " 1000000000.",
>> +"  Test UEFI RT service set time interface, invalid timezone -1441.",
>> +"  Test UEFI RT service set time interface, invalid timezone 1441.",
>> +"  Test UEFI RT service get wakeup time interface.",
>> +"  Test UEFI RT service get wakeup time interface, NULL enabled"
>> + " parameter.",
>> +"  Test UEFI RT service get wakeup time interface, NULL pending"
>> + " parameter.",
>> +"  Test UEFI RT service get wakeup time interface, NULL time"
>> + " parameter.",
>> +"  Test UEFI RT service get wakeup time interface, NULL enabled,"
>> + " pending and time parameters.",
>> +"  Test UEFI RT service set wakeup time interface.",
>> +"  Test UEFI RT service set wakeup time interface, NULL time"
>> + " parameter.",
>> +"  Test UEFI RT service set wakeup time interface, invalid year 1899.",
>> +"  Test UEFI RT service set wakeup time interface, invalid year 10000.",
>> +"  Test UEFI RT service set wakeup time interface, invalid month 0.",
>> +"  Test UEFI RT service set wakeup time interface, invalid month 13.",
>> +"  Test UEFI RT service set wakeup time interface, invalid day 0.",
>> +"  Test UEFI RT service set wakeup time interface, invalid day 32.",
>> +"  Test UEFI RT service set wakeup time interface, invalid hour 24.",
>> +"  Test UEFI RT service set wakeup time interface, invalid minute 60.",
>> +"  Test UEFI RT service set wakeup time interface, invalid second 60.",
>> +"  Test UEFI RT service set wakeup time interface, invalid"
>> + " nanosecond 1000000000.",
>> +"  Test UEFI RT service set wakeup time interface, invalid"
>> + " timezone -1441.",
>> +"  Test UEFI RT service set wakeup time interface, invalid"
>> + " timezone 1441.",
>> +" uefirtvariable  (8 tests):",
>> +"  Test UEFI RT service get variable interface.",
>> +"  Test UEFI RT service get next variable name interface.",
>> +"  Test UEFI RT service set variable interface.",
>> +"  Test UEFI RT service query variable info interface.",
>> +"  Test UEFI RT service variable interface stress test.",
>> +"  Test UEFI RT service set variable interface stress test.",
>> +"  Test UEFI RT service query variable info interface stress test.",
>> +"  Test UEFI RT service get variable interface, invalid parameters.",
>> +"",
>> +"UEFI tests:",
>> +#ifdef FWTS_ARCH_INTEL
>> +" csm             (1 test):",
>> +"  UEFI Compatibility Support Module test.",
>> +#endif
>> +" esrt            (1 test):",
>> +"  Sanity check UEFI ESRT Table.",
>> +" securebootcert  (1 test):",
>> +"  UEFI secure boot test.",
>> +" uefibootpath    (1 test):",
>> +"  Test UEFI Boot Path Boot####.",
>> +" uefirtauthvar   (12 tests):",
>> +"  Create authenticated variable test.",
>> +"  Authenticated variable test with the same authenticated variable.",
>> +"  Authenticated variable test with another valid authenticated"
>> + " variable.",
>> +"  Append authenticated variable test.",
>> +"  Update authenticated variable test.",
>> +"  Authenticated variable test with old authenticated variable.",
>> +"  Delete authenticated variable test.",
>> +"  Authenticated variable test with invalid modified data.",
>> +"  Authenticated variable test with invalid modified timestamp.",
>> +"  Authenticated variable test with different guid.",
>> +"  Authenticated variable test with invalid attributes.",
>> +"  Set and delete authenticated variable created by different"
>> + " key test.",
>> +" uefirtmisc      (3 tests):",
>> +"  Test for UEFI miscellaneous runtime service interfaces.",
>> +"  Stress test for UEFI miscellaneous runtime service interfaces.",
>> +"  Test GetNextHighMonotonicCount with invalid NULL parameter.",
>> +" uefirttime      (35 tests):",
>> +"  Test UEFI RT service get time interface.",
>> +"  Test UEFI RT service get time interface, NULL time parameter.",
>> +"  Test UEFI RT service get time interface, NULL time and NULL"
>> + " capabilties parameters.",
>> +"  Test UEFI RT service set time interface.",
>> +"  Test UEFI RT service set time interface, invalid year 1899.",
>> +"  Test UEFI RT service set time interface, invalid year 10000.",
>> +"  Test UEFI RT service set time interface, invalid month 0.",
>> +"  Test UEFI RT service set time interface, invalid month 13.",
>> +"  Test UEFI RT service set time interface, invalid day 0.",
>> +"  Test UEFI RT service set time interface, invalid day 32.",
>> +"  Test UEFI RT service set time interface, invalid hour 24.",
>> +"  Test UEFI RT service set time interface, invalid minute 60.",
>> +"  Test UEFI RT service set time interface, invalid second 60.",
>> +"  Test UEFI RT service set time interface, invalid"
>> + " nanosecond 1000000000.",
>> +"  Test UEFI RT service set time interface, invalid timezone -1441.",
>> +"  Test UEFI RT service set time interface, invalid timezone 1441.",
>> +"  Test UEFI RT service get wakeup time interface.",
>> +"  Test UEFI RT service get wakeup time interface, NULL"
>> + " enabled parameter.",
>> +"  Test UEFI RT service get wakeup time interface, NULL"
>> + " pending parameter.",
>> +"  Test UEFI RT service get wakeup time interface, NULL"
>> + " time parameter.",
>> +"  Test UEFI RT service get wakeup time interface, NULL"
>> + " enabled, pending and time parameters.",
>> +"  Test UEFI RT service set wakeup time interface.",
>> +"  Test UEFI RT service set wakeup time interface, NULL"
>> + " time parameter.",
>> +"  Test UEFI RT service set wakeup time interface, invalid year 1899.",
>> +"  Test UEFI RT service set wakeup time interface, invalid year 10000.",
>> +"  Test UEFI RT service set wakeup time interface, invalid month 0.",
>> +"  Test UEFI RT service set wakeup time interface, invalid month 13.",
>> +"  Test UEFI RT service set wakeup time interface, invalid day 0.",
>> +"  Test UEFI RT service set wakeup time interface, invalid day 32.",
>> +"  Test UEFI RT service set wakeup time interface, invalid hour 24.",
>> +"  Test UEFI RT service set wakeup time interface, invalid minute 60.",
>> +"  Test UEFI RT service set wakeup time interface, invalid second 60.",
>> +"  Test UEFI RT service set wakeup time interface, invalid"
>> + " nanosecond 1000000000.",
>> +"  Test UEFI RT service set wakeup time interface, invalid"
>> + " timezone -1441.",
>> +"  Test UEFI RT service set wakeup time interface, invalid"
>> + " timezone 1441.",
>> +" uefirtvariable  (8 tests):",
>> +"  Test UEFI RT service get variable interface.",
>> +"  Test UEFI RT service get next variable name interface.",
>> +"  Test UEFI RT service set variable interface.",
>> +"  Test UEFI RT service query variable info interface.",
>> +"  Test UEFI RT service variable interface stress test.",
>> +"  Test UEFI RT service set variable interface stress test.",
>> +"  Test UEFI RT service query variable info interface stress test.",
>> +"  Test UEFI RT service get variable interface, invalid parameters.",
>> +"",
>> +"ACPI Spec Compliance tests:",
>> +" fadt            (6 tests):",
>> +"  ACPI FADT Description Table flag info.",
>> +"  FADT checksum test.",
>> +"  FADT revision test.",
>> +"  ACPI FADT Description Table tests.",
>> +"  Test FADT SCI_EN bit is enabled.",
>> +"  Test FADT reset register.",
>> +" madt            (5 tests):",
>> +"  MADT checksum test.",
>> +"  MADT revision test.",
>> +"  MADT architecture minimum revision test.",
>> +"  MADT flags field reserved bits test.",
>> +"  MADT subtable tests.",
>> +" rsdp            (1 test):",
>> +"  RSDP Root System Description Pointer test.",
>> +};
>> +
>> +static int show_log_create(fwts_framework *fw,
>> + char *show_abs_path_name,
>> + const char *log_name,
>> + char * log_template[],
>> + int log_array_size)
>> +{
>> + int i, count;
>> + FILE *show_log;
>> +
>> + char fq_log_name[PATH_MAX+1];
>> +
>> + memset(fq_log_name, 0, sizeof(fq_log_name));
>> +
>> + /* -1 for the slash in the snprintf concatenation */
>> + if (strlen(show_abs_path_name) + strlen(log_name)
>> + >= sizeof(fq_log_name)-1) {
>> + fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create1",
>> + "Unable to properly create"
>> + " the fwts-test logs.");
>> + return FWTS_ERROR;
>> + }
>> + count = snprintf(fq_log_name, sizeof(fq_log_name), "%s/%s",
>> + show_abs_path_name, log_name);
>> +
>> + if ((count < 0) || (count >= (int)sizeof(fq_log_name))) {
>> + fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create2",
>> + "Unable to properly create"
>> + " the fwts-test logs.");
>> + return FWTS_ERROR;
>> + }
>> +
>> + show_log = fopen(fq_log_name, "w+");
>> +
>> + if (!show_log) {
>> + fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create3",
>> + "Unable to properly create"
>> + " the fwts-test logs.");
>> + return FWTS_ERROR;
>> + }
>> +
>> + for ( i= 0; i < log_array_size; i++) {
>> + fprintf(show_log, "%s\n", log_template[i]);
>> +
>> + }
>> + if (fclose(show_log)) {
>> + fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create4",
>> + "Unable to properly create"
>> + " the fwts-test logs.");
>> + return FWTS_ERROR;
>> + }
>> +
>> + fwts_log_info(fw,
>> + "Dynamic creation of %s is complete", fq_log_name);
>> +
>> + return FWTS_OK;
>> +}
>> +
>> +static int show_logs_test1(fwts_framework *fw)
>> +{
>> + const char show_all_log_name[] =
>> + "arg-show-tests-0001/arg-show-tests-0001.log";
>> + const char show_all_full_log_name[] =
>> + "arg-show-tests-full-0001/arg-show-tests-full-0001.log";
>> +
>> + int rc = 0;
>> + char *fwtstestdir = NULL, *fwts_show_log_flags = NULL;
>> +
>> + char *fwts_abs_path_name;
>> + char tmp_abs_path [PATH_MAX+1];
>> +
>> + memset(tmp_abs_path, 0, sizeof(tmp_abs_path));
>> +
>> + /* Use the inherited env var since these logs */
>> + /* are only used during make check tests      */
>> + /* For a fail safe use the FWTS_SRCDIR        */
>> + /* from config.h during direct invocation     */
>> + /* of show_logs                               */
>> +
>> + fwtstestdir = getenv("FWTSTESTDIR");
>> + fwts_show_log_flags = getenv("FWTS_SHOW_LOGS");
>> +
>> + if (fwtstestdir != NULL) {
>> + fwts_abs_path_name = realpath(fwtstestdir,
>> + tmp_abs_path);
>> + } else {
>> + if (FWTS_SRCDIR == NULL) {
>> + fwts_failed(fw, LOG_LEVEL_LOW,
>> + "show-logs-fq-log1",
>> + "Unable to properly create"
>> + " the fwts-test logs.");
>> + return FWTS_ERROR;
>> + } else {
>> + if (strlen(FWTS_SRCDIR)+11
>> + <= sizeof(tmp_abs_path)) {
>> + if (!(strncpy(tmp_abs_path,
>> + FWTS_SRCDIR,
>> + sizeof(tmp_abs_path))
>> + == NULL)) {
>> + fwts_abs_path_name =
>> + strncat(tmp_abs_path,
>> + "/fwts-test", 11);
>> + } else {
>> + fwts_failed(fw, LOG_LEVEL_LOW,
>> + "show-logs-fq-log2",
>> + "Unable to properly create"
>> + " the fwts-test logs.");
>> + return FWTS_ERROR;
>> + }
>> + }
>> + }
>> + }
>> +
>> + if (fwts_abs_path_name == NULL) {
>> + fwts_failed(fw, LOG_LEVEL_LOW, "show-logs-fq-log3",
>> + "Unable to properly create"
>> + " the fwts-test logs.");
>> + return FWTS_ERROR;
>> + }
>> +
>> + if (fwts_show_log_flags == NULL) {
>> + rc = show_log_create(fw,
>> + fwts_abs_path_name,
>> + show_all_full_log_name,
>> + fwts_show_all,
>> + FWTS_ARRAY_LEN(fwts_show_all));
>> + if (!rc) {
>> + rc = show_log_create(fw,
>> + fwts_abs_path_name,
>> + show_all_log_name,
>> + fwts_show,
>> + FWTS_ARRAY_LEN(fwts_show));
>> + }
>> + } else {
>> + if (!strncmp(fwts_show_log_flags, "BASE", 4)){
>> + rc = show_log_create(fw,
>> + fwts_abs_path_name,
>> + show_all_log_name,
>> + fwts_show,
>> + FWTS_ARRAY_LEN(fwts_show));
>> + } else {
>> + if (!strncmp(fwts_show_log_flags, "FULL", 4)) {
>> + rc = show_log_create(fw,
>> + fwts_abs_path_name,
>> + show_all_full_log_name,
>> + fwts_show_all,
>> + FWTS_ARRAY_LEN(fwts_show_all));
>> + }
>> + }
>> + }
>> +
>> + if (!rc) {
>> + fwts_passed(fw, "Show Tests Log Files"
>> + " completed successfully.");
>> + } /* subroutines logged fwts failures */
>> +
>> + return rc;
>> +}
>> +
>> +static fwts_framework_minor_test show_logs_tests[] = {
>> + { show_logs_test1, "Show Tests Log Files" },
>> + { NULL, NULL }
>> +};
>> +
>> +static fwts_framework_ops show_logs_ops = {
>> + .description = "Show Tests Log Files",
>> + .minor_tests = show_logs_tests
>> +};
>> +
>> +FWTS_REGISTER("show_logs", &show_logs_ops, FWTS_TEST_EARLY,
>> + FWTS_FLAG_BATCH)
>>
> 
> The show* text is auto-generated from the each test at startup time, so
> this is not really a good solution as we're duplicating this in
> fwts_show_all[] and fwts_show[] arrays. Plus, maintaining this when we
> add extra tests will be a maintenance burden.
> 
> Sorry, NACK.
> 
> Colin
> 
> -- 
> fwts-devel mailing list
> fwts-devel@lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/fwts-devel
> 
> 
> 
>
Deborah McLemore July 5, 2016, 10:01 p.m. UTC | #4
Hi Colin,

Thanks for the clarifications.

I suppose the larger problem this patch addresses is that on non-X86
platforms, OpenPower for example, these tests are "skipped" completely,
therefore dropping any checking at all for non-x86
platforms, not such a good design point.

I do see the point on the duplication of the text in the source code versus
the already existing duplication of shipping the fwts output in the
original log files, the duplication is just moved to a .c file versus
a .log file.

In reviewing how to provide the tests on non-X86 platforms, a method to
conditionally include and/or exclude tests is required.

If there are other suggestions on how to not duplicate this text in source
code (versus the already existing duplication in the shipped log files and
the fwts source code) maybe we can
discuss alternative approaches.

This problem surfaced during the implementation of both the device tree
checks and the OPAL prd_info check.  For the case of the device tree
checks, on even x86 platforms which do not
have the libfdt installed, i.e. xRHEL 7.2, the tests fail, so fwts is left
with a broken design already and no way to provide a solution.

Maybe there is a solution here with some more discussion with the objective
being a cross platform solution and flexibility to provide common
functionality on all platforms, x86 and non-x86.
=====================================
Deb McLemore
IBM OpenPower - IBM Systems
(512) 286 9980

debmc@us.ibm.com
debmc@linux.vnet.ibm.com - (plain text)
=====================================



From:	Colin Ian King <colin.king@canonical.com>
To:	Deborah McLemore/Austin/IBM@IBMUS
Cc:	Deb McLemore <debmc@linux.vnet.ibm.com>,
            fwts-devel@lists.ubuntu.com
Date:	07/05/2016 04:49 PM
Subject:	Re: [PATCH] show/show_logs: Add dynamic creation of fwts-test
            logs



On 05/07/16 20:34, Deborah McLemore wrote:
> Hi Colin,
>
> The static log files (which are the two sources which are deleted below)
> are already a maintenance item which must be updated with each new test
> which is added.
>
> The burden is only moved from updating the 2 static log files which are
> then compared to the real output from the show and show all command.
>
> Maybe I am not following the reply, can you elaborate ?
>
> This patch allows the conditional compilation of what goes in the two
> log files below.

The patch is duplicating text strings in fwts; the show logs output in
the patch is a hunk of text built into fwts - however, this data is
already in fwts on a per test basis.  The first rule to any code is
never duplicate and that is exactly what we have here, the text in two
places in the code.  That is a recipe for things to get out of sync.

The regression tests compare the output of fwts to the expected output;
the patch here is doing things the opposite way around; the output is
embedded into fwts, which is not the way fwts was designed to work wrt
to the regression tests.  If the regression tests don't do the right
thing for a specific configuration then we need to tweak the regression
tests and not fwts.



>
>
>> delete mode 100644 fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
>> delete mode 100644
> fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
> =====================================
> Deb McLemore
> IBM OpenPower - IBM Systems
> (512) 286 9980
>
> debmc@us.ibm.com
> debmc@linux.vnet.ibm.com - (plain text)
> =====================================
>
> Inactive hide details for Colin Ian King ---07/05/2016 02:16:40 PM---On
> 05/07/16 20:05, Deb McLemore wrote: > We added the capaColin Ian King
> ---07/05/2016 02:16:40 PM---On 05/07/16 20:05, Deb McLemore wrote: > We
> added the capability to dynamically create (based on tes
>
> From: Colin Ian King <colin.king@canonical.com>
> To: Deb McLemore <debmc@linux.vnet.ibm.com>, fwts-devel@lists.ubuntu.com
> Date: 07/05/2016 02:16 PM
> Subject: Re: [PATCH] show/show_logs: Add dynamic creation of fwts-test
logs
> Sent by: fwts-devel-bounces@lists.ubuntu.com
>
> ------------------------------------------------------------------------
>
>
>
> On 05/07/16 20:05, Deb McLemore wrote:
>> We added the capability to dynamically create (based on test)
>> the content of the log files used to validate the show commands.
>> This allows customization of the Makefile.am to optionally
>> include objects to be linked.
>>
>> Signed-off-by: Deb McLemore <debmc@linux.vnet.ibm.com>
>> ---
>>  configure.ac                                       |    2 +
>>  .../arg-show-tests-0001/arg-show-tests-0001.log    |  187 ---
>>  fwts-test/arg-show-tests-0001/test-0001.sh         |   20 +-
>>  fwts-test/arg-show-tests-0001/test-0002.sh         |   26 +-
>>  .../arg-show-tests-full-0001.log                   |  930 ------------
>>  fwts-test/arg-show-tests-full-0001/test-0001.sh    |   19 +-
>>  src/Makefile.am                                    |    1 +
>>  src/show/show_logs.c                               | 1480
> ++++++++++++++++++++
>>  8 files changed, 1519 insertions(+), 1146 deletions(-)
>>  delete mode 100644
fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
>>  delete mode 100644
> fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
>>  create mode 100644 src/show/show_logs.c
>>
>> diff --git a/configure.ac b/configure.ac
>> index e3e7512..0f15540 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -71,6 +71,8 @@
>>     ])
>>     AM_CONDITIONAL([HAVE_LIBFDT],
>>     [test "x$ac_cv_search_fdt_check_header" != "xno"])
>> +   fwts_srcdir=`readlink -f $srcdir`
>> +   AC_DEFINE_UNQUOTED([FWTS_SRCDIR],["$fwts_srcdir"], [FWTS absolute
> src path])
>>     AC_FUNC_MALLOC
>>     AC_FUNC_FORK
>>     AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
>> diff --git a/fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
> b/fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
>> deleted file mode 100644
>> index 1a76b9d..0000000
>> --- a/fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
>> +++ /dev/null
>> @@ -1,187 +0,0 @@
>> -ACPI tests:
>> - acpiinfo        General ACPI information test.
>> - acpitables      ACPI table headers sanity tests.
>> - apicinstance    Test for single instance of APIC/MADT table.
>> - asf             ASF! Alert Standard Format Table test.
>> - aspt            ASPT Table test.
>> - bert            BERT Boot Error Record Table test.
>> - bgrt            BGRT Boot Graphics Resource Table test.
>> - boot            BOOT Table test.
>> - checksum        ACPI table checksum test.
>> - cpep            CPEP Corrected Platform Error Polling Table test.
>> - csrt            CSRT Core System Resource Table test.
>> - cstates         Processor C state support test.
>> - dbg2            DBG2 (Debug Port Table 2) test.
>> - dbgp            DBGP (Debug Port) Table test.
>> - dmar            DMA Remapping (VT-d) test.
>> - ecdt            ECDT Embedded Controller Boot Resources Table test.
>> - einj            EINJ Error Injection Table test.
>> - erst            ERST Error Record Serialization Table test.
>> - facs            FACS Firmware ACPI Control Structure test.
>> - fadt            FADT Fixed ACPI Description Table tests.
>> - fpdt            FPDT Firmware Performance Data Table test.
>> - gtdt            GTDT Generic Timer Description Table test.
>> - hest            HEST Hardware Error Source Table test.
>> - hpet            HPET IA-PC High Precision Event Timer Table tests.
>> - iort            IORT IO Remapping Table test.
>> - lpit            LPIT Low Power Idle Table test.
>> - madt            MADT Multiple APIC Description Table (spec compliant).
>> - mcfg            MCFG PCI Express* memory mapped config space test.
>> - mchi            MCHI Management Controller Host Interface Table test.
>> - method          ACPI DSDT Method Semantic tests.
>> - msct            MSCT Maximum System Characteristics Table test.
>> - msdm            MSDM Microsoft Data Management Table test.
>> - pcc             Processor Clocking Control (PCC) test.
>> - rsdp            RSDP Root System Description Pointer test.
>> - rsdt            RSDT Root System Description Table test.
>> - sbst            SBST Smart Battery Specification Table test.
>> - slic            SLIC Software Licensing Description Table test.
>> - slit            SLIT System Locality Distance Information test.
>> - spcr            SPCR Serial Port Console Redirection Table test.
>> - spmi            SPMI Service Processor Management Interface
> Description Table test.
>> - srat            SRAT System Resource Affinity Table test.
>> - stao            STAO Status Override Table test.
>> - tcpa            TCPA Trusted Computing Platform Alliance
> Capabilities Table test.
>> - tpm2            TPM2 Trusted Platform Module 2 test.
>> - uefi            UEFI Data Table test.
>> - waet            WAET Windows ACPI Emulated Devices Table test.
>> - wdat            WDAT Microsoft Hardware Watchdog Action Table test.
>> - wmi             Extract and analyse Windows Management
> Instrumentation (WMI).
>> - xenv            XENV Xen Environment Table tests.
>> - xsdt            XSDT Extended System Description Table test.
>> -
>> -Batch tests:
>> - acpiinfo        General ACPI information test.
>> - acpitables      ACPI table headers sanity tests.
>> - apicedge        APIC edge/level test.
>> - apicinstance    Test for single instance of APIC/MADT table.
>> - asf             ASF! Alert Standard Format Table test.
>> - aspm            PCIe ASPM test.
>> - aspt            ASPT Table test.
>> - autobrightness  Automated LCD brightness test.
>> - bert            BERT Boot Error Record Table test.
>> - bgrt            BGRT Boot Graphics Resource Table test.
>> - bios32          BIOS32 Service Directory test.
>> - bios_info       Gather BIOS DMI information.
>> - bmc_info        BMC Info
>> - boot            BOOT Table test.
>> - checksum        ACPI table checksum test.
>> - cpep            CPEP Corrected Platform Error Polling Table test.
>> - cpufreq         CPU frequency scaling tests.
>> - crs             Test PCI host bridge configuration using _CRS.
>> - csm             UEFI Compatibility Support Module test.
>> - csrt            CSRT Core System Resource Table test.
>> - cstates         Processor C state support test.
>> - dbg2            DBG2 (Debug Port Table 2) test.
>> - dbgp            DBGP (Debug Port) Table test.
>> - dmar            DMA Remapping (VT-d) test.
>> - dmicheck        DMI/SMBIOS table tests.
>> - dt_base         Base device tree validity check
>> - dt_sysinfo      Device tree system information test
>> - ebda            Test EBDA region is mapped and reserved in memory
> map table.
>> - ecdt            ECDT Embedded Controller Boot Resources Table test.
>> - einj            EINJ Error Injection Table test.
>> - erst            ERST Error Record Serialization Table test.
>> - facs            FACS Firmware ACPI Control Structure test.
>> - fadt            FADT Fixed ACPI Description Table tests.
>> - fan             Simple fan tests.
>> - fpdt            FPDT Firmware Performance Data Table test.
>> - gtdt            GTDT Generic Timer Description Table test.
>> - hda_audio       HDA Audio Pin Configuration test.
>> - hest            HEST Hardware Error Source Table test.
>> - hpet            HPET IA-PC High Precision Event Timer Table tests.
>> - iort            IORT IO Remapping Table test.
>> - klog            Scan kernel log for errors and warnings.
>> - lpit            LPIT Low Power Idle Table test.
>> - madt            MADT Multiple APIC Description Table (spec compliant).
>> - maxfreq         Test max CPU frequencies against max scaling
frequency.
>> - maxreadreq      Test firmware has set PCI Express MaxReadReq to a
> higher value on non-motherboard devices.
>> - mcfg            MCFG PCI Express* memory mapped config space test.
>> - mchi            MCHI Management Controller Host Interface Table test.
>> - method          ACPI DSDT Method Semantic tests.
>> - microcode       Test if system is using latest microcode.
>> - mpcheck         MultiProcessor Tables tests.
>> - msct            MSCT Maximum System Characteristics Table test.
>> - msdm            MSDM Microsoft Data Management Table test.
>> - msr             MSR register tests.
>> - mtrr            MTRR tests.
>> - nx              Test if CPU NX is disabled by the BIOS.
>> - olog            Run OLOG scan and analysis checks.
>> - oops            Scan kernel log for Oopses.
>> - osilinux        Disassemble DSDT to check for _OSI("Linux").
>> - pcc             Processor Clocking Control (PCC) test.
>> - pciirq          PCI IRQ Routing Table test.
>> - pnp             BIOS Support Installation structure test.
>> - prd_info        OPAL Processor Recovery Diagnostics Info
>> - rsdp            RSDP Root System Description Pointer test.
>> - rsdt            RSDT Root System Description Table test.
>> - sbst            SBST Smart Battery Specification Table test.
>> - securebootcert  UEFI secure boot test.
>> - slic            SLIC Software Licensing Description Table test.
>> - slit            SLIT System Locality Distance Information test.
>> - spcr            SPCR Serial Port Console Redirection Table test.
>> - spmi            SPMI Service Processor Management Interface
> Description Table test.
>> - srat            SRAT System Resource Affinity Table test.
>> - stao            STAO Status Override Table test.
>> - syntaxcheck     Re-assemble DSDT and SSDTs to find syntax errors and
> warnings.
>> - tcpa            TCPA Trusted Computing Platform Alliance
> Capabilities Table test.
>> - tpm2            TPM2 Trusted Platform Module 2 test.
>> - uefi            UEFI Data Table test.
>> - uefibootpath    Sanity check for UEFI Boot Path Boot####.
>> - version         Gather kernel system information.
>> - virt            CPU Virtualisation Configuration test.
>> - waet            WAET Windows ACPI Emulated Devices Table test.
>> - wakealarm       ACPI Wakealarm tests.
>> - wdat            WDAT Microsoft Hardware Watchdog Action Table test.
>> - wmi             Extract and analyse Windows Management
> Instrumentation (WMI).
>> - xenv            XENV Xen Environment Table tests.
>> - xsdt            XSDT Extended System Description Table test.
>> -
>> -Interactive tests:
>> - ac_adapter      Interactive ac_adapter power test.
>> - battery         Battery tests.
>> - brightness      Interactive LCD brightness test.
>> - hotkey          Hotkey scan code tests.
>> - lid             Interactive lid button test.
>> - power_button    Interactive power_button button test.
>> -
>> -Power States tests:
>> - s3              S3 suspend/resume test.
>> - s3power         S3 power loss during suspend test (takes minimum of
> 10 minutes to run).
>> - s4              S4 hibernate/resume test.
>> -
>> -Utilities:
>> - acpidump        Dump ACPI tables.
>> - cmosdump        Dump CMOS Memory.
>> - crsdump         Dump ACPI _CRS resources.
>> - ebdadump        Dump EBDA region.
>> - esrtdump        Dump ESRT table.
>> - gpedump         Dump GPEs.
>> - memmapdump      Dump system memory map.
>> - mpdump          Dump MultiProcessor Data.
>> - plddump         Dump ACPI _PLD (Physical Device Location).
>> - prsdump         Dump ACPI _PRS resources.
>> - romdump         Dump ROM data.
>> - uefidump        Dump UEFI variables.
>> - uefivarinfo     UEFI variable info query.
>> -
>> -Unsafe tests:
>> - uefirtauthvar   Authenticated variable tests.
>> - uefirtmisc      UEFI miscellaneous runtime service interface tests.
>> - uefirttime      UEFI Runtime service time interface tests.
>> - uefirtvariable  UEFI Runtime service variable interface tests.
>> -
>> -UEFI tests:
>> - csm             UEFI Compatibility Support Module test.
>> - esrt            Sanity check UEFI ESRT Table.
>> - securebootcert  UEFI secure boot test.
>> - uefibootpath    Sanity check for UEFI Boot Path Boot####.
>> - uefirtauthvar   Authenticated variable tests.
>> - uefirtmisc      UEFI miscellaneous runtime service interface tests.
>> - uefirttime      UEFI Runtime service time interface tests.
>> - uefirtvariable  UEFI Runtime service variable interface tests.
>> -
>> -ACPI Spec Compliance tests:
>> - fadt            FADT Fixed ACPI Description Table tests.
>> - madt            MADT Multiple APIC Description Table (spec compliant).
>> - rsdp            RSDP Root System Description Pointer test.
>> diff --git a/fwts-test/arg-show-tests-0001/test-0001.sh
> b/fwts-test/arg-show-tests-0001/test-0001.sh
>> index a62071c..ade98a3 100755
>> --- a/fwts-test/arg-show-tests-0001/test-0001.sh
>> +++ b/fwts-test/arg-show-tests-0001/test-0001.sh
>> @@ -3,23 +3,21 @@
>>  TEST="Test -s option"
>>  NAME=test-0001.sh
>>  TMPLOG=$TMP/arg-show-tests.log.$$
>> +export FWTS_SHOW_LOGS="BASE"
>>
>> -#
>> -#  Non-x86 tests don't have WMI so skip this test
>> -#
>> -$FWTS --show-tests | grep wmi > /dev/null
>> -if [ $? -eq 1 ]; then
>> +# Dynamically create the log template per test
>> +$FWTS show_logs &> /dev/null
>> +if [ $? -ne 0 ]; then
>>   echo SKIP: $TEST, $NAME
>>   exit 77
>>  fi
>>
>> -cols=$(stty -a | tr ';' '\n' | grep "columns" | cut -d' ' -f3) 2>
> /dev/null
>>  #
>>  #  If we can't set the tty then we can't test
>>  #
>> -stty cols 80 2> /dev/null
>> -if [ $? -eq 1 ]; then
>> -        tset 2> /dev/null
>> +stty cols 80 &> /dev/null
>> +if [ $? -ne 0 ]; then
>> +        tset &> /dev/null
>>          echo SKIP: $TEST, $NAME
>>          exit 77
>>  fi
>> @@ -32,8 +30,8 @@ else
>>   echo FAILED: $TEST, $NAME
>>  fi
>>
>> -stty cols 80 2> /dev/null
>> -tset 2> /dev/null
>> +stty cols 80 &> /dev/null
>> +tset &> /dev/null
>>
>>  rm $TMPLOG
>>  exit $ret
>> diff --git a/fwts-test/arg-show-tests-0001/test-0002.sh
> b/fwts-test/arg-show-tests-0001/test-0002.sh
>> index f92fd8f..078f3e7 100755
>> --- a/fwts-test/arg-show-tests-0001/test-0002.sh
>> +++ b/fwts-test/arg-show-tests-0001/test-0002.sh
>> @@ -3,27 +3,25 @@
>>  TEST="Test --show-tests option"
>>  NAME=test-0002.sh
>>  TMPLOG=$TMP/arg-show-tests.log.$$
>> +export FWTS_SHOW_LOGS="BASE"
>>
>> -#
>> -#  Non-x86 tests don't have WMI so skip this test
>> -#
>> -$FWTS --show-tests | grep wmi > /dev/null
>> -if [ $? -eq 1 ]; then
>> +# Dynamically create the log template per test
>> +$FWTS show_logs &> /dev/null
>> +if [ $? -ne 0 ]; then
>>   echo SKIP: $TEST, $NAME
>>   exit 77
>>  fi
>>
>> -cols=$(stty -a | tr ';' '\n' | grep "columns" | cut -d' ' -f3) 2>
> /dev/null
>>  #
>>  #  If we can't set the tty then we can't test
>>  #
>> -stty cols 80 2> /dev/null
>> -if [ $? -eq 1 ]; then
>> -        tset 2> /dev/null
>> -        echo SKIP: $TEST, $NAME
>> -        exit 77
>> +stty cols 80 &> /dev/null
>> +if [ $? -ne 0 ]; then
>> + tset &> /dev/null
>> + echo SKIP: $TEST, $NAME
>> + exit 77
>>  fi
>> -$FWTS -s > $TMPLOG
>> +$FWTS --show-tests > $TMPLOG
>>  diff $TMPLOG $FWTSTESTDIR/arg-show-tests-0001/arg-show-tests-0001.log
>>> $FAILURE_LOG
>>  ret=$?
>>  if [ $ret -eq 0 ]; then
>> @@ -32,8 +30,8 @@ else
>>   echo FAILED: $TEST, $NAME
>>  fi
>>
>> -stty cols 80 2> /dev/null
>> -tset 2> /dev/null
>> +stty cols 80 &> /dev/null
>> +tset &> /dev/null
>>
>>  rm $TMPLOG
>>  exit $ret
>> diff --git
> a/fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
> b/fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
>> deleted file mode 100644
>> index 3eb5e3e..0000000
>> --- a/fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
>> +++ /dev/null
>> @@ -1,930 +0,0 @@
>> -ACPI tests:
>> - acpiinfo        (3 tests):
>> -  Determine Kernel ACPI version.
>> -  Determine machine's ACPI version.
>> -  Determine AML compiler.
>> - acpitables      (1 test):
>> -  Test ACPI headers.
>> - apicinstance    (1 test):
>> -  Test for single instance of APIC/MADT table.
>> - asf             (1 test):
>> -  ASF! Alert Standard Format Table test.
>> - aspt            (1 test):
>> -  ASPT Table test.
>> - bert            (1 test):
>> -  BERT Boot Error Record Table test.
>> - bgrt            (1 test):
>> -  BGRT Boot Graphics Resource Table test.
>> - boot            (1 test):
>> -  BOOT Table test.
>> - checksum        (1 test):
>> -  ACPI table checksum test.
>> - cpep            (1 test):
>> -  CPEP Corrected Platform Error Polling Table test.
>> - csrt            (1 test):
>> -  CSRT Core System Resource Table test.
>> - cstates         (1 test):
>> -  Test all CPUs C-states.
>> - dbg2            (1 test):
>> -  DBG2 (Debug Port Table 2) test.
>> - dbgp            (1 test):
>> -  DBGP (Debug Port) Table test.
>> - dmar            (1 test):
>> -  DMA Remapping test.
>> - ecdt            (1 test):
>> -  ECDT Embedded Controller Boot Resources Table test.
>> - einj            (1 test):
>> -  EINJ Error Injection Table test.
>> - erst            (1 test):
>> -  ERST Error Record Serialization Table test.
>> - facs            (1 test):
>> -  FACS Firmware ACPI Control Structure test.
>> - fadt            (6 tests):
>> -  ACPI FADT Description Table flag info.
>> -  FADT checksum test.
>> -  FADT revision test.
>> -  ACPI FADT Description Table tests.
>> -  Test FADT SCI_EN bit is enabled.
>> -  Test FADT reset register.
>> - fpdt            (1 test):
>> -  FPDT Firmware Performance Data Table test.
>> - gtdt            (1 test):
>> -  GTDT Generic Timer Description Table test.
>> - hest            (1 test):
>> -  HEST Hardware Error Source Table test.
>> - hpet            (4 tests):
>> -  Test HPET base in kernel log.
>> -  Test HPET base in HPET table.
>> -  Test HPET base in DSDT and/or SSDT.
>> -  Test HPET configuration.
>> - iort            (1 test):
>> -  IORT IO Remapping Table test.
>> - lpit            (1 test):
>> -  LPIT Low Power Idle Table test.
>> - madt            (5 tests):
>> -  MADT checksum test.
>> -  MADT revision test.
>> -  MADT architecture minimum revision test.
>> -  MADT flags field reserved bits test.
>> -  MADT subtable tests.
>> - mcfg            (2 tests):
>> -  Validate MCFG table.
>> -  Validate MCFG PCI config space.
>> - mchi            (1 test):
>> -  MCHI Management Controller Host Interface Table test.
>> - method          (191 tests):
>> -  Test Method Names.
>> -  Test _AEI.
>> -  Test _EVT (Event Method).
>> -  Test _DLM (Device Lock Mutex).
>> -  Test _PIC (Inform AML of Interrupt Model).
>> -  Test _CID (Compatible ID).
>> -  Test _DDN (DOS Device Name).
>> -  Test _HID (Hardware ID).
>> -  Test _HRV (Hardware Revision Number).
>> -  Test _MLS (Multiple Language String).
>> -  Test _PLD (Physical Device Location).
>> -  Test _SUB (Subsystem ID).
>> -  Test _SUN (Slot User Number).
>> -  Test _STR (String).
>> -  Test _UID (Unique ID).
>> -  Test _CDM (Clock Domain).
>> -  Test _CRS (Current Resource Settings).
>> -  Test _DSD (Device Specific Data).
>> -  Test _DIS (Disable).
>> -  Test _DMA (Direct Memory Access).
>> -  Test _FIX (Fixed Register Resource Provider).
>> -  Test _GSB (Global System Interrupt Base).
>> -  Test _HPP (Hot Plug Parameters).
>> -  Test _PRS (Possible Resource Settings).
>> -  Test _PRT (PCI Routing Table).
>> -  Test _PXM (Proximity).
>> -  Test _CCA (Cache Coherency Attribute).
>> -  Test _EDL (Eject Device List).
>> -  Test _EJD (Ejection Dependent Device).
>> -  Test _EJ0 (Eject).
>> -  Test _EJ1 (Eject).
>> -  Test _EJ2 (Eject).
>> -  Test _EJ3 (Eject).
>> -  Test _EJ4 (Eject).
>> -  Test _LCK (Lock).
>> -  Test _RMV (Remove).
>> -  Test _STA (Status).
>> -  Test _DEP (Operational Region Dependencies).
>> -  Test _BDN (BIOS Dock Name).
>> -  Test _BBN (Base Bus Number).
>> -  Test _DCK (Dock).
>> -  Test _INI (Initialize).
>> -  Test _GLK (Global Lock).
>> -  Test _SEG (Segment).
>> -  Test _OFF (Set resource off).
>> -  Test _ON_ (Set resource on).
>> -  Test _DSW (Device Sleep Wake).
>> -  Test _IRC (In Rush Current).
>> -  Test _PRE (Power Resources for Enumeration).
>> -  Test _PR0 (Power Resources for D0).
>> -  Test _PR1 (Power Resources for D1).
>> -  Test _PR2 (Power Resources for D2).
>> -  Test _PR3 (Power Resources for D3).
>> -  Test _PRW (Power Resources for Wake).
>> -  Test _PS0 (Power State 0).
>> -  Test _PS1 (Power State 1).
>> -  Test _PS2 (Power State 2).
>> -  Test _PS3 (Power State 3).
>> -  Test _PSC (Power State Current).
>> -  Test _PSE (Power State for Enumeration).
>> -  Test _PSW (Power State Wake).
>> -  Test _S1D (S1 Device State).
>> -  Test _S2D (S2 Device State).
>> -  Test _S3D (S3 Device State).
>> -  Test _S4D (S4 Device State).
>> -  Test _S0W (S0 Device Wake State).
>> -  Test _S1W (S1 Device Wake State).
>> -  Test _S2W (S2 Device Wake State).
>> -  Test _S3W (S3 Device Wake State).
>> -  Test _S4W (S4 Device Wake State).
>> -  Test _RST (Device Reset).
>> -  Test _PRR (Power Resource for Reset).
>> -  Test _S0_ (S0 System State).
>> -  Test _S1_ (S1 System State).
>> -  Test _S2_ (S2 System State).
>> -  Test _S3_ (S3 System State).
>> -  Test _S4_ (S4 System State).
>> -  Test _S5_ (S5 System State).
>> -  Test _SWS (System Wake Source).
>> -  Test _PSS (Performance Supported States).
>> -  Test _CPC (Continuous Performance Control).
>> -  Test _CSD (C State Dependencies).
>> -  Test _CST (C States).
>> -  Test _PCT (Performance Control).
>> -  Test _PDL (P-State Depth Limit).
>> -  Test _PPC (Performance Present Capabilities).
>> -  Test _PPE (Polling for Platform Error).
>> -  Test _PSD (Power State Dependencies).
>> -  Test _PTC (Processor Throttling Control).
>> -  Test _TDL (T-State Depth Limit).
>> -  Test _TPC (Throttling Present Capabilities).
>> -  Test _TSD (Throttling State Dependencies).
>> -  Test _TSS (Throttling Supported States).
>> -  Test _LPI (Low Power Idle States).
>> -  Test _RDI (Resource Dependencies for Idle).
>> -  Test _PUR (Processor Utilization Request).
>> -  Test _MSG (Message).
>> -  Test _SST (System Status).
>> -  Test _ALC (Ambient Light Colour Chromaticity).
>> -  Test _ALI (Ambient Light Illuminance).
>> -  Test _ALT (Ambient Light Temperature).
>> -  Test _ALP (Ambient Light Polling).
>> -  Test _ALR (Ambient Light Response).
>> -  Test _LID (Lid Status).
>> -  Test _GTF (Get Task File).
>> -  Test _GTM (Get Timing Mode).
>> -  Test _MBM (Memory Bandwidth Monitoring Data).
>> -  Test _UPC (USB Port Capabilities).
>> -  Test _UPD (User Presence Detect).
>> -  Test _UPP (User Presence Polling).
>> -  Test _GCP (Get Capabilities).
>> -  Test _GRT (Get Real Time).
>> -  Test _GWS (Get Wake Status).
>> -  Test _CWS (Clear Wake Status).
>> -  Test _STP (Set Expired Timer Wake Policy).
>> -  Test _STV (Set Timer Value).
>> -  Test _TIP (Expired Timer Wake Policy).
>> -  Test _TIV (Timer Values).
>> -  Test _SBS (Smart Battery Subsystem).
>> -  Test _BCT (Battery Charge Time).
>> -  Test _BIF (Battery Information).
>> -  Test _BIX (Battery Information Extended).
>> -  Test _BMA (Battery Measurement Averaging).
>> -  Test _BMC (Battery Maintenance Control).
>> -  Test _BMD (Battery Maintenance Data).
>> -  Test _BMS (Battery Measurement Sampling Time).
>> -  Test _BST (Battery Status).
>> -  Test _BTP (Battery Trip Point).
>> -  Test _BTH (Battery Throttle Limit).
>> -  Test _BTM (Battery Time).
>> -  Test _PCL (Power Consumer List).
>> -  Test _PIF (Power Source Information).
>> -  Test _PRL (Power Source Redundancy List).
>> -  Test _PSR (Power Source).
>> -  Test _GAI (Get Averaging Level).
>> -  Test _GHL (Get Harware Limit).
>> -  Test _PMC (Power Meter Capabilities).
>> -  Test _PMD (Power Meter Devices).
>> -  Test _PMM (Power Meter Measurement).
>> -  Test _WPC (Wireless Power Calibration).
>> -  Test _WPP (Wireless Power Polling).
>> -  Test _FIF (Fan Information).
>> -  Test _FPS (Fan Performance States).
>> -  Test _FSL (Fan Set Level).
>> -  Test _FST (Fan Status).
>> -  Test _ACx (Active Cooling).
>> -  Test _ART (Active Cooling Relationship Table).
>> -  Test _CRT (Critical Trip Point).
>> -  Test _CR3 (Warm/Standby Temperature).
>> -  Test _DTI (Device Temperature Indication).
>> -  Test _HOT (Hot Temperature).
>> -  Test _MTL (Minimum Throttle Limit).
>> -  Test _NTT (Notification Temp Threshold).
>> -  Test _PSL (Passive List).
>> -  Test _PSV (Passive Temp).
>> -  Test _RTV (Relative Temp Values).
>> -  Test _SCP (Set Cooling Policy).
>> -  Test _TC1 (Thermal Constant 1).
>> -  Test _TC2 (Thermal Constant 2).
>> -  Test _TFP (Thermal fast Sampling Period).
>> -  Test _TMP (Thermal Zone Current Temp).
>> -  Test _TPT (Trip Point Temperature).
>> -  Test _TRT (Thermal Relationship Table).
>> -  Test _TSN (Thermal Sensor Device).
>> -  Test _TSP (Thermal Sampling Period).
>> -  Test _TST (Temperature Sensor Threshold).
>> -  Test _TZD (Thermal Zone Devices).
>> -  Test _TZM (Thermal Zone member).
>> -  Test _TZP (Thermal Zone Polling).
>> -  Test _GPE (General Purpose Events).
>> -  Test _EC_ (EC Offset Query).
>> -  Test _PTS (Prepare to Sleep).
>> -  Test _TTS (Transition to State).
>> -  Test _WAK (System Wake).
>> -  Test _ADR (Return Unique ID for Device).
>> -  Test _BCL (Query List of Brightness Control Levels Supported).
>> -  Test _BCM (Set Brightness Level).
>> -  Test _BQC (Brightness Query Current Level).
>> -  Test _DCS (Return the Status of Output Device).
>> -  Test _DDC (Return the EDID for this Device).
>> -  Test _DSS (Device Set State).
>> -  Test _DGS (Query Graphics State).
>> -  Test _DOD (Enumerate All Devices Attached to Display Adapter).
>> -  Test _DOS (Enable/Disable Output Switching).
>> -  Test _GPD (Get POST Device).
>> -  Test _ROM (Get ROM Data).
>> -  Test _SPD (Set POST Device).
>> -  Test _VPO (Video POST Options).
>> -  Test _CBA (Configuration Base Address).
>> -  Test _IFT (IPMI Interface Type).
>> -  Test _SRV (IPMI Interface Revision).
>> - msct            (1 test):
>> -  MSCT Maximum System Characteristics Table test.
>> - msdm            (1 test):
>> -  MSDM Microsoft Data Management Table test.
>> - pcc             (1 test):
>> -  Processor Clocking Control (PCC) test.
>> - rsdp            (1 test):
>> -  RSDP Root System Description Pointer test.
>> - rsdt            (1 test):
>> -  RSDT Root System Description Table test.
>> - sbst            (1 test):
>> -  SBST Smart Battery Specificiation Table test.
>> - slic            (1 test):
>> -  SLIC Software Licensing Description Table test.
>> - slit            (1 test):
>> -  SLIT System Locality Distance Information test.
>> - spcr            (1 test):
>> -  SPCR Serial Port Console Redirection Table test.
>> - spmi            (1 test):
>> -  SPMI Service Processor Management Interface Description Table test.
>> - srat            (1 test):
>> -  SRAT System Resource Affinity Table test.
>> - stao            (1 test):
>> -  STAO Status Override Table test.
>> - tcpa            (1 test):
>> -  Validate TCPA table.
>> - tpm2            (1 test):
>> -  Validate TPM2 table.
>> - uefi            (1 test):
>> -  UEFI Data Table test.
>> - waet            (1 test):
>> -  Windows ACPI Emulated Devices Table test.
>> - wdat            (1 test):
>> -  WDAT Microsoft Hardware Watchdog Action Table test.
>> - wmi             (1 test):
>> -  Windows Management Instrumentation test.
>> - xenv            (1 test):
>> -  Validate XENV table.
>> - xsdt            (1 test):
>> -  XSDT Extended System Description Table test.
>> -
>> -Batch tests:
>> - acpiinfo        (3 tests):
>> -  Determine Kernel ACPI version.
>> -  Determine machine's ACPI version.
>> -  Determine AML compiler.
>> - acpitables      (1 test):
>> -  Test ACPI headers.
>> - apicedge        (1 test):
>> -  Legacy and PCI Interrupt Edge/Level trigger tests.
>> - apicinstance    (1 test):
>> -  Test for single instance of APIC/MADT table.
>> - asf             (1 test):
>> -  ASF! Alert Standard Format Table test.
>> - aspm            (2 tests):
>> -  PCIe ASPM ACPI test.
>> -  PCIe ASPM registers test.
>> - aspt            (1 test):
>> -  ASPT Table test.
>> - autobrightness  (2 tests):
>> -  Test for maximum and actual brightness.
>> -  Change actual brightness.
>> - bert            (1 test):
>> -  BERT Boot Error Record Table test.
>> - bgrt            (1 test):
>> -  BGRT Boot Graphics Resource Table test.
>> - bios32          (1 test):
>> -  BIOS32 Service Directory test.
>> - bios_info       (1 test):
>> -  Gather BIOS DMI information
>> - bmc_info        (1 test):
>> -  BMC Info
>> - boot            (1 test):
>> -  BOOT Table test.
>> - checksum        (1 test):
>> -  ACPI table checksum test.
>> - cpep            (1 test):
>> -  CPEP Corrected Platfor m Error Polling Table test.
>> - cpufreq         (7 tests):
>> -  CPU frequency table consistency
>> -  CPU frequency table duplicates
>> -  CPU frequency firmware limits
>> -  CPU frequency claimed maximum
>> -  CPU frequency SW_ANY control
>> -  CPU frequency SW_ALL control
>> -  CPU frequency performance tests.
>> - crs             (1 test):
>> -  Test PCI host bridge configuration using _CRS.
>> - csm             (1 test):
>> -  UEFI Compatibility Support Module test.
>> - csrt            (1 test):
>> -  CSRT Core System Resource Table test.
>> - cstates         (1 test):
>> -  Test all CPUs C-states.
>> - dbg2            (1 test):
>> -  DBG2 (Debug Port Table 2) test.
>> - dbgp            (1 test):
>> -  DBGP (Debug Port) Table test.
>> - dmar            (1 test):
>> -  DMA Remapping test.
>> - dmicheck        (3 tests):
>> -  Find and test SMBIOS Table Entry Points.
>> -  Test DMI/SMBIOS tables for errors.
>> -  Test DMI/SMBIOS3 tables for errors.
>> - dt_base         (3 tests):
>> -  Check device tree presence
>> -  Check device tree baseline validity
>> -  Check device tree warnings
>> - dt_sysinfo      (3 tests):
>> -  Check model property
>> -  Check system-id property
>> -  Check OpenPOWER Reference compatible
>> - ebda            (1 test):
>> -  Test EBDA is reserved in E820 table.
>> - ecdt            (1 test):
>> -  ECDT Embedded Controller Boot Resources Table test.
>> - einj            (1 test):
>> -  EINJ Error Injection Table test.
>> - erst            (1 test):
>> -  ERST Error Record Serialization Table test.
>> - facs            (1 test):
>> -  FACS Firmware ACPI Control Structure test.
>> - fadt            (6 tests):
>> -  ACPI FADT Description Table flag info.
>> -  FADT checksum test.
>> -  FADT revision test.
>> -  ACPI FADT Description Table tests.
>> -  Test FADT SCI_EN bit is enabled.
>> -  Test FADT reset register.
>> - fan             (2 tests):
>> -  Test fan status.
>> -  Load system, check CPU fan status.
>> - fpdt            (1 test):
>> -  FPDT Firmware Performance Data Table test.
>> - gtdt            (1 test):
>> -  GTDT Generic Timer Description Table test.
>> - hda_audio       (1 test):
>> -  HDA Audio Pin Configuration test.
>> - hest            (1 test):
>> -  HEST Hardware Error Source Table test.
>> - hpet            (4 tests):
>> -  Test HPET base in kernel log.
>> -  Test HPET base in HPET table.
>> -  Test HPET base in DSDT and/or SSDT.
>> -  Test HPET configuration.
>> - iort            (1 test):
>> -  IORT IO Remapping Table test.
>> - klog            (1 test):
>> -  Kernel log error check.
>> - lpit            (1 test):
>> -  LPIT Low Power Idle Table test.
>> - madt            (5 tests):
>> -  MADT checksum test.
>> -  MADT revision test.
>> -  MADT architecture minimum revision test.
>> -  MADT flags field reserved bits test.
>> -  MADT subtable tests.
>> - maxfreq         (1 test):
>> -  Maximum CPU frequency test.
>> - maxreadreq      (1 test):
>> -  Test firmware settings MaxReadReq for PCI Express devices.
>> - mcfg            (2 tests):
>> -  Validate MCFG table.
>> -  Validate MCFG PCI config space.
>> - mchi            (1 test):
>> -  MCHI Management Controller Host Interface Table test.
>> - method          (191 tests):
>> -  Test Method Names.
>> -  Test _AEI.
>> -  Test _EVT (Event Method).
>> -  Test _DLM (Device Lock Mutex).
>> -  Test _PIC (Inform AML of Interrupt Model).
>> -  Test _CID (Compatible ID).
>> -  Test _DDN (DOS Device Name).
>> -  Test _HID (Hardware ID).
>> -  Test _HRV (Hardware Revision Number).
>> -  Test _MLS (Multiple Language String).
>> -  Test _PLD (Physical Device Location).
>> -  Test _SUB (Subsystem ID).
>> -  Test _SUN (Slot User Number).
>> -  Test _STR (String).
>> -  Test _UID (Unique ID).
>> -  Test _CDM (Clock Domain).
>> -  Test _CRS (Current Resource Settings).
>> -  Test _DSD (Device Specific Data).
>> -  Test _DIS (Disable).
>> -  Test _DMA (Direct Memory Access).
>> -  Test _FIX (Fixed Register Resource Provider).
>> -  Test _GSB (Global System Interrupt Base).
>> -  Test _HPP (Hot Plug Parameters).
>> -  Test _PRS (Possible Resource Settings).
>> -  Test _PRT (PCI Routing Table).
>> -  Test _PXM (Proximity).
>> -  Test _CCA (Cache Coherency Attribute).
>> -  Test _EDL (Eject Device List).
>> -  Test _EJD (Ejection Dependent Device).
>> -  Test _EJ0 (Eject).
>> -  Test _EJ1 (Eject).
>> -  Test _EJ2 (Eject).
>> -  Test _EJ3 (Eject).
>> -  Test _EJ4 (Eject).
>> -  Test _LCK (Lock).
>> -  Test _RMV (Remove).
>> -  Test _STA (Status).
>> -  Test _DEP (Operational Region Dependencies).
>> -  Test _BDN (BIOS Dock Name).
>> -  Test _BBN (Base Bus Number).
>> -  Test _DCK (Dock).
>> -  Test _INI (Initialize).
>> -  Test _GLK (Global Lock).
>> -  Test _SEG (Segment).
>> -  Test _OFF (Set resource off).
>> -  Test _ON_ (Set resource on).
>> -  Test _DSW (Device Sleep Wake).
>> -  Test _IRC (In Rush Current).
>> -  Test _PRE (Power Resources for Enumeration).
>> -  Test _PR0 (Power Resources for D0).
>> -  Test _PR1 (Power Resources for D1).
>> -  Test _PR2 (Power Resources for D2).
>> -  Test _PR3 (Power Resources for D3).
>> -  Test _PRW (Power Resources for Wake).
>> -  Test _PS0 (Power State 0).
>> -  Test _PS1 (Power State 1).
>> -  Test _PS2 (Power State 2).
>> -  Test _PS3 (Power State 3).
>> -  Test _PSC (Power State Current).
>> -  Test _PSE (Power State for Enumeration).
>> -  Test _PSW (Power State Wake).
>> -  Test _S1D (S1 Device State).
>> -  Test _S2D (S2 Device State).
>> -  Test _S3D (S3 Device State).
>> -  Test _S4D (S4 Device State).
>> -  Test _S0W (S0 Device Wake State).
>> -  Test _S1W (S1 Device Wake State).
>> -  Test _S2W (S2 Device Wake State).
>> -  Test _S3W (S3 Device Wake State).
>> -  Test _S4W (S4 Device Wake State).
>> -  Test _RST (Device Reset).
>> -  Test _PRR (Power Resource for Reset).
>> -  Test _S0_ (S0 System State).
>> -  Test _S1_ (S1 System State).
>> -  Test _S2_ (S2 System State).
>> -  Test _S3_ (S3 System State).
>> -  Test _S4_ (S4 System State).
>> -  Test _S5_ (S5 System State).
>> -  Test _SWS (System Wake Source).
>> -  Test _PSS (Performance Supported States).
>> -  Test _CPC (Continuous Performance Control).
>> -  Test _CSD (C State Dependencies).
>> -  Test _CST (C States).
>> -  Test _PCT (Performance Control).
>> -  Test _PDL (P-State Depth Limit).
>> -  Test _PPC (Performance Present Capabilities).
>> -  Test _PPE (Polling for Platform Error).
>> -  Test _PSD (Power State Dependencies).
>> -  Test _PTC (Processor Throttling Control).
>> -  Test _TDL (T-State Depth Limit).
>> -  Test _TPC (Throttling Present Capabilities).
>> -  Test _TSD (Throttling State Dependencies).
>> -  Test _TSS (Throttling Supported States).
>> -  Test _LPI (Low Power Idle States).
>> -  Test _RDI (Resource Dependencies for Idle).
>> -  Test _PUR (Processor Utilization Request).
>> -  Test _MSG (Message).
>> -  Test _SST (System Status).
>> -  Test _ALC (Ambient Light Colour Chromaticity).
>> -  Test _ALI (Ambient Light Illuminance).
>> -  Test _ALT (Ambient Light Temperature).
>> -  Test _ALP (Ambient Light Polling).
>> -  Test _ALR (Ambient Light Response).
>> -  Test _LID (Lid Status).
>> -  Test _GTF (Get Task File).
>> -  Test _GTM (Get Timing Mode).
>> -  Test _MBM (Memory Bandwidth Monitoring Data).
>> -  Test _UPC (USB Port Capabilities).
>> -  Test _UPD (User Presence Detect).
>> -  Test _UPP (User Presence Polling).
>> -  Test _GCP (Get Capabilities).
>> -  Test _GRT (Get Real Time).
>> -  Test _GWS (Get Wake Status).
>> -  Test _CWS (Clear Wake Status).
>> -  Test _STP (Set Expired Timer Wake Policy).
>> -  Test _STV (Set Timer Value).
>> -  Test _TIP (Expired Timer Wake Policy).
>> -  Test _TIV (Timer Values).
>> -  Test _SBS (Smart Battery Subsystem).
>> -  Test _BCT (Battery Charge Time).
>> -  Test _BIF (Battery Information).
>> -  Test _BIX (Battery Information Extended).
>> -  Test _BMA (Battery Measurement Averaging).
>> -  Test _BMC (Battery Maintenance Control).
>> -  Test _BMD (Battery Maintenance Data).
>> -  Test _BMS (Battery Measurement Sampling Time).
>> -  Test _BST (Battery Status).
>> -  Test _BTP (Battery Trip Point).
>> -  Test _BTH (Battery Throttle Limit).
>> -  Test _BTM (Battery Time).
>> -  Test _PCL (Power Consumer List).
>> -  Test _PIF (Power Source Information).
>> -  Test _PRL (Power Source Redundancy List).
>> -  Test _PSR (Power Source).
>> -  Test _GAI (Get Averaging Level).
>> -  Test _GHL (Get Harware Limit).
>> -  Test _PMC (Power Meter Capabilities).
>> -  Test _PMD (Power Meter Devices).
>> -  Test _PMM (Power Meter Measurement).
>> -  Test _WPC (Wireless Power Calibration).
>> -  Test _WPP (Wireless Power Polling).
>> -  Test _FIF (Fan Information).
>> -  Test _FPS (Fan Performance States).
>> -  Test _FSL (Fan Set Level).
>> -  Test _FST (Fan Status).
>> -  Test _ACx (Active Cooling).
>> -  Test _ART (Active Cooling Relationship Table).
>> -  Test _CRT (Critical Trip Point).
>> -  Test _CR3 (Warm/Standby Temperature).
>> -  Test _DTI (Device Temperature Indication).
>> -  Test _HOT (Hot Temperature).
>> -  Test _MTL (Minimum Throttle Limit).
>> -  Test _NTT (Notification Temp Threshold).
>> -  Test _PSL (Passive List).
>> -  Test _PSV (Passive Temp).
>> -  Test _RTV (Relative Temp Values).
>> -  Test _SCP (Set Cooling Policy).
>> -  Test _TC1 (Thermal Constant 1).
>> -  Test _TC2 (Thermal Constant 2).
>> -  Test _TFP (Thermal fast Sampling Period).
>> -  Test _TMP (Thermal Zone Current Temp).
>> -  Test _TPT (Trip Point Temperature).
>> -  Test _TRT (Thermal Relationship Table).
>> -  Test _TSN (Thermal Sensor Device).
>> -  Test _TSP (Thermal Sampling Period).
>> -  Test _TST (Temperature Sensor Threshold).
>> -  Test _TZD (Thermal Zone Devices).
>> -  Test _TZM (Thermal Zone member).
>> -  Test _TZP (Thermal Zone Polling).
>> -  Test _GPE (General Purpose Events).
>> -  Test _EC_ (EC Offset Query).
>> -  Test _PTS (Prepare to Sleep).
>> -  Test _TTS (Transition to State).
>> -  Test _WAK (System Wake).
>> -  Test _ADR (Return Unique ID for Device).
>> -  Test _BCL (Query List of Brightness Control Levels Supported).
>> -  Test _BCM (Set Brightness Level).
>> -  Test _BQC (Brightness Query Current Level).
>> -  Test _DCS (Return the Status of Output Device).
>> -  Test _DDC (Return the EDID for this Device).
>> -  Test _DSS (Device Set State).
>> -  Test _DGS (Query Graphics State).
>> -  Test _DOD (Enumerate All Devices Attached to Display Adapter).
>> -  Test _DOS (Enable/Disable Output Switching).
>> -  Test _GPD (Get POST Device).
>> -  Test _ROM (Get ROM Data).
>> -  Test _SPD (Set POST Device).
>> -  Test _VPO (Video POST Options).
>> -  Test _CBA (Configuration Base Address).
>> -  Test _IFT (IPMI Interface Type).
>> -  Test _SRV (IPMI Interface Revision).
>> - microcode       (1 test):
>> -  Test for most recent microcode being loaded.
>> - mpcheck         (9 tests):
>> -  Test MP header.
>> -  Test MP CPU entries.
>> -  Test MP Bus entries.
>> -  Test MP IO APIC entries.
>> -  Test MP IO Interrupt entries.
>> -  Test MP Local Interrupt entries.
>> -  Test MP System Address entries.
>> -  Test MP Bus Hierarchy entries.
>> -  Test MP Compatible Bus Address Space entries.
>> - msct            (1 test):
>> -  MSCT Maximum System Characteristics Table test.
>> - msdm            (1 test):
>> -  MSDM Microsoft Data Management Table test.
>> - msr             (5 tests):
>> -  Test CPU generic MSRs.
>> -  Test CPU specific model MSRs.
>> -  Test all P State Ratios.
>> -  Test C1 and C3 autodemotion.
>> -  Test SMRR MSR registers.
>> - mtrr            (3 tests):
>> -  Validate the kernel MTRR IOMEM setup.
>> -  Validate the MTRR setup across all processors.
>> -  Test for AMD MtrrFixDramModEn being cleared by the BIOS.
>> - nx              (3 tests):
>> -  Test CPU NX capability.
>> -  Test all CPUs have same BIOS set NX flag.
>> -  Test all CPUs have same msr setting in MSR 0x1a0.
>> - olog            (1 test):
>> -  OLOG scan and analysis checks results.
>> - oops            (1 test):
>> -  Kernel log oops check.
>> - osilinux        (1 test):
>> -  Disassemble DSDT to check for _OSI("Linux").
>> - pcc             (1 test):
>> -  Processor Clocking Control (PCC) test.
>> - pciirq          (1 test):
>> -  PCI IRQ Routing Table test.
>> - pnp             (1 test):
>> -  PnP BIOS Support Installation structure test.
>> - prd_info        (1 test):
>> -  OPAL Processor Recovery Diagnostics Info
>> - rsdp            (1 test):
>> -  RSDP Root System Description Pointer test.
>> - rsdt            (1 test):
>> -  RSDT Root System Description Table test.
>> - sbst            (1 test):
>> -  SBST Smart Battery Specificiation Table test.
>> - securebootcert  (1 test):
>> -  UEFI secure boot test.
>> - slic            (1 test):
>> -  SLIC Software Licensing Description Table test.
>> - slit            (1 test):
>> -  SLIT System Locality Distance Information test.
>> - spcr            (1 test):
>> -  SPCR Serial Port Console Redirection Table test.
>> - spmi            (1 test):
>> -  SPMI Service Processor Management Interface Description Table test.
>> - srat            (1 test):
>> -  SRAT System Resource Affinity Table test.
>> - stao            (1 test):
>> -  STAO Status Override Table test.
>> - syntaxcheck     (1 test):
>> -  Disassemble and reassemble DSDT and SSDTs.
>> - tcpa            (1 test):
>> -  Validate TCPA table.
>> - tpm2            (1 test):
>> -  Validate TPM2 table.
>> - uefi            (1 test):
>> -  UEFI Data Table test.
>> - uefibootpath    (1 test):
>> -  Test UEFI Boot Path Boot####.
>> - version         (4 tests):
>> -  Gather kernel signature.
>> -  Gather kernel system information.
>> -  Gather kernel boot command line.
>> -  Gather ACPI driver version.
>> - virt            (1 test):
>> -  CPU Virtualisation Configuration test.
>> - waet            (1 test):
>> -  Windows ACPI Emulated Devices Table test.
>> - wakealarm       (5 tests):
>> -  Test existence of RTC with alarm interface.
>> -  Trigger wakealarm for 1 seconds in the future.
>> -  Test if wakealarm is fired.
>> -  Multiple wakealarm firing tests.
>> -  Reset wakealarm time.
>> - wdat            (1 test):
>> -  WDAT Microsoft Hardware Watchdog Action Table test.
>> - wmi             (1 test):
>> -  Windows Management Instrumentation test.
>> - xenv            (1 test):
>> -  Validate XENV table.
>> - xsdt            (1 test):
>> -  XSDT Extended System Description Table test.
>> -
>> -Interactive tests:
>> - ac_adapter      (3 tests):
>> -  Test ACPI ac_adapter state.
>> -  Test ac_adapter initial on-line state.
>> -  Test ac_adapter state changes.
>> - battery         (1 test):
>> -  Battery test.
>> - brightness      (3 tests):
>> -  Observe all brightness changes.
>> -  Observe min, max brightness changes.
>> -  Test brightness hotkeys.
>> - hotkey          (1 test):
>> -  Hotkey keypress checks.
>> - lid             (3 tests):
>> -  Test LID buttons report open correctly.
>> -  Test LID buttons on a single open/close.
>> -  Test LID buttons on multiple open/close events.
>> - power_button    (1 test):
>> -  Test press of power button and ACPI event.
>> -
>> -Power States tests:
>> - s3              (1 test):
>> -  S3 suspend/resume test.
>> - s3power         (1 test):
>> -  S3 power loss during suspend test.
>> - s4              (1 test):
>> -  S4 hibernate/resume test.
>> -
>> -Utilities:
>> - acpidump        (1 test):
>> -  Dump ACPI tables.
>> - cmosdump        (1 test):
>> -  Dump CMOS Memory.
>> - crsdump         (1 test):
>> -  Dump ACPI _CRS (Current Resource Settings).
>> - ebdadump        (1 test):
>> -  Dump EBDA region.
>> - esrtdump        (1 test):
>> -  Dump ESRT Table.
>> - gpedump         (1 test):
>> -  Dump GPEs.
>> - memmapdump      (1 test):
>> -  Dump system memory map.
>> - mpdump          (1 test):
>> -  Dump Multi Processor Data.
>> - plddump         (1 test):
>> -  Dump ACPI _PLD (Physical Device Location).
>> - prsdump         (1 test):
>> -  Dump ACPI _PRS (Possible Resource Settings).
>> - romdump         (1 test):
>> -  Dump ROM data.
>> - uefidump        (1 test):
>> -  Dump UEFI Variables.
>> - uefivarinfo     (1 test):
>> -  UEFI variable info query.
>> -
>> -Unsafe tests:
>> - uefirtauthvar   (12 tests):
>> -  Create authenticated variable test.
>> -  Authenticated variable test with the same authenticated variable.
>> -  Authenticated variable test with another valid authenticated
variable.
>> -  Append authenticated variable test.
>> -  Update authenticated variable test.
>> -  Authenticated variable test with old authenticated variable.
>> -  Delete authenticated variable test.
>> -  Authenticated variable test with invalid modified data.
>> -  Authenticated variable test with invalid modified timestamp.
>> -  Authenticated variable test with different guid.
>> -  Authenticated variable test with invalid attributes.
>> -  Set and delete authenticated variable created by different key test.
>> - uefirtmisc      (3 tests):
>> -  Test for UEFI miscellaneous runtime service interfaces.
>> -  Stress test for UEFI miscellaneous runtime service interfaces.
>> -  Test GetNextHighMonotonicCount with invalid NULL parameter.
>> - uefirttime      (35 tests):
>> -  Test UEFI RT service get time interface.
>> -  Test UEFI RT service get time interface, NULL time parameter.
>> -  Test UEFI RT service get time interface, NULL time and NULL
> capabilties parameters.
>> -  Test UEFI RT service set time interface.
>> -  Test UEFI RT service set time interface, invalid year 1899.
>> -  Test UEFI RT service set time interface, invalid year 10000.
>> -  Test UEFI RT service set time interface, invalid month 0.
>> -  Test UEFI RT service set time interface, invalid month 13.
>> -  Test UEFI RT service set time interface, invalid day 0.
>> -  Test UEFI RT service set time interface, invalid day 32.
>> -  Test UEFI RT service set time interface, invalid hour 24.
>> -  Test UEFI RT service set time interface, invalid minute 60.
>> -  Test UEFI RT service set time interface, invalid second 60.
>> -  Test UEFI RT service set time interface, invalid nanosecond
1000000000.
>> -  Test UEFI RT service set time interface, invalid timezone -1441.
>> -  Test UEFI RT service set time interface, invalid timezone 1441.
>> -  Test UEFI RT service get wakeup time interface.
>> -  Test UEFI RT service get wakeup time interface, NULL enabled
parameter.
>> -  Test UEFI RT service get wakeup time interface, NULL pending
parameter.
>> -  Test UEFI RT service get wakeup time interface, NULL time parameter.
>> -  Test UEFI RT service get wakeup time interface, NULL enabled,
> pending and time parameters.
>> -  Test UEFI RT service set wakeup time interface.
>> -  Test UEFI RT service set wakeup time interface, NULL time parameter.
>> -  Test UEFI RT service set wakeup time interface, invalid year 1899.
>> -  Test UEFI RT service set wakeup time interface, invalid year 10000.
>> -  Test UEFI RT service set wakeup time interface, invalid month 0.
>> -  Test UEFI RT service set wakeup time interface, invalid month 13.
>> -  Test UEFI RT service set wakeup time interface, invalid day 0.
>> -  Test UEFI RT service set wakeup time interface, invalid day 32.
>> -  Test UEFI RT service set wakeup time interface, invalid hour 24.
>> -  Test UEFI RT service set wakeup time interface, invalid minute 60.
>> -  Test UEFI RT service set wakeup time interface, invalid second 60.
>> -  Test UEFI RT service set wakeup time interface, invalid nanosecond
> 1000000000.
>> -  Test UEFI RT service set wakeup time interface, invalid timezone
-1441.
>> -  Test UEFI RT service set wakeup time interface, invalid timezone
1441.
>> - uefirtvariable  (8 tests):
>> -  Test UEFI RT service get variable interface.
>> -  Test UEFI RT service get next variable name interface.
>> -  Test UEFI RT service set variable interface.
>> -  Test UEFI RT service query variable info interface.
>> -  Test UEFI RT service variable interface stress test.
>> -  Test UEFI RT service set variable interface stress test.
>> -  Test UEFI RT service query variable info interface stress test.
>> -  Test UEFI RT service get variable interface, invalid parameters.
>> -
>> -UEFI tests:
>> - csm             (1 test):
>> -  UEFI Compatibility Support Module test.
>> - esrt            (1 test):
>> -  Sanity check UEFI ESRT Table.
>> - securebootcert  (1 test):
>> -  UEFI secure boot test.
>> - uefibootpath    (1 test):
>> -  Test UEFI Boot Path Boot####.
>> - uefirtauthvar   (12 tests):
>> -  Create authenticated variable test.
>> -  Authenticated variable test with the same authenticated variable.
>> -  Authenticated variable test with another valid authenticated
variable.
>> -  Append authenticated variable test.
>> -  Update authenticated variable test.
>> -  Authenticated variable test with old authenticated variable.
>> -  Delete authenticated variable test.
>> -  Authenticated variable test with invalid modified data.
>> -  Authenticated variable test with invalid modified timestamp.
>> -  Authenticated variable test with different guid.
>> -  Authenticated variable test with invalid attributes.
>> -  Set and delete authenticated variable created by different key test.
>> - uefirtmisc      (3 tests):
>> -  Test for UEFI miscellaneous runtime service interfaces.
>> -  Stress test for UEFI miscellaneous runtime service interfaces.
>> -  Test GetNextHighMonotonicCount with invalid NULL parameter.
>> - uefirttime      (35 tests):
>> -  Test UEFI RT service get time interface.
>> -  Test UEFI RT service get time interface, NULL time parameter.
>> -  Test UEFI RT service get time interface, NULL time and NULL
> capabilties parameters.
>> -  Test UEFI RT service set time interface.
>> -  Test UEFI RT service set time interface, invalid year 1899.
>> -  Test UEFI RT service set time interface, invalid year 10000.
>> -  Test UEFI RT service set time interface, invalid month 0.
>> -  Test UEFI RT service set time interface, invalid month 13.
>> -  Test UEFI RT service set time interface, invalid day 0.
>> -  Test UEFI RT service set time interface, invalid day 32.
>> -  Test UEFI RT service set time interface, invalid hour 24.
>> -  Test UEFI RT service set time interface, invalid minute 60.
>> -  Test UEFI RT service set time interface, invalid second 60.
>> -  Test UEFI RT service set time interface, invalid nanosecond
1000000000.
>> -  Test UEFI RT service set time interface, invalid timezone -1441.
>> -  Test UEFI RT service set time interface, invalid timezone 1441.
>> -  Test UEFI RT service get wakeup time interface.
>> -  Test UEFI RT service get wakeup time interface, NULL enabled
parameter.
>> -  Test UEFI RT service get wakeup time interface, NULL pending
parameter.
>> -  Test UEFI RT service get wakeup time interface, NULL time parameter.
>> -  Test UEFI RT service get wakeup time interface, NULL enabled,
> pending and time parameters.
>> -  Test UEFI RT service set wakeup time interface.
>> -  Test UEFI RT service set wakeup time interface, NULL time parameter.
>> -  Test UEFI RT service set wakeup time interface, invalid year 1899.
>> -  Test UEFI RT service set wakeup time interface, invalid year 10000.
>> -  Test UEFI RT service set wakeup time interface, invalid month 0.
>> -  Test UEFI RT service set wakeup time interface, invalid month 13.
>> -  Test UEFI RT service set wakeup time interface, invalid day 0.
>> -  Test UEFI RT service set wakeup time interface, invalid day 32.
>> -  Test UEFI RT service set wakeup time interface, invalid hour 24.
>> -  Test UEFI RT service set wakeup time interface, invalid minute 60.
>> -  Test UEFI RT service set wakeup time interface, invalid second 60.
>> -  Test UEFI RT service set wakeup time interface, invalid nanosecond
> 1000000000.
>> -  Test UEFI RT service set wakeup time interface, invalid timezone
-1441.
>> -  Test UEFI RT service set wakeup time interface, invalid timezone
1441.
>> - uefirtvariable  (8 tests):
>> -  Test UEFI RT service get variable interface.
>> -  Test UEFI RT service get next variable name interface.
>> -  Test UEFI RT service set variable interface.
>> -  Test UEFI RT service query variable info interface.
>> -  Test UEFI RT service variable interface stress test.
>> -  Test UEFI RT service set variable interface stress test.
>> -  Test UEFI RT service query variable info interface stress test.
>> -  Test UEFI RT service get variable interface, invalid parameters.
>> -
>> -ACPI Spec Compliance tests:
>> - fadt            (6 tests):
>> -  ACPI FADT Description Table flag info.
>> -  FADT checksum test.
>> -  FADT revision test.
>> -  ACPI FADT Description Table tests.
>> -  Test FADT SCI_EN bit is enabled.
>> -  Test FADT reset register.
>> - madt            (5 tests):
>> -  MADT checksum test.
>> -  MADT revision test.
>> -  MADT architecture minimum revision test.
>> -  MADT flags field reserved bits test.
>> -  MADT subtable tests.
>> - rsdp            (1 test):
>> -  RSDP Root System Description Pointer test.
>> diff --git a/fwts-test/arg-show-tests-full-0001/test-0001.sh
> b/fwts-test/arg-show-tests-full-0001/test-0001.sh
>> index b4e74f7..1302bd3 100755
>> --- a/fwts-test/arg-show-tests-full-0001/test-0001.sh
>> +++ b/fwts-test/arg-show-tests-full-0001/test-0001.sh
>> @@ -3,17 +3,25 @@
>>  TEST="Test --show-tests-full option"
>>  NAME=test-0001.sh
>>  TMPLOG=$TMP/arg-show-tests-full.log.$$
>> +export FWTS_SHOW_LOGS="FULL"
>> +
>> +# Dynamically create the log template per test
>> +$FWTS show_logs &> /dev/null
>> +if [ $? -ne 0 ]; then
>> + echo SKIP: $TEST, $NAME
>> + exit 77
>> +fi
>>
>>  #
>> -#  Non-x86 tests don't have WMI so skip this test
>> +#  If we can't set the tty then we can't test
>>  #
>> -$FWTS --show-tests | grep wmi > /dev/null
>> -if [ $? -eq 1 ]; then
>> +stty cols 80 &> /dev/null
>> +if [ $? -ne 0 ]; then
>> + tset &> /dev/null
>>   echo SKIP: $TEST, $NAME
>>   exit 77
>>  fi
>>
>> -stty cols 80
>>  $FWTS --show-tests-full > $TMPLOG
>>  diff $TMPLOG
> $FWTSTESTDIR/arg-show-tests-full-0001/arg-show-tests-full-0001.log >>
> $FAILURE_LOG
>>  ret=$?
>> @@ -23,5 +31,8 @@ else
>>   echo FAILED: $TEST, $NAME
>>  fi
>>
>> +stty cols 80 &> /dev/null
>> +tset &> /dev/null
>> +
>>  rm $TMPLOG
>>  exit $ret
>> diff --git a/src/Makefile.am b/src/Makefile.am
>> index 100eaa3..8ac67b4 100644
>> --- a/src/Makefile.am
>> +++ b/src/Makefile.am
>> @@ -132,6 +132,7 @@ fwts_SOURCES = main.c \
>>   pci/aspm/aspm.c \
>>   pci/crs/crs.c \
>>   pci/maxreadreq/maxreadreq.c \
>> + show/show_logs.c \
>>   uefi/csm/csm.c \
>>   uefi/uefidump/uefidump.c \
>>   uefi/uefirttime/uefirttime.c \
>> diff --git a/src/show/show_logs.c b/src/show/show_logs.c
>> new file mode 100644
>> index 0000000..7b958ff
>> --- /dev/null
>> +++ b/src/show/show_logs.c
>> @@ -0,0 +1,1480 @@
>> +/*
>> + * Copyright (C) 2010-2016 Canonical
>> + * Some of this work - Copyright (C) 2016 IBM
>> + *
>> + * 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 2
>> + * 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, write to the Free Software
>> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
> 02110-1301, USA.
>> + *
>> + */
>> +
>> +
>> +#include "fwts.h"
>> +
>> +static char *fwts_show[] = {
>> +"ACPI tests:",
>> +" acpiinfo        General ACPI information test.",
>> +" acpitables      ACPI table headers sanity tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" apicinstance    Test for single instance of APIC/MADT table.",
>> +#endif
>> +" asf             ASF! Alert Standard Format Table test.",
>> +" aspt            ASPT Table test.",
>> +" bert            BERT Boot Error Record Table test.",
>> +" bgrt            BGRT Boot Graphics Resource Table test.",
>> +" boot            BOOT Table test.",
>> +" checksum        ACPI table checksum test.",
>> +" cpep            CPEP Corrected Platform Error Polling Table test.",
>> +" csrt            CSRT Core System Resource Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" cstates         Processor C state support test.",
>> +#endif
>> +" dbg2            DBG2 (Debug Port Table 2) test.",
>> +" dbgp            DBGP (Debug Port) Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" dmar            DMA Remapping (VT-d) test.",
>> +#endif
>> +" ecdt            ECDT Embedded Controller Boot Resources Table test.",
>> +" einj            EINJ Error Injection Table test.",
>> +" erst            ERST Error Record Serialization Table test.",
>> +" facs            FACS Firmware ACPI Control Structure test.",
>> +" fadt            FADT Fixed ACPI Description Table tests.",
>> +" fpdt            FPDT Firmware Performance Data Table test.",
>> +" gtdt            GTDT Generic Timer Description Table test.",
>> +" hest            HEST Hardware Error Source Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" hpet            HPET IA-PC High Precision Event Timer Table tests.",
>> +#endif
>> +" iort            IORT IO Remapping Table test.",
>> +" lpit            LPIT Low Power Idle Table test.",
>> +" madt            MADT Multiple APIC Description Table "
>> + "(spec compliant).",
>> +#ifdef FWTS_ARCH_INTEL
>> +" mcfg            MCFG PCI Express* memory mapped config space test.",
>> +#endif
>> +" mchi            MCHI Management Controller Host Interface"
>> + " Table test.",
>> +" method          ACPI DSDT Method Semantic tests.",
>> +" msct            MSCT Maximum System Characteristics Table test.",
>> +" msdm            MSDM Microsoft Data Management Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" pcc             Processor Clocking Control (PCC) test.",
>> +#endif
>> +" rsdp            RSDP Root System Description Pointer test.",
>> +" rsdt            RSDT Root System Description Table test.",
>> +" sbst            SBST Smart Battery Specification Table test.",
>> +" slic            SLIC Software Licensing Description Table test.",
>> +" slit            SLIT System Locality Distance Information test.",
>> +" spcr            SPCR Serial Port Console Redirection Table test.",
>> +" spmi            SPMI Service Processor Management Interface"
>> + " Description Table test.",
>> +" srat            SRAT System Resource Affinity Table test.",
>> +" stao            STAO Status Override Table test.",
>> +" tcpa            TCPA Trusted Computing Platform Alliance"
>> + " Capabilities Table test.",
>> +" tpm2            TPM2 Trusted Platform Module 2 test.",
>> +" uefi            UEFI Data Table test.",
>> +" waet            WAET Windows ACPI Emulated Devices Table test.",
>> +" wdat            WDAT Microsoft Hardware Watchdog Action Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" wmi             Extract and analyse Windows Management"
>> + " Instrumentation (WMI).",
>> +#endif
>> +" xenv            XENV Xen Environment Table tests.",
>> +" xsdt            XSDT Extended System Description Table test.",
>> +" ",
>> +"Batch tests:",
>> +" acpiinfo        General ACPI information test.",
>> +" acpitables      ACPI table headers sanity tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" apicedge        APIC edge/level test.",
>> +" apicinstance    Test for single instance of APIC/MADT table.",
>> +#endif
>> +" asf             ASF! Alert Standard Format Table test.",
>> +" aspm            PCIe ASPM test.",
>> +" aspt            ASPT Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" autobrightness  Automated LCD brightness test.",
>> +#endif
>> +" bert            BERT Boot Error Record Table test.",
>> +" bgrt            BGRT Boot Graphics Resource Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" bios32          BIOS32 Service Directory test.",
>> +" bios_info       Gather BIOS DMI information.",
>> +#endif
>> +" bmc_info        BMC Info",
>> +" boot            BOOT Table test.",
>> +" checksum        ACPI table checksum test.",
>> +" cpep            CPEP Corrected Platform Error Polling Table test.",
>> +" cpufreq         CPU frequency scaling tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" crs             Test PCI host bridge configuration using _CRS.",
>> +" csm             UEFI Compatibility Support Module test.",
>> +#endif
>> +" csrt            CSRT Core System Resource Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" cstates         Processor C state support test.",
>> +#endif
>> +" dbg2            DBG2 (Debug Port Table 2) test.",
>> +" dbgp            DBGP (Debug Port) Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" dmar            DMA Remapping (VT-d) test.",
>> +" dmicheck        DMI/SMBIOS table tests.",
>> +#endif
>> +#ifdef HAVE_LIBFDT
>> +" dt_base         Base device tree validity check",
>> +" dt_sysinfo      Device tree system information test",
>> +#endif
>> +#ifdef FWTS_ARCH_INTEL
>> +" ebda            Test EBDA region is mapped and reserved in memory"
>> + " map table.",
>> +#endif
>> +" ecdt            ECDT Embedded Controller Boot Resources Table test.",
>> +" einj            EINJ Error Injection Table test.",
>> +" erst            ERST Error Record Serialization Table test.",
>> +" facs            FACS Firmware ACPI Control Structure test.",
>> +" fadt            FADT Fixed ACPI Description Table tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" fan             Simple fan tests.",
>> +#endif
>> +" fpdt            FPDT Firmware Performance Data Table test.",
>> +" gtdt            GTDT Generic Timer Description Table test.",
>> +" hda_audio       HDA Audio Pin Configuration test.",
>> +" hest            HEST Hardware Error Source Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" hpet            HPET IA-PC High Precision Event Timer Table tests.",
>> +#endif
>> +" iort            IORT IO Remapping Table test.",
>> +" klog            Scan kernel log for errors and warnings.",
>> +" lpit            LPIT Low Power Idle Table test.",
>> +" madt            MADT Multiple APIC Description Table"
>> + " (spec compliant).",
>> +#ifdef FWTS_ARCH_INTEL
>> +" maxfreq         Test max CPU frequencies against max scaling"
>> + " frequency.",
>> +#endif
>> +" maxreadreq      Test firmware has set PCI Express MaxReadReq to a"
>> + " higher value on non-motherboard devices.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" mcfg            MCFG PCI Express* memory mapped config space test.",
>> +#endif
>> +" mchi            MCHI Management Controller Host Interface Table
test.",
>> +" method          ACPI DSDT Method Semantic tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" microcode       Test if system is using latest microcode.",
>> +" mpcheck         MultiProcessor Tables tests.",
>> +#endif
>> +" msct            MSCT Maximum System Characteristics Table test.",
>> +" msdm            MSDM Microsoft Data Management Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" msr             MSR register tests.",
>> +" mtrr            MTRR tests.",
>> +#endif
>> +#ifdef FWTS_ARCH_INTEL
>> +" nx              Test if CPU NX is disabled by the BIOS.",
>> +#endif
>> +" olog            Run OLOG scan and analysis checks.",
>> +" oops            Scan kernel log for Oopses.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" osilinux        Disassemble DSDT to check for _OSI(\"Linux\").",
>> +" pcc             Processor Clocking Control (PCC) test.",
>> +" pciirq          PCI IRQ Routing Table test.",
>> +" pnp             BIOS Support Installation structure test.",
>> +#endif
>> +" prd_info        OPAL Processor Recovery Diagnostics Info",
>> +" rsdp            RSDP Root System Description Pointer test.",
>> +" rsdt            RSDT Root System Description Table test.",
>> +" sbst            SBST Smart Battery Specification Table test.",
>> +" securebootcert  UEFI secure boot test.",
>> +" show_logs       Show Tests Log Files",
>> +" slic            SLIC Software Licensing Description Table test.",
>> +" slit            SLIT System Locality Distance Information test.",
>> +" spcr            SPCR Serial Port Console Redirection Table test.",
>> +" spmi            SPMI Service Processor Management Interface"
>> + " Description Table test.",
>> +" srat            SRAT System Resource Affinity Table test.",
>> +" stao            STAO Status Override Table test.",
>> +" syntaxcheck     Re-assemble DSDT and SSDTs to find syntax errors"
>> + " and warnings.",
>> +" tcpa            TCPA Trusted Computing Platform Alliance"
>> + " Capabilities Table test.",
>> +" tpm2            TPM2 Trusted Platform Module 2 test.",
>> +" uefi            UEFI Data Table test.",
>> +" uefibootpath    Sanity check for UEFI Boot Path Boot####.",
>> +" version         Gather kernel system information.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" virt            CPU Virtualisation Configuration test.",
>> +#endif
>> +" waet            WAET Windows ACPI Emulated Devices Table test.",
>> +" wakealarm       ACPI Wakealarm tests.",
>> +" wdat            WDAT Microsoft Hardware Watchdog Action Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" wmi             Extract and analyse Windows Management"
>> + " Instrumentation (WMI).",
>> +#endif
>> +" xenv            XENV Xen Environment Table tests.",
>> +" xsdt            XSDT Extended System Description Table test.",
>> +"",
>> +#ifdef FWTS_ARCH_INTEL
>> +"Interactive tests:",
>> +" ac_adapter      Interactive ac_adapter power test.",
>> +" battery         Battery tests.",
>> +" brightness      Interactive LCD brightness test.",
>> +" hotkey          Hotkey scan code tests.",
>> +" lid             Interactive lid button test.",
>> +" power_button    Interactive power_button button test.",
>> +"",
>> +"Power States tests:",
>> +" s3              S3 suspend/resume test.",
>> +" s3power         S3 power loss during suspend test (takes minimum"
>> + " of 10 minutes to run).",
>> +" s4              S4 hibernate/resume test.",
>> +"",
>> +#endif
>> +"Utilities:",
>> +" acpidump        Dump ACPI tables.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" cmosdump        Dump CMOS Memory.",
>> +#endif
>> +" crsdump         Dump ACPI _CRS resources.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" ebdadump        Dump EBDA region.",
>> +#endif
>> +" esrtdump        Dump ESRT table.",
>> +" gpedump         Dump GPEs.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" memmapdump      Dump system memory map.",
>> +" mpdump          Dump MultiProcessor Data.",
>> +#endif
>> +" plddump         Dump ACPI _PLD (Physical Device Location).",
>> +" prsdump         Dump ACPI _PRS resources.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" romdump         Dump ROM data.",
>> +#endif
>> +" uefidump        Dump UEFI variables.",
>> +" uefivarinfo     UEFI variable info query.",
>> +"",
>> +"Unsafe tests:",
>> +" uefirtauthvar   Authenticated variable tests.",
>> +" uefirtmisc      UEFI miscellaneous runtime service interface tests.",
>> +" uefirttime      UEFI Runtime service time interface tests.",
>> +" uefirtvariable  UEFI Runtime service variable interface tests.",
>> +"",
>> +"UEFI tests:",
>> +#ifdef FWTS_ARCH_INTEL
>> +" csm             UEFI Compatibility Support Module test.",
>> +#endif
>> +" esrt            Sanity check UEFI ESRT Table.",
>> +" securebootcert  UEFI secure boot test.",
>> +" uefibootpath    Sanity check for UEFI Boot Path Boot####.",
>> +" uefirtauthvar   Authenticated variable tests.",
>> +" uefirtmisc      UEFI miscellaneous runtime service interface tests.",
>> +" uefirttime      UEFI Runtime service time interface tests.",
>> +" uefirtvariable  UEFI Runtime service variable interface tests.",
>> +"",
>> +"ACPI Spec Compliance tests:",
>> +" fadt            FADT Fixed ACPI Description Table tests.",
>> +" madt            MADT Multiple APIC Description Table"
>> + " (spec compliant).",
>> +" rsdp            RSDP Root System Description Pointer test.",
>> +};
>> +
>> +static char *fwts_show_all[] = {
>> +"ACPI tests:",
>> +" acpiinfo        (3 tests):",
>> +"  Determine Kernel ACPI version.",
>> +"  Determine machine's ACPI version.",
>> +"  Determine AML compiler.",
>> +" acpitables      (1 test):",
>> +"  Test ACPI headers.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" apicinstance    (1 test):",
>> +"  Test for single instance of APIC/MADT table.",
>> +#endif
>> +" asf             (1 test):",
>> +"  ASF! Alert Standard Format Table test.",
>> +" aspt            (1 test):",
>> +"  ASPT Table test.",
>> +" bert            (1 test):",
>> +"  BERT Boot Error Record Table test.",
>> +" bgrt            (1 test):",
>> +"  BGRT Boot Graphics Resource Table test.",
>> +" boot            (1 test):",
>> +"  BOOT Table test.",
>> +" checksum        (1 test):",
>> +"  ACPI table checksum test.",
>> +" cpep            (1 test):",
>> +"  CPEP Corrected Platform Error Polling Table test.",
>> +" csrt            (1 test):",
>> +"  CSRT Core System Resource Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" cstates         (1 test):",
>> +"  Test all CPUs C-states.",
>> +#endif
>> +" dbg2            (1 test):",
>> +"  DBG2 (Debug Port Table 2) test.",
>> +" dbgp            (1 test):",
>> +"  DBGP (Debug Port) Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" dmar            (1 test):",
>> +"  DMA Remapping test.",
>> +#endif
>> +" ecdt            (1 test):",
>> +"  ECDT Embedded Controller Boot Resources Table test.",
>> +" einj            (1 test):",
>> +"  EINJ Error Injection Table test.",
>> +" erst            (1 test):",
>> +"  ERST Error Record Serialization Table test.",
>> +" facs            (1 test):",
>> +"  FACS Firmware ACPI Control Structure test.",
>> +" fadt            (6 tests):",
>> +"  ACPI FADT Description Table flag info.",
>> +"  FADT checksum test.",
>> +"  FADT revision test.",
>> +"  ACPI FADT Description Table tests.",
>> +"  Test FADT SCI_EN bit is enabled.",
>> +"  Test FADT reset register.",
>> +" fpdt            (1 test):",
>> +"  FPDT Firmware Performance Data Table test.",
>> +" gtdt            (1 test):",
>> +"  GTDT Generic Timer Description Table test.",
>> +" hest            (1 test):",
>> +"  HEST Hardware Error Source Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" hpet            (4 tests):",
>> +"  Test HPET base in kernel log.",
>> +"  Test HPET base in HPET table.",
>> +"  Test HPET base in DSDT and/or SSDT.",
>> +"  Test HPET configuration.",
>> +#endif
>> +" iort            (1 test):",
>> +"  IORT IO Remapping Table test.",
>> +" lpit            (1 test):",
>> +"  LPIT Low Power Idle Table test.",
>> +" madt            (5 tests):",
>> +"  MADT checksum test.",
>> +"  MADT revision test.",
>> +"  MADT architecture minimum revision test.",
>> +"  MADT flags field reserved bits test.",
>> +"  MADT subtable tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" mcfg            (2 tests):",
>> +"  Validate MCFG table.",
>> +"  Validate MCFG PCI config space.",
>> +#endif
>> +" mchi            (1 test):",
>> +"  MCHI Management Controller Host Interface Table test.",
>> +" method          (191 tests):",
>> +"  Test Method Names.",
>> +"  Test _AEI.",
>> +"  Test _EVT (Event Method).",
>> +"  Test _DLM (Device Lock Mutex).",
>> +"  Test _PIC (Inform AML of Interrupt Model).",
>> +"  Test _CID (Compatible ID).",
>> +"  Test _DDN (DOS Device Name).",
>> +"  Test _HID (Hardware ID).",
>> +"  Test _HRV (Hardware Revision Number).",
>> +"  Test _MLS (Multiple Language String).",
>> +"  Test _PLD (Physical Device Location).",
>> +"  Test _SUB (Subsystem ID).",
>> +"  Test _SUN (Slot User Number).",
>> +"  Test _STR (String).",
>> +"  Test _UID (Unique ID).",
>> +"  Test _CDM (Clock Domain).",
>> +"  Test _CRS (Current Resource Settings).",
>> +"  Test _DSD (Device Specific Data).",
>> +"  Test _DIS (Disable).",
>> +"  Test _DMA (Direct Memory Access).",
>> +"  Test _FIX (Fixed Register Resource Provider).",
>> +"  Test _GSB (Global System Interrupt Base).",
>> +"  Test _HPP (Hot Plug Parameters).",
>> +"  Test _PRS (Possible Resource Settings).",
>> +"  Test _PRT (PCI Routing Table).",
>> +"  Test _PXM (Proximity).",
>> +"  Test _CCA (Cache Coherency Attribute).",
>> +"  Test _EDL (Eject Device List).",
>> +"  Test _EJD (Ejection Dependent Device).",
>> +"  Test _EJ0 (Eject).",
>> +"  Test _EJ1 (Eject).",
>> +"  Test _EJ2 (Eject).",
>> +"  Test _EJ3 (Eject).",
>> +"  Test _EJ4 (Eject).",
>> +"  Test _LCK (Lock).",
>> +"  Test _RMV (Remove).",
>> +"  Test _STA (Status).",
>> +"  Test _DEP (Operational Region Dependencies).",
>> +"  Test _BDN (BIOS Dock Name).",
>> +"  Test _BBN (Base Bus Number).",
>> +"  Test _DCK (Dock).",
>> +"  Test _INI (Initialize).",
>> +"  Test _GLK (Global Lock).",
>> +"  Test _SEG (Segment).",
>> +"  Test _OFF (Set resource off).",
>> +"  Test _ON_ (Set resource on).",
>> +"  Test _DSW (Device Sleep Wake).",
>> +"  Test _IRC (In Rush Current).",
>> +"  Test _PRE (Power Resources for Enumeration).",
>> +"  Test _PR0 (Power Resources for D0).",
>> +"  Test _PR1 (Power Resources for D1).",
>> +"  Test _PR2 (Power Resources for D2).",
>> +"  Test _PR3 (Power Resources for D3).",
>> +"  Test _PRW (Power Resources for Wake).",
>> +"  Test _PS0 (Power State 0).",
>> +"  Test _PS1 (Power State 1).",
>> +"  Test _PS2 (Power State 2).",
>> +"  Test _PS3 (Power State 3).",
>> +"  Test _PSC (Power State Current).",
>> +"  Test _PSE (Power State for Enumeration).",
>> +"  Test _PSW (Power State Wake).",
>> +"  Test _S1D (S1 Device State).",
>> +"  Test _S2D (S2 Device State).",
>> +"  Test _S3D (S3 Device State).",
>> +"  Test _S4D (S4 Device State).",
>> +"  Test _S0W (S0 Device Wake State).",
>> +"  Test _S1W (S1 Device Wake State).",
>> +"  Test _S2W (S2 Device Wake State).",
>> +"  Test _S3W (S3 Device Wake State).",
>> +"  Test _S4W (S4 Device Wake State).",
>> +"  Test _RST (Device Reset).",
>> +"  Test _PRR (Power Resource for Reset).",
>> +"  Test _S0_ (S0 System State).",
>> +"  Test _S1_ (S1 System State).",
>> +"  Test _S2_ (S2 System State).",
>> +"  Test _S3_ (S3 System State).",
>> +"  Test _S4_ (S4 System State).",
>> +"  Test _S5_ (S5 System State).",
>> +"  Test _SWS (System Wake Source).",
>> +"  Test _PSS (Performance Supported States).",
>> +"  Test _CPC (Continuous Performance Control).",
>> +"  Test _CSD (C State Dependencies).",
>> +"  Test _CST (C States).",
>> +"  Test _PCT (Performance Control).",
>> +"  Test _PDL (P-State Depth Limit).",
>> +"  Test _PPC (Performance Present Capabilities).",
>> +"  Test _PPE (Polling for Platform Error).",
>> +"  Test _PSD (Power State Dependencies).",
>> +"  Test _PTC (Processor Throttling Control).",
>> +"  Test _TDL (T-State Depth Limit).",
>> +"  Test _TPC (Throttling Present Capabilities).",
>> +"  Test _TSD (Throttling State Dependencies).",
>> +"  Test _TSS (Throttling Supported States).",
>> +"  Test _LPI (Low Power Idle States).",
>> +"  Test _RDI (Resource Dependencies for Idle).",
>> +"  Test _PUR (Processor Utilization Request).",
>> +"  Test _MSG (Message).",
>> +"  Test _SST (System Status).",
>> +"  Test _ALC (Ambient Light Colour Chromaticity).",
>> +"  Test _ALI (Ambient Light Illuminance).",
>> +"  Test _ALT (Ambient Light Temperature).",
>> +"  Test _ALP (Ambient Light Polling).",
>> +"  Test _ALR (Ambient Light Response).",
>> +"  Test _LID (Lid Status).",
>> +"  Test _GTF (Get Task File).",
>> +"  Test _GTM (Get Timing Mode).",
>> +"  Test _MBM (Memory Bandwidth Monitoring Data).",
>> +"  Test _UPC (USB Port Capabilities).",
>> +"  Test _UPD (User Presence Detect).",
>> +"  Test _UPP (User Presence Polling).",
>> +"  Test _GCP (Get Capabilities).",
>> +"  Test _GRT (Get Real Time).",
>> +"  Test _GWS (Get Wake Status).",
>> +"  Test _CWS (Clear Wake Status).",
>> +"  Test _STP (Set Expired Timer Wake Policy).",
>> +"  Test _STV (Set Timer Value).",
>> +"  Test _TIP (Expired Timer Wake Policy).",
>> +"  Test _TIV (Timer Values).",
>> +"  Test _SBS (Smart Battery Subsystem).",
>> +"  Test _BCT (Battery Charge Time).",
>> +"  Test _BIF (Battery Information).",
>> +"  Test _BIX (Battery Information Extended).",
>> +"  Test _BMA (Battery Measurement Averaging).",
>> +"  Test _BMC (Battery Maintenance Control).",
>> +"  Test _BMD (Battery Maintenance Data).",
>> +"  Test _BMS (Battery Measurement Sampling Time).",
>> +"  Test _BST (Battery Status).",
>> +"  Test _BTP (Battery Trip Point).",
>> +"  Test _BTH (Battery Throttle Limit).",
>> +"  Test _BTM (Battery Time).",
>> +"  Test _PCL (Power Consumer List).",
>> +"  Test _PIF (Power Source Information).",
>> +"  Test _PRL (Power Source Redundancy List).",
>> +"  Test _PSR (Power Source).",
>> +"  Test _GAI (Get Averaging Level).",
>> +"  Test _GHL (Get Harware Limit).",
>> +"  Test _PMC (Power Meter Capabilities).",
>> +"  Test _PMD (Power Meter Devices).",
>> +"  Test _PMM (Power Meter Measurement).",
>> +"  Test _WPC (Wireless Power Calibration).",
>> +"  Test _WPP (Wireless Power Polling).",
>> +"  Test _FIF (Fan Information).",
>> +"  Test _FPS (Fan Performance States).",
>> +"  Test _FSL (Fan Set Level).",
>> +"  Test _FST (Fan Status).",
>> +"  Test _ACx (Active Cooling).",
>> +"  Test _ART (Active Cooling Relationship Table).",
>> +"  Test _CRT (Critical Trip Point).",
>> +"  Test _CR3 (Warm/Standby Temperature).",
>> +"  Test _DTI (Device Temperature Indication).",
>> +"  Test _HOT (Hot Temperature).",
>> +"  Test _MTL (Minimum Throttle Limit).",
>> +"  Test _NTT (Notification Temp Threshold).",
>> +"  Test _PSL (Passive List).",
>> +"  Test _PSV (Passive Temp).",
>> +"  Test _RTV (Relative Temp Values).",
>> +"  Test _SCP (Set Cooling Policy).",
>> +"  Test _TC1 (Thermal Constant 1).",
>> +"  Test _TC2 (Thermal Constant 2).",
>> +"  Test _TFP (Thermal fast Sampling Period).",
>> +"  Test _TMP (Thermal Zone Current Temp).",
>> +"  Test _TPT (Trip Point Temperature).",
>> +"  Test _TRT (Thermal Relationship Table).",
>> +"  Test _TSN (Thermal Sensor Device).",
>> +"  Test _TSP (Thermal Sampling Period).",
>> +"  Test _TST (Temperature Sensor Threshold).",
>> +"  Test _TZD (Thermal Zone Devices).",
>> +"  Test _TZM (Thermal Zone member).",
>> +"  Test _TZP (Thermal Zone Polling).",
>> +"  Test _GPE (General Purpose Events).",
>> +"  Test _EC_ (EC Offset Query).",
>> +"  Test _PTS (Prepare to Sleep).",
>> +"  Test _TTS (Transition to State).",
>> +"  Test _WAK (System Wake).",
>> +"  Test _ADR (Return Unique ID for Device).",
>> +"  Test _BCL (Query List of Brightness Control Levels Supported).",
>> +"  Test _BCM (Set Brightness Level).",
>> +"  Test _BQC (Brightness Query Current Level).",
>> +"  Test _DCS (Return the Status of Output Device).",
>> +"  Test _DDC (Return the EDID for this Device).",
>> +"  Test _DSS (Device Set State).",
>> +"  Test _DGS (Query Graphics State).",
>> +"  Test _DOD (Enumerate All Devices Attached to Display Adapter).",
>> +"  Test _DOS (Enable/Disable Output Switching).",
>> +"  Test _GPD (Get POST Device).",
>> +"  Test _ROM (Get ROM Data).",
>> +"  Test _SPD (Set POST Device).",
>> +"  Test _VPO (Video POST Options).",
>> +"  Test _CBA (Configuration Base Address).",
>> +"  Test _IFT (IPMI Interface Type).",
>> +"  Test _SRV (IPMI Interface Revision).",
>> +" msct            (1 test):",
>> +"  MSCT Maximum System Characteristics Table test.",
>> +" msdm            (1 test):",
>> +"  MSDM Microsoft Data Management Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" pcc             (1 test):",
>> +"  Processor Clocking Control (PCC) test.",
>> +#endif
>> +" rsdp            (1 test):",
>> +"  RSDP Root System Description Pointer test.",
>> +" rsdt            (1 test):",
>> +"  RSDT Root System Description Table test.",
>> +" sbst            (1 test):",
>> +"  SBST Smart Battery Specificiation Table test.",
>> +" slic            (1 test):",
>> +"  SLIC Software Licensing Description Table test.",
>> +" slit            (1 test):",
>> +"  SLIT System Locality Distance Information test.",
>> +" spcr            (1 test):",
>> +"  SPCR Serial Port Console Redirection Table test.",
>> +" spmi            (1 test):",
>> +"  SPMI Service Processor Management Interface Description Table
test.",
>> +" srat            (1 test):",
>> +"  SRAT System Resource Affinity Table test.",
>> +" stao            (1 test):",
>> +"  STAO Status Override Table test.",
>> +" tcpa            (1 test):",
>> +"  Validate TCPA table.",
>> +" tpm2            (1 test):",
>> +"  Validate TPM2 table.",
>> +" uefi            (1 test):",
>> +"  UEFI Data Table test.",
>> +" waet            (1 test):",
>> +"  Windows ACPI Emulated Devices Table test.",
>> +" wdat            (1 test):",
>> +"  WDAT Microsoft Hardware Watchdog Action Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" wmi             (1 test):",
>> +"  Windows Management Instrumentation test.",
>> +#endif
>> +" xenv            (1 test):",
>> +"  Validate XENV table.",
>> +" xsdt            (1 test):",
>> +"  XSDT Extended System Description Table test.",
>> +"",
>> +"Batch tests:",
>> +" acpiinfo        (3 tests):",
>> +"  Determine Kernel ACPI version.",
>> +"  Determine machine's ACPI version.",
>> +"  Determine AML compiler.",
>> +" acpitables      (1 test):",
>> +"  Test ACPI headers.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" apicedge        (1 test):",
>> +"  Legacy and PCI Interrupt Edge/Level trigger tests.",
>> +" apicinstance    (1 test):",
>> +"  Test for single instance of APIC/MADT table.",
>> +#endif
>> +" asf             (1 test):",
>> +"  ASF! Alert Standard Format Table test.",
>> +" aspm            (2 tests):",
>> +"  PCIe ASPM ACPI test.",
>> +"  PCIe ASPM registers test.",
>> +" aspt            (1 test):",
>> +"  ASPT Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" autobrightness  (2 tests):",
>> +"  Test for maximum and actual brightness.",
>> +"  Change actual brightness.",
>> +#endif
>> +" bert            (1 test):",
>> +"  BERT Boot Error Record Table test.",
>> +" bgrt            (1 test):",
>> +"  BGRT Boot Graphics Resource Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" bios32          (1 test):",
>> +"  BIOS32 Service Directory test.",
>> +" bios_info       (1 test):",
>> +"  Gather BIOS DMI information",
>> +#endif
>> +" bmc_info        (1 test):",
>> +"  BMC Info",
>> +" boot            (1 test):",
>> +"  BOOT Table test.",
>> +" checksum        (1 test):",
>> +"  ACPI table checksum test.",
>> +" cpep            (1 test):",
>> +"  CPEP Corrected Platform Error Polling Table test.",
>> +" cpufreq         (7 tests):",
>> +"  CPU frequency table consistency",
>> +"  CPU frequency table duplicates",
>> +"  CPU frequency firmware limits",
>> +"  CPU frequency claimed maximum",
>> +"  CPU frequency SW_ANY control",
>> +"  CPU frequency SW_ALL control",
>> +"  CPU frequency performance tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" crs             (1 test):",
>> +"  Test PCI host bridge configuration using _CRS.",
>> +" csm             (1 test):",
>> +"  UEFI Compatibility Support Module test.",
>> +#endif
>> +" csrt            (1 test):",
>> +"  CSRT Core System Resource Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" cstates         (1 test):",
>> +"  Test all CPUs C-states.",
>> +#endif
>> +" dbg2            (1 test):",
>> +"  DBG2 (Debug Port Table 2) test.",
>> +" dbgp            (1 test):",
>> +"  DBGP (Debug Port) Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" dmar            (1 test):",
>> +"  DMA Remapping test.",
>> +" dmicheck        (3 tests):",
>> +"  Find and test SMBIOS Table Entry Points.",
>> +"  Test DMI/SMBIOS tables for errors.",
>> +"  Test DMI/SMBIOS3 tables for errors.",
>> +#endif
>> +#ifdef HAVE_LIBFDT
>> +" dt_base         (3 tests):",
>> +"  Check device tree presence",
>> +"  Check device tree baseline validity",
>> +"  Check device tree warnings",
>> +" dt_sysinfo      (3 tests):",
>> +"  Check model property",
>> +"  Check system-id property",
>> +"  Check OpenPOWER Reference compatible",
>> +#endif
>> +#ifdef FWTS_ARCH_INTEL
>> +" ebda            (1 test):",
>> +"  Test EBDA is reserved in E820 table.",
>> +#endif
>> +" ecdt            (1 test):",
>> +"  ECDT Embedded Controller Boot Resources Table test.",
>> +" einj            (1 test):",
>> +"  EINJ Error Injection Table test.",
>> +" erst            (1 test):",
>> +"  ERST Error Record Serialization Table test.",
>> +" facs            (1 test):",
>> +"  FACS Firmware ACPI Control Structure test.",
>> +" fadt            (6 tests):",
>> +"  ACPI FADT Description Table flag info.",
>> +"  FADT checksum test.",
>> +"  FADT revision test.",
>> +"  ACPI FADT Description Table tests.",
>> +"  Test FADT SCI_EN bit is enabled.",
>> +"  Test FADT reset register.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" fan             (2 tests):",
>> +"  Test fan status.",
>> +"  Load system, check CPU fan status.",
>> +#endif
>> +" fpdt            (1 test):",
>> +"  FPDT Firmware Performance Data Table test.",
>> +" gtdt            (1 test):",
>> +"  GTDT Generic Timer Description Table test.",
>> +" hda_audio       (1 test):",
>> +"  HDA Audio Pin Configuration test.",
>> +" hest            (1 test):",
>> +"  HEST Hardware Error Source Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" hpet            (4 tests):",
>> +"  Test HPET base in kernel log.",
>> +"  Test HPET base in HPET table.",
>> +"  Test HPET base in DSDT and/or SSDT.",
>> +"  Test HPET configuration.",
>> +#endif
>> +" iort            (1 test):",
>> +"  IORT IO Remapping Table test.",
>> +" klog            (1 test):",
>> +"  Kernel log error check.",
>> +" lpit            (1 test):",
>> +"  LPIT Low Power Idle Table test.",
>> +" madt            (5 tests):",
>> +"  MADT checksum test.",
>> +"  MADT revision test.",
>> +"  MADT architecture minimum revision test.",
>> +"  MADT flags field reserved bits test.",
>> +"  MADT subtable tests.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" maxfreq         (1 test):",
>> +"  Maximum CPU frequency test.",
>> +#endif
>> +" maxreadreq      (1 test):",
>> +"  Test firmware settings MaxReadReq for PCI Express devices.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" mcfg            (2 tests):",
>> +"  Validate MCFG table.",
>> +"  Validate MCFG PCI config space.",
>> +#endif
>> +" mchi            (1 test):",
>> +"  MCHI Management Controller Host Interface Table test.",
>> +" method          (191 tests):",
>> +"  Test Method Names.",
>> +"  Test _AEI.",
>> +"  Test _EVT (Event Method).",
>> +"  Test _DLM (Device Lock Mutex).",
>> +"  Test _PIC (Inform AML of Interrupt Model).",
>> +"  Test _CID (Compatible ID).",
>> +"  Test _DDN (DOS Device Name).",
>> +"  Test _HID (Hardware ID).",
>> +"  Test _HRV (Hardware Revision Number).",
>> +"  Test _MLS (Multiple Language String).",
>> +"  Test _PLD (Physical Device Location).",
>> +"  Test _SUB (Subsystem ID).",
>> +"  Test _SUN (Slot User Number).",
>> +"  Test _STR (String).",
>> +"  Test _UID (Unique ID).",
>> +"  Test _CDM (Clock Domain).",
>> +"  Test _CRS (Current Resource Settings).",
>> +"  Test _DSD (Device Specific Data).",
>> +"  Test _DIS (Disable).",
>> +"  Test _DMA (Direct Memory Access).",
>> +"  Test _FIX (Fixed Register Resource Provider).",
>> +"  Test _GSB (Global System Interrupt Base).",
>> +"  Test _HPP (Hot Plug Parameters).",
>> +"  Test _PRS (Possible Resource Settings).",
>> +"  Test _PRT (PCI Routing Table).",
>> +"  Test _PXM (Proximity).",
>> +"  Test _CCA (Cache Coherency Attribute).",
>> +"  Test _EDL (Eject Device List).",
>> +"  Test _EJD (Ejection Dependent Device).",
>> +"  Test _EJ0 (Eject).",
>> +"  Test _EJ1 (Eject).",
>> +"  Test _EJ2 (Eject).",
>> +"  Test _EJ3 (Eject).",
>> +"  Test _EJ4 (Eject).",
>> +"  Test _LCK (Lock).",
>> +"  Test _RMV (Remove).",
>> +"  Test _STA (Status).",
>> +"  Test _DEP (Operational Region Dependencies).",
>> +"  Test _BDN (BIOS Dock Name).",
>> +"  Test _BBN (Base Bus Number).",
>> +"  Test _DCK (Dock).",
>> +"  Test _INI (Initialize).",
>> +"  Test _GLK (Global Lock).",
>> +"  Test _SEG (Segment).",
>> +"  Test _OFF (Set resource off).",
>> +"  Test _ON_ (Set resource on).",
>> +"  Test _DSW (Device Sleep Wake).",
>> +"  Test _IRC (In Rush Current).",
>> +"  Test _PRE (Power Resources for Enumeration).",
>> +"  Test _PR0 (Power Resources for D0).",
>> +"  Test _PR1 (Power Resources for D1).",
>> +"  Test _PR2 (Power Resources for D2).",
>> +"  Test _PR3 (Power Resources for D3).",
>> +"  Test _PRW (Power Resources for Wake).",
>> +"  Test _PS0 (Power State 0).",
>> +"  Test _PS1 (Power State 1).",
>> +"  Test _PS2 (Power State 2).",
>> +"  Test _PS3 (Power State 3).",
>> +"  Test _PSC (Power State Current).",
>> +"  Test _PSE (Power State for Enumeration).",
>> +"  Test _PSW (Power State Wake).",
>> +"  Test _S1D (S1 Device State).",
>> +"  Test _S2D (S2 Device State).",
>> +"  Test _S3D (S3 Device State).",
>> +"  Test _S4D (S4 Device State).",
>> +"  Test _S0W (S0 Device Wake State).",
>> +"  Test _S1W (S1 Device Wake State).",
>> +"  Test _S2W (S2 Device Wake State).",
>> +"  Test _S3W (S3 Device Wake State).",
>> +"  Test _S4W (S4 Device Wake State).",
>> +"  Test _RST (Device Reset).",
>> +"  Test _PRR (Power Resource for Reset).",
>> +"  Test _S0_ (S0 System State).",
>> +"  Test _S1_ (S1 System State).",
>> +"  Test _S2_ (S2 System State).",
>> +"  Test _S3_ (S3 System State).",
>> +"  Test _S4_ (S4 System State).",
>> +"  Test _S5_ (S5 System State).",
>> +"  Test _SWS (System Wake Source).",
>> +"  Test _PSS (Performance Supported States).",
>> +"  Test _CPC (Continuous Performance Control).",
>> +"  Test _CSD (C State Dependencies).",
>> +"  Test _CST (C States).",
>> +"  Test _PCT (Performance Control).",
>> +"  Test _PDL (P-State Depth Limit).",
>> +"  Test _PPC (Performance Present Capabilities).",
>> +"  Test _PPE (Polling for Platform Error).",
>> +"  Test _PSD (Power State Dependencies).",
>> +"  Test _PTC (Processor Throttling Control).",
>> +"  Test _TDL (T-State Depth Limit).",
>> +"  Test _TPC (Throttling Present Capabilities).",
>> +"  Test _TSD (Throttling State Dependencies).",
>> +"  Test _TSS (Throttling Supported States).",
>> +"  Test _LPI (Low Power Idle States).",
>> +"  Test _RDI (Resource Dependencies for Idle).",
>> +"  Test _PUR (Processor Utilization Request).",
>> +"  Test _MSG (Message).",
>> +"  Test _SST (System Status).",
>> +"  Test _ALC (Ambient Light Colour Chromaticity).",
>> +"  Test _ALI (Ambient Light Illuminance).",
>> +"  Test _ALT (Ambient Light Temperature).",
>> +"  Test _ALP (Ambient Light Polling).",
>> +"  Test _ALR (Ambient Light Response).",
>> +"  Test _LID (Lid Status).",
>> +"  Test _GTF (Get Task File).",
>> +"  Test _GTM (Get Timing Mode).",
>> +"  Test _MBM (Memory Bandwidth Monitoring Data).",
>> +"  Test _UPC (USB Port Capabilities).",
>> +"  Test _UPD (User Presence Detect).",
>> +"  Test _UPP (User Presence Polling).",
>> +"  Test _GCP (Get Capabilities).",
>> +"  Test _GRT (Get Real Time).",
>> +"  Test _GWS (Get Wake Status).",
>> +"  Test _CWS (Clear Wake Status).",
>> +"  Test _STP (Set Expired Timer Wake Policy).",
>> +"  Test _STV (Set Timer Value).",
>> +"  Test _TIP (Expired Timer Wake Policy).",
>> +"  Test _TIV (Timer Values).",
>> +"  Test _SBS (Smart Battery Subsystem).",
>> +"  Test _BCT (Battery Charge Time).",
>> +"  Test _BIF (Battery Information).",
>> +"  Test _BIX (Battery Information Extended).",
>> +"  Test _BMA (Battery Measurement Averaging).",
>> +"  Test _BMC (Battery Maintenance Control).",
>> +"  Test _BMD (Battery Maintenance Data).",
>> +"  Test _BMS (Battery Measurement Sampling Time).",
>> +"  Test _BST (Battery Status).",
>> +"  Test _BTP (Battery Trip Point).",
>> +"  Test _BTH (Battery Throttle Limit).",
>> +"  Test _BTM (Battery Time).",
>> +"  Test _PCL (Power Consumer List).",
>> +"  Test _PIF (Power Source Information).",
>> +"  Test _PRL (Power Source Redundancy List).",
>> +"  Test _PSR (Power Source).",
>> +"  Test _GAI (Get Averaging Level).",
>> +"  Test _GHL (Get Harware Limit).",
>> +"  Test _PMC (Power Meter Capabilities).",
>> +"  Test _PMD (Power Meter Devices).",
>> +"  Test _PMM (Power Meter Measurement).",
>> +"  Test _WPC (Wireless Power Calibration).",
>> +"  Test _WPP (Wireless Power Polling).",
>> +"  Test _FIF (Fan Information).",
>> +"  Test _FPS (Fan Performance States).",
>> +"  Test _FSL (Fan Set Level).",
>> +"  Test _FST (Fan Status).",
>> +"  Test _ACx (Active Cooling).",
>> +"  Test _ART (Active Cooling Relationship Table).",
>> +"  Test _CRT (Critical Trip Point).",
>> +"  Test _CR3 (Warm/Standby Temperature).",
>> +"  Test _DTI (Device Temperature Indication).",
>> +"  Test _HOT (Hot Temperature).",
>> +"  Test _MTL (Minimum Throttle Limit).",
>> +"  Test _NTT (Notification Temp Threshold).",
>> +"  Test _PSL (Passive List).",
>> +"  Test _PSV (Passive Temp).",
>> +"  Test _RTV (Relative Temp Values).",
>> +"  Test _SCP (Set Cooling Policy).",
>> +"  Test _TC1 (Thermal Constant 1).",
>> +"  Test _TC2 (Thermal Constant 2).",
>> +"  Test _TFP (Thermal fast Sampling Period).",
>> +"  Test _TMP (Thermal Zone Current Temp).",
>> +"  Test _TPT (Trip Point Temperature).",
>> +"  Test _TRT (Thermal Relationship Table).",
>> +"  Test _TSN (Thermal Sensor Device).",
>> +"  Test _TSP (Thermal Sampling Period).",
>> +"  Test _TST (Temperature Sensor Threshold).",
>> +"  Test _TZD (Thermal Zone Devices).",
>> +"  Test _TZM (Thermal Zone member).",
>> +"  Test _TZP (Thermal Zone Polling).",
>> +"  Test _GPE (General Purpose Events).",
>> +"  Test _EC_ (EC Offset Query).",
>> +"  Test _PTS (Prepare to Sleep).",
>> +"  Test _TTS (Transition to State).",
>> +"  Test _WAK (System Wake).",
>> +"  Test _ADR (Return Unique ID for Device).",
>> +"  Test _BCL (Query List of Brightness Control Levels Supported).",
>> +"  Test _BCM (Set Brightness Level).",
>> +"  Test _BQC (Brightness Query Current Level).",
>> +"  Test _DCS (Return the Status of Output Device).",
>> +"  Test _DDC (Return the EDID for this Device).",
>> +"  Test _DSS (Device Set State).",
>> +"  Test _DGS (Query Graphics State).",
>> +"  Test _DOD (Enumerate All Devices Attached to Display Adapter).",
>> +"  Test _DOS (Enable/Disable Output Switching).",
>> +"  Test _GPD (Get POST Device).",
>> +"  Test _ROM (Get ROM Data).",
>> +"  Test _SPD (Set POST Device).",
>> +"  Test _VPO (Video POST Options).",
>> +"  Test _CBA (Configuration Base Address).",
>> +"  Test _IFT (IPMI Interface Type).",
>> +"  Test _SRV (IPMI Interface Revision).",
>> +#ifdef FWTS_ARCH_INTEL
>> +" microcode       (1 test):",
>> +"  Test for most recent microcode being loaded.",
>> +" mpcheck         (9 tests):",
>> +"  Test MP header.",
>> +"  Test MP CPU entries.",
>> +"  Test MP Bus entries.",
>> +"  Test MP IO APIC entries.",
>> +"  Test MP IO Interrupt entries.",
>> +"  Test MP Local Interrupt entries.",
>> +"  Test MP System Address entries.",
>> +"  Test MP Bus Hierarchy entries.",
>> +"  Test MP Compatible Bus Address Space entries.",
>> +#endif
>> +" msct            (1 test):",
>> +"  MSCT Maximum System Characteristics Table test.",
>> +" msdm            (1 test):",
>> +"  MSDM Microsoft Data Management Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" msr             (5 tests):",
>> +"  Test CPU generic MSRs.",
>> +"  Test CPU specific model MSRs.",
>> +"  Test all P State Ratios.",
>> +"  Test C1 and C3 autodemotion.",
>> +"  Test SMRR MSR registers.",
>> +" mtrr            (3 tests):",
>> +"  Validate the kernel MTRR IOMEM setup.",
>> +"  Validate the MTRR setup across all processors.",
>> +"  Test for AMD MtrrFixDramModEn being cleared by the BIOS.",
>> +" nx              (3 tests):",
>> +"  Test CPU NX capability.",
>> +"  Test all CPUs have same BIOS set NX flag.",
>> +"  Test all CPUs have same msr setting in MSR 0x1a0.",
>> +#endif
>> +" olog            (1 test):",
>> +"  OLOG scan and analysis checks results.",
>> +" oops            (1 test):",
>> +"  Kernel log oops check.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" osilinux        (1 test):",
>> +"  Disassemble DSDT to check for _OSI(\"Linux\").",
>> +" pcc             (1 test):",
>> +"  Processor Clocking Control (PCC) test.",
>> +" pciirq          (1 test):",
>> +"  PCI IRQ Routing Table test.",
>> +" pnp             (1 test):",
>> +"  PnP BIOS Support Installation structure test.",
>> +#endif
>> +" prd_info        (1 test):",
>> +"  OPAL Processor Recovery Diagnostics Info",
>> +" rsdp            (1 test):",
>> +"  RSDP Root System Description Pointer test.",
>> +" rsdt            (1 test):",
>> +"  RSDT Root System Description Table test.",
>> +" sbst            (1 test):",
>> +"  SBST Smart Battery Specificiation Table test.",
>> +" securebootcert  (1 test):",
>> +"  UEFI secure boot test.",
>> +" show_logs       (1 test):",
>> +"  Show Tests Log Files",
>> +" slic            (1 test):",
>> +"  SLIC Software Licensing Description Table test.",
>> +" slit            (1 test):",
>> +"  SLIT System Locality Distance Information test.",
>> +" spcr            (1 test):",
>> +"  SPCR Serial Port Console Redirection Table test.",
>> +" spmi            (1 test):",
>> +"  SPMI Service Processor Management Interface Description Table
test.",
>> +" srat            (1 test):",
>> +"  SRAT System Resource Affinity Table test.",
>> +" stao            (1 test):",
>> +"  STAO Status Override Table test.",
>> +" syntaxcheck     (1 test):",
>> +"  Disassemble and reassemble DSDT and SSDTs.",
>> +" tcpa            (1 test):",
>> +"  Validate TCPA table.",
>> +" tpm2            (1 test):",
>> +"  Validate TPM2 table.",
>> +" uefi            (1 test):",
>> +"  UEFI Data Table test.",
>> +" uefibootpath    (1 test):",
>> +"  Test UEFI Boot Path Boot####.",
>> +" version         (4 tests):",
>> +"  Gather kernel signature.",
>> +"  Gather kernel system information.",
>> +"  Gather kernel boot command line.",
>> +"  Gather ACPI driver version.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" virt            (1 test):",
>> +"  CPU Virtualisation Configuration test.",
>> +#endif
>> +" waet            (1 test):",
>> +"  Windows ACPI Emulated Devices Table test.",
>> +" wakealarm       (5 tests):",
>> +"  Test existence of RTC with alarm interface.",
>> +"  Trigger wakealarm for 1 seconds in the future.",
>> +"  Test if wakealarm is fired.",
>> +"  Multiple wakealarm firing tests.",
>> +"  Reset wakealarm time.",
>> +" wdat            (1 test):",
>> +"  WDAT Microsoft Hardware Watchdog Action Table test.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" wmi             (1 test):",
>> +"  Windows Management Instrumentation test.",
>> +#endif
>> +" xenv            (1 test):",
>> +"  Validate XENV table.",
>> +" xsdt            (1 test):",
>> +"  XSDT Extended System Description Table test.",
>> +"",
>> +#ifdef FWTS_ARCH_INTEL
>> +"Interactive tests:",
>> +" ac_adapter      (3 tests):",
>> +"  Test ACPI ac_adapter state.",
>> +"  Test ac_adapter initial on-line state.",
>> +"  Test ac_adapter state changes.",
>> +" battery         (1 test):",
>> +"  Battery test.",
>> +" brightness      (3 tests):",
>> +"  Observe all brightness changes.",
>> +"  Observe min, max brightness changes.",
>> +"  Test brightness hotkeys.",
>> +" hotkey          (1 test):",
>> +"  Hotkey keypress checks.",
>> +" lid             (3 tests):",
>> +"  Test LID buttons report open correctly.",
>> +"  Test LID buttons on a single open/close.",
>> +"  Test LID buttons on multiple open/close events.",
>> +" power_button    (1 test):",
>> +"  Test press of power button and ACPI event.",
>> +"",
>> +"Power States tests:",
>> +" s3              (1 test):",
>> +"  S3 suspend/resume test.",
>> +" s3power         (1 test):",
>> +"  S3 power loss during suspend test.",
>> +" s4              (1 test):",
>> +"  S4 hibernate/resume test.",
>> +"",
>> +#endif
>> +"Utilities:",
>> +" acpidump        (1 test):",
>> +"  Dump ACPI tables.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" cmosdump        (1 test):",
>> +"  Dump CMOS Memory.",
>> +#endif
>> +" crsdump         (1 test):",
>> +"  Dump ACPI _CRS (Current Resource Settings).",
>> +#ifdef FWTS_ARCH_INTEL
>> +" ebdadump        (1 test):",
>> +"  Dump EBDA region.",
>> +#endif
>> +" esrtdump        (1 test):",
>> +"  Dump ESRT Table.",
>> +" gpedump         (1 test):",
>> +"  Dump GPEs.",
>> +#ifdef FWTS_ARCH_INTEL
>> +" memmapdump      (1 test):",
>> +"  Dump system memory map.",
>> +" mpdump          (1 test):",
>> +"  Dump Multi Processor Data.",
>> +#endif
>> +" plddump         (1 test):",
>> +"  Dump ACPI _PLD (Physical Device Location).",
>> +" prsdump         (1 test):",
>> +"  Dump ACPI _PRS (Possible Resource Settings).",
>> +#ifdef FWTS_ARCH_INTEL
>> +" romdump         (1 test):",
>> +"  Dump ROM data.",
>> +#endif
>> +" uefidump        (1 test):",
>> +"  Dump UEFI Variables.",
>> +" uefivarinfo     (1 test):",
>> +"  UEFI variable info query.",
>> +"",
>> +"Unsafe tests:",
>> +" uefirtauthvar   (12 tests):",
>> +"  Create authenticated variable test.",
>> +"  Authenticated variable test with the same authenticated variable.",
>> +"  Authenticated variable test with another valid authenticated"
>> + " variable.",
>> +"  Append authenticated variable test.",
>> +"  Update authenticated variable test.",
>> +"  Authenticated variable test with old authenticated variable.",
>> +"  Delete authenticated variable test.",
>> +"  Authenticated variable test with invalid modified data.",
>> +"  Authenticated variable test with invalid modified timestamp.",
>> +"  Authenticated variable test with different guid.",
>> +"  Authenticated variable test with invalid attributes.",
>> +"  Set and delete authenticated variable created by different"
>> + " key test.",
>> +" uefirtmisc      (3 tests):",
>> +"  Test for UEFI miscellaneous runtime service interfaces.",
>> +"  Stress test for UEFI miscellaneous runtime service interfaces.",
>> +"  Test GetNextHighMonotonicCount with invalid NULL parameter.",
>> +" uefirttime      (35 tests):",
>> +"  Test UEFI RT service get time interface.",
>> +"  Test UEFI RT service get time interface, NULL time parameter.",
>> +"  Test UEFI RT service get time interface, NULL time and NULL"
>> + " capabilties parameters.",
>> +"  Test UEFI RT service set time interface.",
>> +"  Test UEFI RT service set time interface, invalid year 1899.",
>> +"  Test UEFI RT service set time interface, invalid year 10000.",
>> +"  Test UEFI RT service set time interface, invalid month 0.",
>> +"  Test UEFI RT service set time interface, invalid month 13.",
>> +"  Test UEFI RT service set time interface, invalid day 0.",
>> +"  Test UEFI RT service set time interface, invalid day 32.",
>> +"  Test UEFI RT service set time interface, invalid hour 24.",
>> +"  Test UEFI RT service set time interface, invalid minute 60.",
>> +"  Test UEFI RT service set time interface, invalid second 60.",
>> +"  Test UEFI RT service set time interface, invalid nanosecond"
>> + " 1000000000.",
>> +"  Test UEFI RT service set time interface, invalid timezone -1441.",
>> +"  Test UEFI RT service set time interface, invalid timezone 1441.",
>> +"  Test UEFI RT service get wakeup time interface.",
>> +"  Test UEFI RT service get wakeup time interface, NULL enabled"
>> + " parameter.",
>> +"  Test UEFI RT service get wakeup time interface, NULL pending"
>> + " parameter.",
>> +"  Test UEFI RT service get wakeup time interface, NULL time"
>> + " parameter.",
>> +"  Test UEFI RT service get wakeup time interface, NULL enabled,"
>> + " pending and time parameters.",
>> +"  Test UEFI RT service set wakeup time interface.",
>> +"  Test UEFI RT service set wakeup time interface, NULL time"
>> + " parameter.",
>> +"  Test UEFI RT service set wakeup time interface, invalid year 1899.",
>> +"  Test UEFI RT service set wakeup time interface, invalid year
10000.",
>> +"  Test UEFI RT service set wakeup time interface, invalid month 0.",
>> +"  Test UEFI RT service set wakeup time interface, invalid month 13.",
>> +"  Test UEFI RT service set wakeup time interface, invalid day 0.",
>> +"  Test UEFI RT service set wakeup time interface, invalid day 32.",
>> +"  Test UEFI RT service set wakeup time interface, invalid hour 24.",
>> +"  Test UEFI RT service set wakeup time interface, invalid minute 60.",
>> +"  Test UEFI RT service set wakeup time interface, invalid second 60.",
>> +"  Test UEFI RT service set wakeup time interface, invalid"
>> + " nanosecond 1000000000.",
>> +"  Test UEFI RT service set wakeup time interface, invalid"
>> + " timezone -1441.",
>> +"  Test UEFI RT service set wakeup time interface, invalid"
>> + " timezone 1441.",
>> +" uefirtvariable  (8 tests):",
>> +"  Test UEFI RT service get variable interface.",
>> +"  Test UEFI RT service get next variable name interface.",
>> +"  Test UEFI RT service set variable interface.",
>> +"  Test UEFI RT service query variable info interface.",
>> +"  Test UEFI RT service variable interface stress test.",
>> +"  Test UEFI RT service set variable interface stress test.",
>> +"  Test UEFI RT service query variable info interface stress test.",
>> +"  Test UEFI RT service get variable interface, invalid parameters.",
>> +"",
>> +"UEFI tests:",
>> +#ifdef FWTS_ARCH_INTEL
>> +" csm             (1 test):",
>> +"  UEFI Compatibility Support Module test.",
>> +#endif
>> +" esrt            (1 test):",
>> +"  Sanity check UEFI ESRT Table.",
>> +" securebootcert  (1 test):",
>> +"  UEFI secure boot test.",
>> +" uefibootpath    (1 test):",
>> +"  Test UEFI Boot Path Boot####.",
>> +" uefirtauthvar   (12 tests):",
>> +"  Create authenticated variable test.",
>> +"  Authenticated variable test with the same authenticated variable.",
>> +"  Authenticated variable test with another valid authenticated"
>> + " variable.",
>> +"  Append authenticated variable test.",
>> +"  Update authenticated variable test.",
>> +"  Authenticated variable test with old authenticated variable.",
>> +"  Delete authenticated variable test.",
>> +"  Authenticated variable test with invalid modified data.",
>> +"  Authenticated variable test with invalid modified timestamp.",
>> +"  Authenticated variable test with different guid.",
>> +"  Authenticated variable test with invalid attributes.",
>> +"  Set and delete authenticated variable created by different"
>> + " key test.",
>> +" uefirtmisc      (3 tests):",
>> +"  Test for UEFI miscellaneous runtime service interfaces.",
>> +"  Stress test for UEFI miscellaneous runtime service interfaces.",
>> +"  Test GetNextHighMonotonicCount with invalid NULL parameter.",
>> +" uefirttime      (35 tests):",
>> +"  Test UEFI RT service get time interface.",
>> +"  Test UEFI RT service get time interface, NULL time parameter.",
>> +"  Test UEFI RT service get time interface, NULL time and NULL"
>> + " capabilties parameters.",
>> +"  Test UEFI RT service set time interface.",
>> +"  Test UEFI RT service set time interface, invalid year 1899.",
>> +"  Test UEFI RT service set time interface, invalid year 10000.",
>> +"  Test UEFI RT service set time interface, invalid month 0.",
>> +"  Test UEFI RT service set time interface, invalid month 13.",
>> +"  Test UEFI RT service set time interface, invalid day 0.",
>> +"  Test UEFI RT service set time interface, invalid day 32.",
>> +"  Test UEFI RT service set time interface, invalid hour 24.",
>> +"  Test UEFI RT service set time interface, invalid minute 60.",
>> +"  Test UEFI RT service set time interface, invalid second 60.",
>> +"  Test UEFI RT service set time interface, invalid"
>> + " nanosecond 1000000000.",
>> +"  Test UEFI RT service set time interface, invalid timezone -1441.",
>> +"  Test UEFI RT service set time interface, invalid timezone 1441.",
>> +"  Test UEFI RT service get wakeup time interface.",
>> +"  Test UEFI RT service get wakeup time interface, NULL"
>> + " enabled parameter.",
>> +"  Test UEFI RT service get wakeup time interface, NULL"
>> + " pending parameter.",
>> +"  Test UEFI RT service get wakeup time interface, NULL"
>> + " time parameter.",
>> +"  Test UEFI RT service get wakeup time interface, NULL"
>> + " enabled, pending and time parameters.",
>> +"  Test UEFI RT service set wakeup time interface.",
>> +"  Test UEFI RT service set wakeup time interface, NULL"
>> + " time parameter.",
>> +"  Test UEFI RT service set wakeup time interface, invalid year 1899.",
>> +"  Test UEFI RT service set wakeup time interface, invalid year
10000.",
>> +"  Test UEFI RT service set wakeup time interface, invalid month 0.",
>> +"  Test UEFI RT service set wakeup time interface, invalid month 13.",
>> +"  Test UEFI RT service set wakeup time interface, invalid day 0.",
>> +"  Test UEFI RT service set wakeup time interface, invalid day 32.",
>> +"  Test UEFI RT service set wakeup time interface, invalid hour 24.",
>> +"  Test UEFI RT service set wakeup time interface, invalid minute 60.",
>> +"  Test UEFI RT service set wakeup time interface, invalid second 60.",
>> +"  Test UEFI RT service set wakeup time interface, invalid"
>> + " nanosecond 1000000000.",
>> +"  Test UEFI RT service set wakeup time interface, invalid"
>> + " timezone -1441.",
>> +"  Test UEFI RT service set wakeup time interface, invalid"
>> + " timezone 1441.",
>> +" uefirtvariable  (8 tests):",
>> +"  Test UEFI RT service get variable interface.",
>> +"  Test UEFI RT service get next variable name interface.",
>> +"  Test UEFI RT service set variable interface.",
>> +"  Test UEFI RT service query variable info interface.",
>> +"  Test UEFI RT service variable interface stress test.",
>> +"  Test UEFI RT service set variable interface stress test.",
>> +"  Test UEFI RT service query variable info interface stress test.",
>> +"  Test UEFI RT service get variable interface, invalid parameters.",
>> +"",
>> +"ACPI Spec Compliance tests:",
>> +" fadt            (6 tests):",
>> +"  ACPI FADT Description Table flag info.",
>> +"  FADT checksum test.",
>> +"  FADT revision test.",
>> +"  ACPI FADT Description Table tests.",
>> +"  Test FADT SCI_EN bit is enabled.",
>> +"  Test FADT reset register.",
>> +" madt            (5 tests):",
>> +"  MADT checksum test.",
>> +"  MADT revision test.",
>> +"  MADT architecture minimum revision test.",
>> +"  MADT flags field reserved bits test.",
>> +"  MADT subtable tests.",
>> +" rsdp            (1 test):",
>> +"  RSDP Root System Description Pointer test.",
>> +};
>> +
>> +static int show_log_create(fwts_framework *fw,
>> + char *show_abs_path_name,
>> + const char *log_name,
>> + char * log_template[],
>> + int log_array_size)
>> +{
>> + int i, count;
>> + FILE *show_log;
>> +
>> + char fq_log_name[PATH_MAX+1];
>> +
>> + memset(fq_log_name, 0, sizeof(fq_log_name));
>> +
>> + /* -1 for the slash in the snprintf concatenation */
>> + if (strlen(show_abs_path_name) + strlen(log_name)
>> + >= sizeof(fq_log_name)-1) {
>> + fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create1",
>> + "Unable to properly create"
>> + " the fwts-test logs.");
>> + return FWTS_ERROR;
>> + }
>> + count = snprintf(fq_log_name, sizeof(fq_log_name), "%s/%s",
>> + show_abs_path_name, log_name);
>> +
>> + if ((count < 0) || (count >= (int)sizeof(fq_log_name))) {
>> + fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create2",
>> + "Unable to properly create"
>> + " the fwts-test logs.");
>> + return FWTS_ERROR;
>> + }
>> +
>> + show_log = fopen(fq_log_name, "w+");
>> +
>> + if (!show_log) {
>> + fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create3",
>> + "Unable to properly create"
>> + " the fwts-test logs.");
>> + return FWTS_ERROR;
>> + }
>> +
>> + for ( i= 0; i < log_array_size; i++) {
>> + fprintf(show_log, "%s\n", log_template[i]);
>> +
>> + }
>> + if (fclose(show_log)) {
>> + fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create4",
>> + "Unable to properly create"
>> + " the fwts-test logs.");
>> + return FWTS_ERROR;
>> + }
>> +
>> + fwts_log_info(fw,
>> + "Dynamic creation of %s is complete", fq_log_name);
>> +
>> + return FWTS_OK;
>> +}
>> +
>> +static int show_logs_test1(fwts_framework *fw)
>> +{
>> + const char show_all_log_name[] =
>> + "arg-show-tests-0001/arg-show-tests-0001.log";
>> + const char show_all_full_log_name[] =
>> + "arg-show-tests-full-0001/arg-show-tests-full-0001.log";
>> +
>> + int rc = 0;
>> + char *fwtstestdir = NULL, *fwts_show_log_flags = NULL;
>> +
>> + char *fwts_abs_path_name;
>> + char tmp_abs_path [PATH_MAX+1];
>> +
>> + memset(tmp_abs_path, 0, sizeof(tmp_abs_path));
>> +
>> + /* Use the inherited env var since these logs */
>> + /* are only used during make check tests      */
>> + /* For a fail safe use the FWTS_SRCDIR        */
>> + /* from config.h during direct invocation     */
>> + /* of show_logs                               */
>> +
>> + fwtstestdir = getenv("FWTSTESTDIR");
>> + fwts_show_log_flags = getenv("FWTS_SHOW_LOGS");
>> +
>> + if (fwtstestdir != NULL) {
>> + fwts_abs_path_name = realpath(fwtstestdir,
>> + tmp_abs_path);
>> + } else {
>> + if (FWTS_SRCDIR == NULL) {
>> + fwts_failed(fw, LOG_LEVEL_LOW,
>> + "show-logs-fq-log1",
>> + "Unable to properly create"
>> + " the fwts-test logs.");
>> + return FWTS_ERROR;
>> + } else {
>> + if (strlen(FWTS_SRCDIR)+11
>> + <= sizeof(tmp_abs_path)) {
>> + if (!(strncpy(tmp_abs_path,
>> + FWTS_SRCDIR,
>> + sizeof(tmp_abs_path))
>> + == NULL)) {
>> + fwts_abs_path_name =
>> + strncat(tmp_abs_path,
>> + "/fwts-test", 11);
>> + } else {
>> + fwts_failed(fw, LOG_LEVEL_LOW,
>> + "show-logs-fq-log2",
>> + "Unable to properly create"
>> + " the fwts-test logs.");
>> + return FWTS_ERROR;
>> + }
>> + }
>> + }
>> + }
>> +
>> + if (fwts_abs_path_name == NULL) {
>> + fwts_failed(fw, LOG_LEVEL_LOW, "show-logs-fq-log3",
>> + "Unable to properly create"
>> + " the fwts-test logs.");
>> + return FWTS_ERROR;
>> + }
>> +
>> + if (fwts_show_log_flags == NULL) {
>> + rc = show_log_create(fw,
>> + fwts_abs_path_name,
>> + show_all_full_log_name,
>> + fwts_show_all,
>> + FWTS_ARRAY_LEN(fwts_show_all));
>> + if (!rc) {
>> + rc = show_log_create(fw,
>> + fwts_abs_path_name,
>> + show_all_log_name,
>> + fwts_show,
>> + FWTS_ARRAY_LEN(fwts_show));
>> + }
>> + } else {
>> + if (!strncmp(fwts_show_log_flags, "BASE", 4)){
>> + rc = show_log_create(fw,
>> + fwts_abs_path_name,
>> + show_all_log_name,
>> + fwts_show,
>> + FWTS_ARRAY_LEN(fwts_show));
>> + } else {
>> + if (!strncmp(fwts_show_log_flags, "FULL", 4)) {
>> + rc = show_log_create(fw,
>> + fwts_abs_path_name,
>> + show_all_full_log_name,
>> + fwts_show_all,
>> + FWTS_ARRAY_LEN(fwts_show_all));
>> + }
>> + }
>> + }
>> +
>> + if (!rc) {
>> + fwts_passed(fw, "Show Tests Log Files"
>> + " completed successfully.");
>> + } /* subroutines logged fwts failures */
>> +
>> + return rc;
>> +}
>> +
>> +static fwts_framework_minor_test show_logs_tests[] = {
>> + { show_logs_test1, "Show Tests Log Files" },
>> + { NULL, NULL }
>> +};
>> +
>> +static fwts_framework_ops show_logs_ops = {
>> + .description = "Show Tests Log Files",
>> + .minor_tests = show_logs_tests
>> +};
>> +
>> +FWTS_REGISTER("show_logs", &show_logs_ops, FWTS_TEST_EARLY,
>> + FWTS_FLAG_BATCH)
>>
>
> The show* text is auto-generated from the each test at startup time, so
> this is not really a good solution as we're duplicating this in
> fwts_show_all[] and fwts_show[] arrays. Plus, maintaining this when we
> add extra tests will be a maintenance burden.
>
> Sorry, NACK.
>
> Colin
>
> --
> fwts-devel mailing list
> fwts-devel@lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/fwts-devel
>
>
>
>
diff mbox

Patch

diff --git a/configure.ac b/configure.ac
index e3e7512..0f15540 100644
--- a/configure.ac
+++ b/configure.ac
@@ -71,6 +71,8 @@ 
 	  ])
 	  AM_CONDITIONAL([HAVE_LIBFDT],
 		  [test "x$ac_cv_search_fdt_check_header" != "xno"])
+	  fwts_srcdir=`readlink -f $srcdir`
+	  AC_DEFINE_UNQUOTED([FWTS_SRCDIR],["$fwts_srcdir"], [FWTS absolute src path])
 	  AC_FUNC_MALLOC
 	  AC_FUNC_FORK
 	  AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
diff --git a/fwts-test/arg-show-tests-0001/arg-show-tests-0001.log b/fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
deleted file mode 100644
index 1a76b9d..0000000
--- a/fwts-test/arg-show-tests-0001/arg-show-tests-0001.log
+++ /dev/null
@@ -1,187 +0,0 @@ 
-ACPI tests:
- acpiinfo        General ACPI information test.
- acpitables      ACPI table headers sanity tests.
- apicinstance    Test for single instance of APIC/MADT table.
- asf             ASF! Alert Standard Format Table test.
- aspt            ASPT Table test.
- bert            BERT Boot Error Record Table test.
- bgrt            BGRT Boot Graphics Resource Table test.
- boot            BOOT Table test.
- checksum        ACPI table checksum test.
- cpep            CPEP Corrected Platform Error Polling Table test.
- csrt            CSRT Core System Resource Table test.
- cstates         Processor C state support test.
- dbg2            DBG2 (Debug Port Table 2) test.
- dbgp            DBGP (Debug Port) Table test.
- dmar            DMA Remapping (VT-d) test.
- ecdt            ECDT Embedded Controller Boot Resources Table test.
- einj            EINJ Error Injection Table test.
- erst            ERST Error Record Serialization Table test.
- facs            FACS Firmware ACPI Control Structure test.
- fadt            FADT Fixed ACPI Description Table tests.
- fpdt            FPDT Firmware Performance Data Table test.
- gtdt            GTDT Generic Timer Description Table test.
- hest            HEST Hardware Error Source Table test.
- hpet            HPET IA-PC High Precision Event Timer Table tests.
- iort            IORT IO Remapping Table test.
- lpit            LPIT Low Power Idle Table test.
- madt            MADT Multiple APIC Description Table (spec compliant).
- mcfg            MCFG PCI Express* memory mapped config space test.
- mchi            MCHI Management Controller Host Interface Table test.
- method          ACPI DSDT Method Semantic tests.
- msct            MSCT Maximum System Characteristics Table test.
- msdm            MSDM Microsoft Data Management Table test.
- pcc             Processor Clocking Control (PCC) test.
- rsdp            RSDP Root System Description Pointer test.
- rsdt            RSDT Root System Description Table test.
- sbst            SBST Smart Battery Specification Table test.
- slic            SLIC Software Licensing Description Table test.
- slit            SLIT System Locality Distance Information test.
- spcr            SPCR Serial Port Console Redirection Table test.
- spmi            SPMI Service Processor Management Interface Description Table test.
- srat            SRAT System Resource Affinity Table test.
- stao            STAO Status Override Table test.
- tcpa            TCPA Trusted Computing Platform Alliance Capabilities Table test.
- tpm2            TPM2 Trusted Platform Module 2 test.
- uefi            UEFI Data Table test.
- waet            WAET Windows ACPI Emulated Devices Table test.
- wdat            WDAT Microsoft Hardware Watchdog Action Table test.
- wmi             Extract and analyse Windows Management Instrumentation (WMI).
- xenv            XENV Xen Environment Table tests.
- xsdt            XSDT Extended System Description Table test.
-
-Batch tests:
- acpiinfo        General ACPI information test.
- acpitables      ACPI table headers sanity tests.
- apicedge        APIC edge/level test.
- apicinstance    Test for single instance of APIC/MADT table.
- asf             ASF! Alert Standard Format Table test.
- aspm            PCIe ASPM test.
- aspt            ASPT Table test.
- autobrightness  Automated LCD brightness test.
- bert            BERT Boot Error Record Table test.
- bgrt            BGRT Boot Graphics Resource Table test.
- bios32          BIOS32 Service Directory test.
- bios_info       Gather BIOS DMI information.
- bmc_info        BMC Info
- boot            BOOT Table test.
- checksum        ACPI table checksum test.
- cpep            CPEP Corrected Platform Error Polling Table test.
- cpufreq         CPU frequency scaling tests.
- crs             Test PCI host bridge configuration using _CRS.
- csm             UEFI Compatibility Support Module test.
- csrt            CSRT Core System Resource Table test.
- cstates         Processor C state support test.
- dbg2            DBG2 (Debug Port Table 2) test.
- dbgp            DBGP (Debug Port) Table test.
- dmar            DMA Remapping (VT-d) test.
- dmicheck        DMI/SMBIOS table tests.
- dt_base         Base device tree validity check
- dt_sysinfo      Device tree system information test
- ebda            Test EBDA region is mapped and reserved in memory map table.
- ecdt            ECDT Embedded Controller Boot Resources Table test.
- einj            EINJ Error Injection Table test.
- erst            ERST Error Record Serialization Table test.
- facs            FACS Firmware ACPI Control Structure test.
- fadt            FADT Fixed ACPI Description Table tests.
- fan             Simple fan tests.
- fpdt            FPDT Firmware Performance Data Table test.
- gtdt            GTDT Generic Timer Description Table test.
- hda_audio       HDA Audio Pin Configuration test.
- hest            HEST Hardware Error Source Table test.
- hpet            HPET IA-PC High Precision Event Timer Table tests.
- iort            IORT IO Remapping Table test.
- klog            Scan kernel log for errors and warnings.
- lpit            LPIT Low Power Idle Table test.
- madt            MADT Multiple APIC Description Table (spec compliant).
- maxfreq         Test max CPU frequencies against max scaling frequency.
- maxreadreq      Test firmware has set PCI Express MaxReadReq to a higher value on non-motherboard devices.
- mcfg            MCFG PCI Express* memory mapped config space test.
- mchi            MCHI Management Controller Host Interface Table test.
- method          ACPI DSDT Method Semantic tests.
- microcode       Test if system is using latest microcode.
- mpcheck         MultiProcessor Tables tests.
- msct            MSCT Maximum System Characteristics Table test.
- msdm            MSDM Microsoft Data Management Table test.
- msr             MSR register tests.
- mtrr            MTRR tests.
- nx              Test if CPU NX is disabled by the BIOS.
- olog            Run OLOG scan and analysis checks.
- oops            Scan kernel log for Oopses.
- osilinux        Disassemble DSDT to check for _OSI("Linux").
- pcc             Processor Clocking Control (PCC) test.
- pciirq          PCI IRQ Routing Table test.
- pnp             BIOS Support Installation structure test.
- prd_info        OPAL Processor Recovery Diagnostics Info
- rsdp            RSDP Root System Description Pointer test.
- rsdt            RSDT Root System Description Table test.
- sbst            SBST Smart Battery Specification Table test.
- securebootcert  UEFI secure boot test.
- slic            SLIC Software Licensing Description Table test.
- slit            SLIT System Locality Distance Information test.
- spcr            SPCR Serial Port Console Redirection Table test.
- spmi            SPMI Service Processor Management Interface Description Table test.
- srat            SRAT System Resource Affinity Table test.
- stao            STAO Status Override Table test.
- syntaxcheck     Re-assemble DSDT and SSDTs to find syntax errors and warnings.
- tcpa            TCPA Trusted Computing Platform Alliance Capabilities Table test.
- tpm2            TPM2 Trusted Platform Module 2 test.
- uefi            UEFI Data Table test.
- uefibootpath    Sanity check for UEFI Boot Path Boot####.
- version         Gather kernel system information.
- virt            CPU Virtualisation Configuration test.
- waet            WAET Windows ACPI Emulated Devices Table test.
- wakealarm       ACPI Wakealarm tests.
- wdat            WDAT Microsoft Hardware Watchdog Action Table test.
- wmi             Extract and analyse Windows Management Instrumentation (WMI).
- xenv            XENV Xen Environment Table tests.
- xsdt            XSDT Extended System Description Table test.
-
-Interactive tests:
- ac_adapter      Interactive ac_adapter power test.
- battery         Battery tests.
- brightness      Interactive LCD brightness test.
- hotkey          Hotkey scan code tests.
- lid             Interactive lid button test.
- power_button    Interactive power_button button test.
-
-Power States tests:
- s3              S3 suspend/resume test.
- s3power         S3 power loss during suspend test (takes minimum of 10 minutes to run).
- s4              S4 hibernate/resume test.
-
-Utilities:
- acpidump        Dump ACPI tables.
- cmosdump        Dump CMOS Memory.
- crsdump         Dump ACPI _CRS resources.
- ebdadump        Dump EBDA region.
- esrtdump        Dump ESRT table.
- gpedump         Dump GPEs.
- memmapdump      Dump system memory map.
- mpdump          Dump MultiProcessor Data.
- plddump         Dump ACPI _PLD (Physical Device Location).
- prsdump         Dump ACPI _PRS resources.
- romdump         Dump ROM data.
- uefidump        Dump UEFI variables.
- uefivarinfo     UEFI variable info query.
-
-Unsafe tests:
- uefirtauthvar   Authenticated variable tests.
- uefirtmisc      UEFI miscellaneous runtime service interface tests.
- uefirttime      UEFI Runtime service time interface tests.
- uefirtvariable  UEFI Runtime service variable interface tests.
-
-UEFI tests:
- csm             UEFI Compatibility Support Module test.
- esrt            Sanity check UEFI ESRT Table.
- securebootcert  UEFI secure boot test.
- uefibootpath    Sanity check for UEFI Boot Path Boot####.
- uefirtauthvar   Authenticated variable tests.
- uefirtmisc      UEFI miscellaneous runtime service interface tests.
- uefirttime      UEFI Runtime service time interface tests.
- uefirtvariable  UEFI Runtime service variable interface tests.
-
-ACPI Spec Compliance tests:
- fadt            FADT Fixed ACPI Description Table tests.
- madt            MADT Multiple APIC Description Table (spec compliant).
- rsdp            RSDP Root System Description Pointer test.
diff --git a/fwts-test/arg-show-tests-0001/test-0001.sh b/fwts-test/arg-show-tests-0001/test-0001.sh
index a62071c..ade98a3 100755
--- a/fwts-test/arg-show-tests-0001/test-0001.sh
+++ b/fwts-test/arg-show-tests-0001/test-0001.sh
@@ -3,23 +3,21 @@ 
 TEST="Test -s option"
 NAME=test-0001.sh
 TMPLOG=$TMP/arg-show-tests.log.$$
+export FWTS_SHOW_LOGS="BASE"
 
-#
-#  Non-x86 tests don't have WMI so skip this test
-#
-$FWTS --show-tests | grep wmi > /dev/null
-if [ $? -eq 1 ]; then
+# Dynamically create the log template per test
+$FWTS show_logs &> /dev/null
+if [ $? -ne 0 ]; then
 	echo SKIP: $TEST, $NAME
 	exit 77
 fi
 
-cols=$(stty -a | tr ';' '\n' | grep "columns" | cut -d' ' -f3) 2> /dev/null
 #
 #  If we can't set the tty then we can't test
 #
-stty cols 80 2> /dev/null
-if [ $? -eq 1 ]; then
-        tset 2> /dev/null
+stty cols 80 &> /dev/null
+if [ $? -ne 0 ]; then
+        tset &> /dev/null
         echo SKIP: $TEST, $NAME
         exit 77
 fi
@@ -32,8 +30,8 @@  else
 	echo FAILED: $TEST, $NAME
 fi
 
-stty cols 80 2> /dev/null
-tset 2> /dev/null
+stty cols 80 &> /dev/null
+tset &> /dev/null
 
 rm $TMPLOG
 exit $ret
diff --git a/fwts-test/arg-show-tests-0001/test-0002.sh b/fwts-test/arg-show-tests-0001/test-0002.sh
index f92fd8f..078f3e7 100755
--- a/fwts-test/arg-show-tests-0001/test-0002.sh
+++ b/fwts-test/arg-show-tests-0001/test-0002.sh
@@ -3,27 +3,25 @@ 
 TEST="Test --show-tests option"
 NAME=test-0002.sh
 TMPLOG=$TMP/arg-show-tests.log.$$
+export FWTS_SHOW_LOGS="BASE"
 
-#
-#  Non-x86 tests don't have WMI so skip this test
-#
-$FWTS --show-tests | grep wmi > /dev/null
-if [ $? -eq 1 ]; then
+# Dynamically create the log template per test
+$FWTS show_logs &> /dev/null
+if [ $? -ne 0 ]; then
 	echo SKIP: $TEST, $NAME
 	exit 77
 fi
 
-cols=$(stty -a | tr ';' '\n' | grep "columns" | cut -d' ' -f3) 2> /dev/null
 #
 #  If we can't set the tty then we can't test
 #
-stty cols 80 2> /dev/null
-if [ $? -eq 1 ]; then
-        tset 2> /dev/null
-        echo SKIP: $TEST, $NAME
-        exit 77
+stty cols 80 &> /dev/null
+if [ $? -ne 0 ]; then
+	tset &> /dev/null
+	echo SKIP: $TEST, $NAME
+	exit 77
 fi
-$FWTS -s > $TMPLOG
+$FWTS --show-tests > $TMPLOG
 diff $TMPLOG $FWTSTESTDIR/arg-show-tests-0001/arg-show-tests-0001.log >> $FAILURE_LOG
 ret=$?
 if [ $ret -eq 0 ]; then 
@@ -32,8 +30,8 @@  else
 	echo FAILED: $TEST, $NAME
 fi
 
-stty cols 80 2> /dev/null
-tset 2> /dev/null
+stty cols 80 &> /dev/null
+tset &> /dev/null
 
 rm $TMPLOG
 exit $ret
diff --git a/fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log b/fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
deleted file mode 100644
index 3eb5e3e..0000000
--- a/fwts-test/arg-show-tests-full-0001/arg-show-tests-full-0001.log
+++ /dev/null
@@ -1,930 +0,0 @@ 
-ACPI tests:
- acpiinfo        (3 tests):
-  Determine Kernel ACPI version.
-  Determine machine's ACPI version.
-  Determine AML compiler.
- acpitables      (1 test):
-  Test ACPI headers.
- apicinstance    (1 test):
-  Test for single instance of APIC/MADT table.
- asf             (1 test):
-  ASF! Alert Standard Format Table test.
- aspt            (1 test):
-  ASPT Table test.
- bert            (1 test):
-  BERT Boot Error Record Table test.
- bgrt            (1 test):
-  BGRT Boot Graphics Resource Table test.
- boot            (1 test):
-  BOOT Table test.
- checksum        (1 test):
-  ACPI table checksum test.
- cpep            (1 test):
-  CPEP Corrected Platform Error Polling Table test.
- csrt            (1 test):
-  CSRT Core System Resource Table test.
- cstates         (1 test):
-  Test all CPUs C-states.
- dbg2            (1 test):
-  DBG2 (Debug Port Table 2) test.
- dbgp            (1 test):
-  DBGP (Debug Port) Table test.
- dmar            (1 test):
-  DMA Remapping test.
- ecdt            (1 test):
-  ECDT Embedded Controller Boot Resources Table test.
- einj            (1 test):
-  EINJ Error Injection Table test.
- erst            (1 test):
-  ERST Error Record Serialization Table test.
- facs            (1 test):
-  FACS Firmware ACPI Control Structure test.
- fadt            (6 tests):
-  ACPI FADT Description Table flag info.
-  FADT checksum test.
-  FADT revision test.
-  ACPI FADT Description Table tests.
-  Test FADT SCI_EN bit is enabled.
-  Test FADT reset register.
- fpdt            (1 test):
-  FPDT Firmware Performance Data Table test.
- gtdt            (1 test):
-  GTDT Generic Timer Description Table test.
- hest            (1 test):
-  HEST Hardware Error Source Table test.
- hpet            (4 tests):
-  Test HPET base in kernel log.
-  Test HPET base in HPET table.
-  Test HPET base in DSDT and/or SSDT.
-  Test HPET configuration.
- iort            (1 test):
-  IORT IO Remapping Table test.
- lpit            (1 test):
-  LPIT Low Power Idle Table test.
- madt            (5 tests):
-  MADT checksum test.
-  MADT revision test.
-  MADT architecture minimum revision test.
-  MADT flags field reserved bits test.
-  MADT subtable tests.
- mcfg            (2 tests):
-  Validate MCFG table.
-  Validate MCFG PCI config space.
- mchi            (1 test):
-  MCHI Management Controller Host Interface Table test.
- method          (191 tests):
-  Test Method Names.
-  Test _AEI.
-  Test _EVT (Event Method).
-  Test _DLM (Device Lock Mutex).
-  Test _PIC (Inform AML of Interrupt Model).
-  Test _CID (Compatible ID).
-  Test _DDN (DOS Device Name).
-  Test _HID (Hardware ID).
-  Test _HRV (Hardware Revision Number).
-  Test _MLS (Multiple Language String).
-  Test _PLD (Physical Device Location).
-  Test _SUB (Subsystem ID).
-  Test _SUN (Slot User Number).
-  Test _STR (String).
-  Test _UID (Unique ID).
-  Test _CDM (Clock Domain).
-  Test _CRS (Current Resource Settings).
-  Test _DSD (Device Specific Data).
-  Test _DIS (Disable).
-  Test _DMA (Direct Memory Access).
-  Test _FIX (Fixed Register Resource Provider).
-  Test _GSB (Global System Interrupt Base).
-  Test _HPP (Hot Plug Parameters).
-  Test _PRS (Possible Resource Settings).
-  Test _PRT (PCI Routing Table).
-  Test _PXM (Proximity).
-  Test _CCA (Cache Coherency Attribute).
-  Test _EDL (Eject Device List).
-  Test _EJD (Ejection Dependent Device).
-  Test _EJ0 (Eject).
-  Test _EJ1 (Eject).
-  Test _EJ2 (Eject).
-  Test _EJ3 (Eject).
-  Test _EJ4 (Eject).
-  Test _LCK (Lock).
-  Test _RMV (Remove).
-  Test _STA (Status).
-  Test _DEP (Operational Region Dependencies).
-  Test _BDN (BIOS Dock Name).
-  Test _BBN (Base Bus Number).
-  Test _DCK (Dock).
-  Test _INI (Initialize).
-  Test _GLK (Global Lock).
-  Test _SEG (Segment).
-  Test _OFF (Set resource off).
-  Test _ON_ (Set resource on).
-  Test _DSW (Device Sleep Wake).
-  Test _IRC (In Rush Current).
-  Test _PRE (Power Resources for Enumeration).
-  Test _PR0 (Power Resources for D0).
-  Test _PR1 (Power Resources for D1).
-  Test _PR2 (Power Resources for D2).
-  Test _PR3 (Power Resources for D3).
-  Test _PRW (Power Resources for Wake).
-  Test _PS0 (Power State 0).
-  Test _PS1 (Power State 1).
-  Test _PS2 (Power State 2).
-  Test _PS3 (Power State 3).
-  Test _PSC (Power State Current).
-  Test _PSE (Power State for Enumeration).
-  Test _PSW (Power State Wake).
-  Test _S1D (S1 Device State).
-  Test _S2D (S2 Device State).
-  Test _S3D (S3 Device State).
-  Test _S4D (S4 Device State).
-  Test _S0W (S0 Device Wake State).
-  Test _S1W (S1 Device Wake State).
-  Test _S2W (S2 Device Wake State).
-  Test _S3W (S3 Device Wake State).
-  Test _S4W (S4 Device Wake State).
-  Test _RST (Device Reset).
-  Test _PRR (Power Resource for Reset).
-  Test _S0_ (S0 System State).
-  Test _S1_ (S1 System State).
-  Test _S2_ (S2 System State).
-  Test _S3_ (S3 System State).
-  Test _S4_ (S4 System State).
-  Test _S5_ (S5 System State).
-  Test _SWS (System Wake Source).
-  Test _PSS (Performance Supported States).
-  Test _CPC (Continuous Performance Control).
-  Test _CSD (C State Dependencies).
-  Test _CST (C States).
-  Test _PCT (Performance Control).
-  Test _PDL (P-State Depth Limit).
-  Test _PPC (Performance Present Capabilities).
-  Test _PPE (Polling for Platform Error).
-  Test _PSD (Power State Dependencies).
-  Test _PTC (Processor Throttling Control).
-  Test _TDL (T-State Depth Limit).
-  Test _TPC (Throttling Present Capabilities).
-  Test _TSD (Throttling State Dependencies).
-  Test _TSS (Throttling Supported States).
-  Test _LPI (Low Power Idle States).
-  Test _RDI (Resource Dependencies for Idle).
-  Test _PUR (Processor Utilization Request).
-  Test _MSG (Message).
-  Test _SST (System Status).
-  Test _ALC (Ambient Light Colour Chromaticity).
-  Test _ALI (Ambient Light Illuminance).
-  Test _ALT (Ambient Light Temperature).
-  Test _ALP (Ambient Light Polling).
-  Test _ALR (Ambient Light Response).
-  Test _LID (Lid Status).
-  Test _GTF (Get Task File).
-  Test _GTM (Get Timing Mode).
-  Test _MBM (Memory Bandwidth Monitoring Data).
-  Test _UPC (USB Port Capabilities).
-  Test _UPD (User Presence Detect).
-  Test _UPP (User Presence Polling).
-  Test _GCP (Get Capabilities).
-  Test _GRT (Get Real Time).
-  Test _GWS (Get Wake Status).
-  Test _CWS (Clear Wake Status).
-  Test _STP (Set Expired Timer Wake Policy).
-  Test _STV (Set Timer Value).
-  Test _TIP (Expired Timer Wake Policy).
-  Test _TIV (Timer Values).
-  Test _SBS (Smart Battery Subsystem).
-  Test _BCT (Battery Charge Time).
-  Test _BIF (Battery Information).
-  Test _BIX (Battery Information Extended).
-  Test _BMA (Battery Measurement Averaging).
-  Test _BMC (Battery Maintenance Control).
-  Test _BMD (Battery Maintenance Data).
-  Test _BMS (Battery Measurement Sampling Time).
-  Test _BST (Battery Status).
-  Test _BTP (Battery Trip Point).
-  Test _BTH (Battery Throttle Limit).
-  Test _BTM (Battery Time).
-  Test _PCL (Power Consumer List).
-  Test _PIF (Power Source Information).
-  Test _PRL (Power Source Redundancy List).
-  Test _PSR (Power Source).
-  Test _GAI (Get Averaging Level).
-  Test _GHL (Get Harware Limit).
-  Test _PMC (Power Meter Capabilities).
-  Test _PMD (Power Meter Devices).
-  Test _PMM (Power Meter Measurement).
-  Test _WPC (Wireless Power Calibration).
-  Test _WPP (Wireless Power Polling).
-  Test _FIF (Fan Information).
-  Test _FPS (Fan Performance States).
-  Test _FSL (Fan Set Level).
-  Test _FST (Fan Status).
-  Test _ACx (Active Cooling).
-  Test _ART (Active Cooling Relationship Table).
-  Test _CRT (Critical Trip Point).
-  Test _CR3 (Warm/Standby Temperature).
-  Test _DTI (Device Temperature Indication).
-  Test _HOT (Hot Temperature).
-  Test _MTL (Minimum Throttle Limit).
-  Test _NTT (Notification Temp Threshold).
-  Test _PSL (Passive List).
-  Test _PSV (Passive Temp).
-  Test _RTV (Relative Temp Values).
-  Test _SCP (Set Cooling Policy).
-  Test _TC1 (Thermal Constant 1).
-  Test _TC2 (Thermal Constant 2).
-  Test _TFP (Thermal fast Sampling Period).
-  Test _TMP (Thermal Zone Current Temp).
-  Test _TPT (Trip Point Temperature).
-  Test _TRT (Thermal Relationship Table).
-  Test _TSN (Thermal Sensor Device).
-  Test _TSP (Thermal Sampling Period).
-  Test _TST (Temperature Sensor Threshold).
-  Test _TZD (Thermal Zone Devices).
-  Test _TZM (Thermal Zone member).
-  Test _TZP (Thermal Zone Polling).
-  Test _GPE (General Purpose Events).
-  Test _EC_ (EC Offset Query).
-  Test _PTS (Prepare to Sleep).
-  Test _TTS (Transition to State).
-  Test _WAK (System Wake).
-  Test _ADR (Return Unique ID for Device).
-  Test _BCL (Query List of Brightness Control Levels Supported).
-  Test _BCM (Set Brightness Level).
-  Test _BQC (Brightness Query Current Level).
-  Test _DCS (Return the Status of Output Device).
-  Test _DDC (Return the EDID for this Device).
-  Test _DSS (Device Set State).
-  Test _DGS (Query Graphics State).
-  Test _DOD (Enumerate All Devices Attached to Display Adapter).
-  Test _DOS (Enable/Disable Output Switching).
-  Test _GPD (Get POST Device).
-  Test _ROM (Get ROM Data).
-  Test _SPD (Set POST Device).
-  Test _VPO (Video POST Options).
-  Test _CBA (Configuration Base Address).
-  Test _IFT (IPMI Interface Type).
-  Test _SRV (IPMI Interface Revision).
- msct            (1 test):
-  MSCT Maximum System Characteristics Table test.
- msdm            (1 test):
-  MSDM Microsoft Data Management Table test.
- pcc             (1 test):
-  Processor Clocking Control (PCC) test.
- rsdp            (1 test):
-  RSDP Root System Description Pointer test.
- rsdt            (1 test):
-  RSDT Root System Description Table test.
- sbst            (1 test):
-  SBST Smart Battery Specificiation Table test.
- slic            (1 test):
-  SLIC Software Licensing Description Table test.
- slit            (1 test):
-  SLIT System Locality Distance Information test.
- spcr            (1 test):
-  SPCR Serial Port Console Redirection Table test.
- spmi            (1 test):
-  SPMI Service Processor Management Interface Description Table test.
- srat            (1 test):
-  SRAT System Resource Affinity Table test.
- stao            (1 test):
-  STAO Status Override Table test.
- tcpa            (1 test):
-  Validate TCPA table.
- tpm2            (1 test):
-  Validate TPM2 table.
- uefi            (1 test):
-  UEFI Data Table test.
- waet            (1 test):
-  Windows ACPI Emulated Devices Table test.
- wdat            (1 test):
-  WDAT Microsoft Hardware Watchdog Action Table test.
- wmi             (1 test):
-  Windows Management Instrumentation test.
- xenv            (1 test):
-  Validate XENV table.
- xsdt            (1 test):
-  XSDT Extended System Description Table test.
-
-Batch tests:
- acpiinfo        (3 tests):
-  Determine Kernel ACPI version.
-  Determine machine's ACPI version.
-  Determine AML compiler.
- acpitables      (1 test):
-  Test ACPI headers.
- apicedge        (1 test):
-  Legacy and PCI Interrupt Edge/Level trigger tests.
- apicinstance    (1 test):
-  Test for single instance of APIC/MADT table.
- asf             (1 test):
-  ASF! Alert Standard Format Table test.
- aspm            (2 tests):
-  PCIe ASPM ACPI test.
-  PCIe ASPM registers test.
- aspt            (1 test):
-  ASPT Table test.
- autobrightness  (2 tests):
-  Test for maximum and actual brightness.
-  Change actual brightness.
- bert            (1 test):
-  BERT Boot Error Record Table test.
- bgrt            (1 test):
-  BGRT Boot Graphics Resource Table test.
- bios32          (1 test):
-  BIOS32 Service Directory test.
- bios_info       (1 test):
-  Gather BIOS DMI information
- bmc_info        (1 test):
-  BMC Info
- boot            (1 test):
-  BOOT Table test.
- checksum        (1 test):
-  ACPI table checksum test.
- cpep            (1 test):
-  CPEP Corrected Platform Error Polling Table test.
- cpufreq         (7 tests):
-  CPU frequency table consistency
-  CPU frequency table duplicates
-  CPU frequency firmware limits
-  CPU frequency claimed maximum
-  CPU frequency SW_ANY control
-  CPU frequency SW_ALL control
-  CPU frequency performance tests.
- crs             (1 test):
-  Test PCI host bridge configuration using _CRS.
- csm             (1 test):
-  UEFI Compatibility Support Module test.
- csrt            (1 test):
-  CSRT Core System Resource Table test.
- cstates         (1 test):
-  Test all CPUs C-states.
- dbg2            (1 test):
-  DBG2 (Debug Port Table 2) test.
- dbgp            (1 test):
-  DBGP (Debug Port) Table test.
- dmar            (1 test):
-  DMA Remapping test.
- dmicheck        (3 tests):
-  Find and test SMBIOS Table Entry Points.
-  Test DMI/SMBIOS tables for errors.
-  Test DMI/SMBIOS3 tables for errors.
- dt_base         (3 tests):
-  Check device tree presence
-  Check device tree baseline validity
-  Check device tree warnings
- dt_sysinfo      (3 tests):
-  Check model property
-  Check system-id property
-  Check OpenPOWER Reference compatible
- ebda            (1 test):
-  Test EBDA is reserved in E820 table.
- ecdt            (1 test):
-  ECDT Embedded Controller Boot Resources Table test.
- einj            (1 test):
-  EINJ Error Injection Table test.
- erst            (1 test):
-  ERST Error Record Serialization Table test.
- facs            (1 test):
-  FACS Firmware ACPI Control Structure test.
- fadt            (6 tests):
-  ACPI FADT Description Table flag info.
-  FADT checksum test.
-  FADT revision test.
-  ACPI FADT Description Table tests.
-  Test FADT SCI_EN bit is enabled.
-  Test FADT reset register.
- fan             (2 tests):
-  Test fan status.
-  Load system, check CPU fan status.
- fpdt            (1 test):
-  FPDT Firmware Performance Data Table test.
- gtdt            (1 test):
-  GTDT Generic Timer Description Table test.
- hda_audio       (1 test):
-  HDA Audio Pin Configuration test.
- hest            (1 test):
-  HEST Hardware Error Source Table test.
- hpet            (4 tests):
-  Test HPET base in kernel log.
-  Test HPET base in HPET table.
-  Test HPET base in DSDT and/or SSDT.
-  Test HPET configuration.
- iort            (1 test):
-  IORT IO Remapping Table test.
- klog            (1 test):
-  Kernel log error check.
- lpit            (1 test):
-  LPIT Low Power Idle Table test.
- madt            (5 tests):
-  MADT checksum test.
-  MADT revision test.
-  MADT architecture minimum revision test.
-  MADT flags field reserved bits test.
-  MADT subtable tests.
- maxfreq         (1 test):
-  Maximum CPU frequency test.
- maxreadreq      (1 test):
-  Test firmware settings MaxReadReq for PCI Express devices.
- mcfg            (2 tests):
-  Validate MCFG table.
-  Validate MCFG PCI config space.
- mchi            (1 test):
-  MCHI Management Controller Host Interface Table test.
- method          (191 tests):
-  Test Method Names.
-  Test _AEI.
-  Test _EVT (Event Method).
-  Test _DLM (Device Lock Mutex).
-  Test _PIC (Inform AML of Interrupt Model).
-  Test _CID (Compatible ID).
-  Test _DDN (DOS Device Name).
-  Test _HID (Hardware ID).
-  Test _HRV (Hardware Revision Number).
-  Test _MLS (Multiple Language String).
-  Test _PLD (Physical Device Location).
-  Test _SUB (Subsystem ID).
-  Test _SUN (Slot User Number).
-  Test _STR (String).
-  Test _UID (Unique ID).
-  Test _CDM (Clock Domain).
-  Test _CRS (Current Resource Settings).
-  Test _DSD (Device Specific Data).
-  Test _DIS (Disable).
-  Test _DMA (Direct Memory Access).
-  Test _FIX (Fixed Register Resource Provider).
-  Test _GSB (Global System Interrupt Base).
-  Test _HPP (Hot Plug Parameters).
-  Test _PRS (Possible Resource Settings).
-  Test _PRT (PCI Routing Table).
-  Test _PXM (Proximity).
-  Test _CCA (Cache Coherency Attribute).
-  Test _EDL (Eject Device List).
-  Test _EJD (Ejection Dependent Device).
-  Test _EJ0 (Eject).
-  Test _EJ1 (Eject).
-  Test _EJ2 (Eject).
-  Test _EJ3 (Eject).
-  Test _EJ4 (Eject).
-  Test _LCK (Lock).
-  Test _RMV (Remove).
-  Test _STA (Status).
-  Test _DEP (Operational Region Dependencies).
-  Test _BDN (BIOS Dock Name).
-  Test _BBN (Base Bus Number).
-  Test _DCK (Dock).
-  Test _INI (Initialize).
-  Test _GLK (Global Lock).
-  Test _SEG (Segment).
-  Test _OFF (Set resource off).
-  Test _ON_ (Set resource on).
-  Test _DSW (Device Sleep Wake).
-  Test _IRC (In Rush Current).
-  Test _PRE (Power Resources for Enumeration).
-  Test _PR0 (Power Resources for D0).
-  Test _PR1 (Power Resources for D1).
-  Test _PR2 (Power Resources for D2).
-  Test _PR3 (Power Resources for D3).
-  Test _PRW (Power Resources for Wake).
-  Test _PS0 (Power State 0).
-  Test _PS1 (Power State 1).
-  Test _PS2 (Power State 2).
-  Test _PS3 (Power State 3).
-  Test _PSC (Power State Current).
-  Test _PSE (Power State for Enumeration).
-  Test _PSW (Power State Wake).
-  Test _S1D (S1 Device State).
-  Test _S2D (S2 Device State).
-  Test _S3D (S3 Device State).
-  Test _S4D (S4 Device State).
-  Test _S0W (S0 Device Wake State).
-  Test _S1W (S1 Device Wake State).
-  Test _S2W (S2 Device Wake State).
-  Test _S3W (S3 Device Wake State).
-  Test _S4W (S4 Device Wake State).
-  Test _RST (Device Reset).
-  Test _PRR (Power Resource for Reset).
-  Test _S0_ (S0 System State).
-  Test _S1_ (S1 System State).
-  Test _S2_ (S2 System State).
-  Test _S3_ (S3 System State).
-  Test _S4_ (S4 System State).
-  Test _S5_ (S5 System State).
-  Test _SWS (System Wake Source).
-  Test _PSS (Performance Supported States).
-  Test _CPC (Continuous Performance Control).
-  Test _CSD (C State Dependencies).
-  Test _CST (C States).
-  Test _PCT (Performance Control).
-  Test _PDL (P-State Depth Limit).
-  Test _PPC (Performance Present Capabilities).
-  Test _PPE (Polling for Platform Error).
-  Test _PSD (Power State Dependencies).
-  Test _PTC (Processor Throttling Control).
-  Test _TDL (T-State Depth Limit).
-  Test _TPC (Throttling Present Capabilities).
-  Test _TSD (Throttling State Dependencies).
-  Test _TSS (Throttling Supported States).
-  Test _LPI (Low Power Idle States).
-  Test _RDI (Resource Dependencies for Idle).
-  Test _PUR (Processor Utilization Request).
-  Test _MSG (Message).
-  Test _SST (System Status).
-  Test _ALC (Ambient Light Colour Chromaticity).
-  Test _ALI (Ambient Light Illuminance).
-  Test _ALT (Ambient Light Temperature).
-  Test _ALP (Ambient Light Polling).
-  Test _ALR (Ambient Light Response).
-  Test _LID (Lid Status).
-  Test _GTF (Get Task File).
-  Test _GTM (Get Timing Mode).
-  Test _MBM (Memory Bandwidth Monitoring Data).
-  Test _UPC (USB Port Capabilities).
-  Test _UPD (User Presence Detect).
-  Test _UPP (User Presence Polling).
-  Test _GCP (Get Capabilities).
-  Test _GRT (Get Real Time).
-  Test _GWS (Get Wake Status).
-  Test _CWS (Clear Wake Status).
-  Test _STP (Set Expired Timer Wake Policy).
-  Test _STV (Set Timer Value).
-  Test _TIP (Expired Timer Wake Policy).
-  Test _TIV (Timer Values).
-  Test _SBS (Smart Battery Subsystem).
-  Test _BCT (Battery Charge Time).
-  Test _BIF (Battery Information).
-  Test _BIX (Battery Information Extended).
-  Test _BMA (Battery Measurement Averaging).
-  Test _BMC (Battery Maintenance Control).
-  Test _BMD (Battery Maintenance Data).
-  Test _BMS (Battery Measurement Sampling Time).
-  Test _BST (Battery Status).
-  Test _BTP (Battery Trip Point).
-  Test _BTH (Battery Throttle Limit).
-  Test _BTM (Battery Time).
-  Test _PCL (Power Consumer List).
-  Test _PIF (Power Source Information).
-  Test _PRL (Power Source Redundancy List).
-  Test _PSR (Power Source).
-  Test _GAI (Get Averaging Level).
-  Test _GHL (Get Harware Limit).
-  Test _PMC (Power Meter Capabilities).
-  Test _PMD (Power Meter Devices).
-  Test _PMM (Power Meter Measurement).
-  Test _WPC (Wireless Power Calibration).
-  Test _WPP (Wireless Power Polling).
-  Test _FIF (Fan Information).
-  Test _FPS (Fan Performance States).
-  Test _FSL (Fan Set Level).
-  Test _FST (Fan Status).
-  Test _ACx (Active Cooling).
-  Test _ART (Active Cooling Relationship Table).
-  Test _CRT (Critical Trip Point).
-  Test _CR3 (Warm/Standby Temperature).
-  Test _DTI (Device Temperature Indication).
-  Test _HOT (Hot Temperature).
-  Test _MTL (Minimum Throttle Limit).
-  Test _NTT (Notification Temp Threshold).
-  Test _PSL (Passive List).
-  Test _PSV (Passive Temp).
-  Test _RTV (Relative Temp Values).
-  Test _SCP (Set Cooling Policy).
-  Test _TC1 (Thermal Constant 1).
-  Test _TC2 (Thermal Constant 2).
-  Test _TFP (Thermal fast Sampling Period).
-  Test _TMP (Thermal Zone Current Temp).
-  Test _TPT (Trip Point Temperature).
-  Test _TRT (Thermal Relationship Table).
-  Test _TSN (Thermal Sensor Device).
-  Test _TSP (Thermal Sampling Period).
-  Test _TST (Temperature Sensor Threshold).
-  Test _TZD (Thermal Zone Devices).
-  Test _TZM (Thermal Zone member).
-  Test _TZP (Thermal Zone Polling).
-  Test _GPE (General Purpose Events).
-  Test _EC_ (EC Offset Query).
-  Test _PTS (Prepare to Sleep).
-  Test _TTS (Transition to State).
-  Test _WAK (System Wake).
-  Test _ADR (Return Unique ID for Device).
-  Test _BCL (Query List of Brightness Control Levels Supported).
-  Test _BCM (Set Brightness Level).
-  Test _BQC (Brightness Query Current Level).
-  Test _DCS (Return the Status of Output Device).
-  Test _DDC (Return the EDID for this Device).
-  Test _DSS (Device Set State).
-  Test _DGS (Query Graphics State).
-  Test _DOD (Enumerate All Devices Attached to Display Adapter).
-  Test _DOS (Enable/Disable Output Switching).
-  Test _GPD (Get POST Device).
-  Test _ROM (Get ROM Data).
-  Test _SPD (Set POST Device).
-  Test _VPO (Video POST Options).
-  Test _CBA (Configuration Base Address).
-  Test _IFT (IPMI Interface Type).
-  Test _SRV (IPMI Interface Revision).
- microcode       (1 test):
-  Test for most recent microcode being loaded.
- mpcheck         (9 tests):
-  Test MP header.
-  Test MP CPU entries.
-  Test MP Bus entries.
-  Test MP IO APIC entries.
-  Test MP IO Interrupt entries.
-  Test MP Local Interrupt entries.
-  Test MP System Address entries.
-  Test MP Bus Hierarchy entries.
-  Test MP Compatible Bus Address Space entries.
- msct            (1 test):
-  MSCT Maximum System Characteristics Table test.
- msdm            (1 test):
-  MSDM Microsoft Data Management Table test.
- msr             (5 tests):
-  Test CPU generic MSRs.
-  Test CPU specific model MSRs.
-  Test all P State Ratios.
-  Test C1 and C3 autodemotion.
-  Test SMRR MSR registers.
- mtrr            (3 tests):
-  Validate the kernel MTRR IOMEM setup.
-  Validate the MTRR setup across all processors.
-  Test for AMD MtrrFixDramModEn being cleared by the BIOS.
- nx              (3 tests):
-  Test CPU NX capability.
-  Test all CPUs have same BIOS set NX flag.
-  Test all CPUs have same msr setting in MSR 0x1a0.
- olog            (1 test):
-  OLOG scan and analysis checks results.
- oops            (1 test):
-  Kernel log oops check.
- osilinux        (1 test):
-  Disassemble DSDT to check for _OSI("Linux").
- pcc             (1 test):
-  Processor Clocking Control (PCC) test.
- pciirq          (1 test):
-  PCI IRQ Routing Table test.
- pnp             (1 test):
-  PnP BIOS Support Installation structure test.
- prd_info        (1 test):
-  OPAL Processor Recovery Diagnostics Info
- rsdp            (1 test):
-  RSDP Root System Description Pointer test.
- rsdt            (1 test):
-  RSDT Root System Description Table test.
- sbst            (1 test):
-  SBST Smart Battery Specificiation Table test.
- securebootcert  (1 test):
-  UEFI secure boot test.
- slic            (1 test):
-  SLIC Software Licensing Description Table test.
- slit            (1 test):
-  SLIT System Locality Distance Information test.
- spcr            (1 test):
-  SPCR Serial Port Console Redirection Table test.
- spmi            (1 test):
-  SPMI Service Processor Management Interface Description Table test.
- srat            (1 test):
-  SRAT System Resource Affinity Table test.
- stao            (1 test):
-  STAO Status Override Table test.
- syntaxcheck     (1 test):
-  Disassemble and reassemble DSDT and SSDTs.
- tcpa            (1 test):
-  Validate TCPA table.
- tpm2            (1 test):
-  Validate TPM2 table.
- uefi            (1 test):
-  UEFI Data Table test.
- uefibootpath    (1 test):
-  Test UEFI Boot Path Boot####.
- version         (4 tests):
-  Gather kernel signature.
-  Gather kernel system information.
-  Gather kernel boot command line.
-  Gather ACPI driver version.
- virt            (1 test):
-  CPU Virtualisation Configuration test.
- waet            (1 test):
-  Windows ACPI Emulated Devices Table test.
- wakealarm       (5 tests):
-  Test existence of RTC with alarm interface.
-  Trigger wakealarm for 1 seconds in the future.
-  Test if wakealarm is fired.
-  Multiple wakealarm firing tests.
-  Reset wakealarm time.
- wdat            (1 test):
-  WDAT Microsoft Hardware Watchdog Action Table test.
- wmi             (1 test):
-  Windows Management Instrumentation test.
- xenv            (1 test):
-  Validate XENV table.
- xsdt            (1 test):
-  XSDT Extended System Description Table test.
-
-Interactive tests:
- ac_adapter      (3 tests):
-  Test ACPI ac_adapter state.
-  Test ac_adapter initial on-line state.
-  Test ac_adapter state changes.
- battery         (1 test):
-  Battery test.
- brightness      (3 tests):
-  Observe all brightness changes.
-  Observe min, max brightness changes.
-  Test brightness hotkeys.
- hotkey          (1 test):
-  Hotkey keypress checks.
- lid             (3 tests):
-  Test LID buttons report open correctly.
-  Test LID buttons on a single open/close.
-  Test LID buttons on multiple open/close events.
- power_button    (1 test):
-  Test press of power button and ACPI event.
-
-Power States tests:
- s3              (1 test):
-  S3 suspend/resume test.
- s3power         (1 test):
-  S3 power loss during suspend test.
- s4              (1 test):
-  S4 hibernate/resume test.
-
-Utilities:
- acpidump        (1 test):
-  Dump ACPI tables.
- cmosdump        (1 test):
-  Dump CMOS Memory.
- crsdump         (1 test):
-  Dump ACPI _CRS (Current Resource Settings).
- ebdadump        (1 test):
-  Dump EBDA region.
- esrtdump        (1 test):
-  Dump ESRT Table.
- gpedump         (1 test):
-  Dump GPEs.
- memmapdump      (1 test):
-  Dump system memory map.
- mpdump          (1 test):
-  Dump Multi Processor Data.
- plddump         (1 test):
-  Dump ACPI _PLD (Physical Device Location).
- prsdump         (1 test):
-  Dump ACPI _PRS (Possible Resource Settings).
- romdump         (1 test):
-  Dump ROM data.
- uefidump        (1 test):
-  Dump UEFI Variables.
- uefivarinfo     (1 test):
-  UEFI variable info query.
-
-Unsafe tests:
- uefirtauthvar   (12 tests):
-  Create authenticated variable test.
-  Authenticated variable test with the same authenticated variable.
-  Authenticated variable test with another valid authenticated variable.
-  Append authenticated variable test.
-  Update authenticated variable test.
-  Authenticated variable test with old authenticated variable.
-  Delete authenticated variable test.
-  Authenticated variable test with invalid modified data.
-  Authenticated variable test with invalid modified timestamp.
-  Authenticated variable test with different guid.
-  Authenticated variable test with invalid attributes.
-  Set and delete authenticated variable created by different key test.
- uefirtmisc      (3 tests):
-  Test for UEFI miscellaneous runtime service interfaces.
-  Stress test for UEFI miscellaneous runtime service interfaces.
-  Test GetNextHighMonotonicCount with invalid NULL parameter.
- uefirttime      (35 tests):
-  Test UEFI RT service get time interface.
-  Test UEFI RT service get time interface, NULL time parameter.
-  Test UEFI RT service get time interface, NULL time and NULL capabilties parameters.
-  Test UEFI RT service set time interface.
-  Test UEFI RT service set time interface, invalid year 1899.
-  Test UEFI RT service set time interface, invalid year 10000.
-  Test UEFI RT service set time interface, invalid month 0.
-  Test UEFI RT service set time interface, invalid month 13.
-  Test UEFI RT service set time interface, invalid day 0.
-  Test UEFI RT service set time interface, invalid day 32.
-  Test UEFI RT service set time interface, invalid hour 24.
-  Test UEFI RT service set time interface, invalid minute 60.
-  Test UEFI RT service set time interface, invalid second 60.
-  Test UEFI RT service set time interface, invalid nanosecond 1000000000.
-  Test UEFI RT service set time interface, invalid timezone -1441.
-  Test UEFI RT service set time interface, invalid timezone 1441.
-  Test UEFI RT service get wakeup time interface.
-  Test UEFI RT service get wakeup time interface, NULL enabled parameter.
-  Test UEFI RT service get wakeup time interface, NULL pending parameter.
-  Test UEFI RT service get wakeup time interface, NULL time parameter.
-  Test UEFI RT service get wakeup time interface, NULL enabled, pending and time parameters.
-  Test UEFI RT service set wakeup time interface.
-  Test UEFI RT service set wakeup time interface, NULL time parameter.
-  Test UEFI RT service set wakeup time interface, invalid year 1899.
-  Test UEFI RT service set wakeup time interface, invalid year 10000.
-  Test UEFI RT service set wakeup time interface, invalid month 0.
-  Test UEFI RT service set wakeup time interface, invalid month 13.
-  Test UEFI RT service set wakeup time interface, invalid day 0.
-  Test UEFI RT service set wakeup time interface, invalid day 32.
-  Test UEFI RT service set wakeup time interface, invalid hour 24.
-  Test UEFI RT service set wakeup time interface, invalid minute 60.
-  Test UEFI RT service set wakeup time interface, invalid second 60.
-  Test UEFI RT service set wakeup time interface, invalid nanosecond 1000000000.
-  Test UEFI RT service set wakeup time interface, invalid timezone -1441.
-  Test UEFI RT service set wakeup time interface, invalid timezone 1441.
- uefirtvariable  (8 tests):
-  Test UEFI RT service get variable interface.
-  Test UEFI RT service get next variable name interface.
-  Test UEFI RT service set variable interface.
-  Test UEFI RT service query variable info interface.
-  Test UEFI RT service variable interface stress test.
-  Test UEFI RT service set variable interface stress test.
-  Test UEFI RT service query variable info interface stress test.
-  Test UEFI RT service get variable interface, invalid parameters.
-
-UEFI tests:
- csm             (1 test):
-  UEFI Compatibility Support Module test.
- esrt            (1 test):
-  Sanity check UEFI ESRT Table.
- securebootcert  (1 test):
-  UEFI secure boot test.
- uefibootpath    (1 test):
-  Test UEFI Boot Path Boot####.
- uefirtauthvar   (12 tests):
-  Create authenticated variable test.
-  Authenticated variable test with the same authenticated variable.
-  Authenticated variable test with another valid authenticated variable.
-  Append authenticated variable test.
-  Update authenticated variable test.
-  Authenticated variable test with old authenticated variable.
-  Delete authenticated variable test.
-  Authenticated variable test with invalid modified data.
-  Authenticated variable test with invalid modified timestamp.
-  Authenticated variable test with different guid.
-  Authenticated variable test with invalid attributes.
-  Set and delete authenticated variable created by different key test.
- uefirtmisc      (3 tests):
-  Test for UEFI miscellaneous runtime service interfaces.
-  Stress test for UEFI miscellaneous runtime service interfaces.
-  Test GetNextHighMonotonicCount with invalid NULL parameter.
- uefirttime      (35 tests):
-  Test UEFI RT service get time interface.
-  Test UEFI RT service get time interface, NULL time parameter.
-  Test UEFI RT service get time interface, NULL time and NULL capabilties parameters.
-  Test UEFI RT service set time interface.
-  Test UEFI RT service set time interface, invalid year 1899.
-  Test UEFI RT service set time interface, invalid year 10000.
-  Test UEFI RT service set time interface, invalid month 0.
-  Test UEFI RT service set time interface, invalid month 13.
-  Test UEFI RT service set time interface, invalid day 0.
-  Test UEFI RT service set time interface, invalid day 32.
-  Test UEFI RT service set time interface, invalid hour 24.
-  Test UEFI RT service set time interface, invalid minute 60.
-  Test UEFI RT service set time interface, invalid second 60.
-  Test UEFI RT service set time interface, invalid nanosecond 1000000000.
-  Test UEFI RT service set time interface, invalid timezone -1441.
-  Test UEFI RT service set time interface, invalid timezone 1441.
-  Test UEFI RT service get wakeup time interface.
-  Test UEFI RT service get wakeup time interface, NULL enabled parameter.
-  Test UEFI RT service get wakeup time interface, NULL pending parameter.
-  Test UEFI RT service get wakeup time interface, NULL time parameter.
-  Test UEFI RT service get wakeup time interface, NULL enabled, pending and time parameters.
-  Test UEFI RT service set wakeup time interface.
-  Test UEFI RT service set wakeup time interface, NULL time parameter.
-  Test UEFI RT service set wakeup time interface, invalid year 1899.
-  Test UEFI RT service set wakeup time interface, invalid year 10000.
-  Test UEFI RT service set wakeup time interface, invalid month 0.
-  Test UEFI RT service set wakeup time interface, invalid month 13.
-  Test UEFI RT service set wakeup time interface, invalid day 0.
-  Test UEFI RT service set wakeup time interface, invalid day 32.
-  Test UEFI RT service set wakeup time interface, invalid hour 24.
-  Test UEFI RT service set wakeup time interface, invalid minute 60.
-  Test UEFI RT service set wakeup time interface, invalid second 60.
-  Test UEFI RT service set wakeup time interface, invalid nanosecond 1000000000.
-  Test UEFI RT service set wakeup time interface, invalid timezone -1441.
-  Test UEFI RT service set wakeup time interface, invalid timezone 1441.
- uefirtvariable  (8 tests):
-  Test UEFI RT service get variable interface.
-  Test UEFI RT service get next variable name interface.
-  Test UEFI RT service set variable interface.
-  Test UEFI RT service query variable info interface.
-  Test UEFI RT service variable interface stress test.
-  Test UEFI RT service set variable interface stress test.
-  Test UEFI RT service query variable info interface stress test.
-  Test UEFI RT service get variable interface, invalid parameters.
-
-ACPI Spec Compliance tests:
- fadt            (6 tests):
-  ACPI FADT Description Table flag info.
-  FADT checksum test.
-  FADT revision test.
-  ACPI FADT Description Table tests.
-  Test FADT SCI_EN bit is enabled.
-  Test FADT reset register.
- madt            (5 tests):
-  MADT checksum test.
-  MADT revision test.
-  MADT architecture minimum revision test.
-  MADT flags field reserved bits test.
-  MADT subtable tests.
- rsdp            (1 test):
-  RSDP Root System Description Pointer test.
diff --git a/fwts-test/arg-show-tests-full-0001/test-0001.sh b/fwts-test/arg-show-tests-full-0001/test-0001.sh
index b4e74f7..1302bd3 100755
--- a/fwts-test/arg-show-tests-full-0001/test-0001.sh
+++ b/fwts-test/arg-show-tests-full-0001/test-0001.sh
@@ -3,17 +3,25 @@ 
 TEST="Test --show-tests-full option"
 NAME=test-0001.sh
 TMPLOG=$TMP/arg-show-tests-full.log.$$
+export FWTS_SHOW_LOGS="FULL"
+
+# Dynamically create the log template per test
+$FWTS show_logs &> /dev/null
+if [ $? -ne 0 ]; then
+	echo SKIP: $TEST, $NAME
+	exit 77
+fi
 
 #
-#  Non-x86 tests don't have WMI so skip this test
+#  If we can't set the tty then we can't test
 #
-$FWTS --show-tests | grep wmi > /dev/null
-if [ $? -eq 1 ]; then
+stty cols 80 &> /dev/null
+if [ $? -ne 0 ]; then
+	tset &> /dev/null
 	echo SKIP: $TEST, $NAME
 	exit 77
 fi
 
-stty cols 80
 $FWTS --show-tests-full > $TMPLOG
 diff $TMPLOG $FWTSTESTDIR/arg-show-tests-full-0001/arg-show-tests-full-0001.log >> $FAILURE_LOG
 ret=$?
@@ -23,5 +31,8 @@  else
 	echo FAILED: $TEST, $NAME
 fi
 
+stty cols 80 &> /dev/null
+tset &> /dev/null
+
 rm $TMPLOG
 exit $ret
diff --git a/src/Makefile.am b/src/Makefile.am
index 100eaa3..8ac67b4 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -132,6 +132,7 @@  fwts_SOURCES = main.c 				\
 	pci/aspm/aspm.c 			\
 	pci/crs/crs.c 				\
 	pci/maxreadreq/maxreadreq.c 		\
+	show/show_logs.c			\
 	uefi/csm/csm.c 				\
 	uefi/uefidump/uefidump.c 		\
 	uefi/uefirttime/uefirttime.c		\
diff --git a/src/show/show_logs.c b/src/show/show_logs.c
new file mode 100644
index 0000000..7b958ff
--- /dev/null
+++ b/src/show/show_logs.c
@@ -0,0 +1,1480 @@ 
+/*
+ * Copyright (C) 2010-2016 Canonical
+ * Some of this work - Copyright (C) 2016 IBM
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+
+#include "fwts.h"
+
+static char *fwts_show[] = {
+"ACPI tests:",
+" acpiinfo        General ACPI information test.",
+" acpitables      ACPI table headers sanity tests.",
+#ifdef FWTS_ARCH_INTEL
+" apicinstance    Test for single instance of APIC/MADT table.",
+#endif
+" asf             ASF! Alert Standard Format Table test.",
+" aspt            ASPT Table test.",
+" bert            BERT Boot Error Record Table test.",
+" bgrt            BGRT Boot Graphics Resource Table test.",
+" boot            BOOT Table test.",
+" checksum        ACPI table checksum test.",
+" cpep            CPEP Corrected Platform Error Polling Table test.",
+" csrt            CSRT Core System Resource Table test.",
+#ifdef FWTS_ARCH_INTEL
+" cstates         Processor C state support test.",
+#endif
+" dbg2            DBG2 (Debug Port Table 2) test.",
+" dbgp            DBGP (Debug Port) Table test.",
+#ifdef FWTS_ARCH_INTEL
+" dmar            DMA Remapping (VT-d) test.",
+#endif
+" ecdt            ECDT Embedded Controller Boot Resources Table test.",
+" einj            EINJ Error Injection Table test.",
+" erst            ERST Error Record Serialization Table test.",
+" facs            FACS Firmware ACPI Control Structure test.",
+" fadt            FADT Fixed ACPI Description Table tests.",
+" fpdt            FPDT Firmware Performance Data Table test.",
+" gtdt            GTDT Generic Timer Description Table test.",
+" hest            HEST Hardware Error Source Table test.",
+#ifdef FWTS_ARCH_INTEL
+" hpet            HPET IA-PC High Precision Event Timer Table tests.",
+#endif
+" iort            IORT IO Remapping Table test.",
+" lpit            LPIT Low Power Idle Table test.",
+" madt            MADT Multiple APIC Description Table "
+	"(spec compliant).",
+#ifdef FWTS_ARCH_INTEL
+" mcfg            MCFG PCI Express* memory mapped config space test.",
+#endif
+" mchi            MCHI Management Controller Host Interface"
+		" Table test.",
+" method          ACPI DSDT Method Semantic tests.",
+" msct            MSCT Maximum System Characteristics Table test.",
+" msdm            MSDM Microsoft Data Management Table test.",
+#ifdef FWTS_ARCH_INTEL
+" pcc             Processor Clocking Control (PCC) test.",
+#endif
+" rsdp            RSDP Root System Description Pointer test.",
+" rsdt            RSDT Root System Description Table test.",
+" sbst            SBST Smart Battery Specification Table test.",
+" slic            SLIC Software Licensing Description Table test.",
+" slit            SLIT System Locality Distance Information test.",
+" spcr            SPCR Serial Port Console Redirection Table test.",
+" spmi            SPMI Service Processor Management Interface"
+		" Description Table test.",
+" srat            SRAT System Resource Affinity Table test.",
+" stao            STAO Status Override Table test.",
+" tcpa            TCPA Trusted Computing Platform Alliance"
+		" Capabilities Table test.",
+" tpm2            TPM2 Trusted Platform Module 2 test.",
+" uefi            UEFI Data Table test.",
+" waet            WAET Windows ACPI Emulated Devices Table test.",
+" wdat            WDAT Microsoft Hardware Watchdog Action Table test.",
+#ifdef FWTS_ARCH_INTEL
+" wmi             Extract and analyse Windows Management"
+		" Instrumentation (WMI).",
+#endif
+" xenv            XENV Xen Environment Table tests.",
+" xsdt            XSDT Extended System Description Table test.",
+"",
+"Batch tests:",
+" acpiinfo        General ACPI information test.",
+" acpitables      ACPI table headers sanity tests.",
+#ifdef FWTS_ARCH_INTEL
+" apicedge        APIC edge/level test.",
+" apicinstance    Test for single instance of APIC/MADT table.",
+#endif
+" asf             ASF! Alert Standard Format Table test.",
+" aspm            PCIe ASPM test.",
+" aspt            ASPT Table test.",
+#ifdef FWTS_ARCH_INTEL
+" autobrightness  Automated LCD brightness test.",
+#endif
+" bert            BERT Boot Error Record Table test.",
+" bgrt            BGRT Boot Graphics Resource Table test.",
+#ifdef FWTS_ARCH_INTEL
+" bios32          BIOS32 Service Directory test.",
+" bios_info       Gather BIOS DMI information.",
+#endif
+" bmc_info        BMC Info",
+" boot            BOOT Table test.",
+" checksum        ACPI table checksum test.",
+" cpep            CPEP Corrected Platform Error Polling Table test.",
+" cpufreq         CPU frequency scaling tests.",
+#ifdef FWTS_ARCH_INTEL
+" crs             Test PCI host bridge configuration using _CRS.",
+" csm             UEFI Compatibility Support Module test.",
+#endif
+" csrt            CSRT Core System Resource Table test.",
+#ifdef FWTS_ARCH_INTEL
+" cstates         Processor C state support test.",
+#endif
+" dbg2            DBG2 (Debug Port Table 2) test.",
+" dbgp            DBGP (Debug Port) Table test.",
+#ifdef FWTS_ARCH_INTEL
+" dmar            DMA Remapping (VT-d) test.",
+" dmicheck        DMI/SMBIOS table tests.",
+#endif
+#ifdef HAVE_LIBFDT
+" dt_base         Base device tree validity check",
+" dt_sysinfo      Device tree system information test",
+#endif
+#ifdef FWTS_ARCH_INTEL
+" ebda            Test EBDA region is mapped and reserved in memory"
+		" map table.",
+#endif
+" ecdt            ECDT Embedded Controller Boot Resources Table test.",
+" einj            EINJ Error Injection Table test.",
+" erst            ERST Error Record Serialization Table test.",
+" facs            FACS Firmware ACPI Control Structure test.",
+" fadt            FADT Fixed ACPI Description Table tests.",
+#ifdef FWTS_ARCH_INTEL
+" fan             Simple fan tests.",
+#endif
+" fpdt            FPDT Firmware Performance Data Table test.",
+" gtdt            GTDT Generic Timer Description Table test.",
+" hda_audio       HDA Audio Pin Configuration test.",
+" hest            HEST Hardware Error Source Table test.",
+#ifdef FWTS_ARCH_INTEL
+" hpet            HPET IA-PC High Precision Event Timer Table tests.",
+#endif
+" iort            IORT IO Remapping Table test.",
+" klog            Scan kernel log for errors and warnings.",
+" lpit            LPIT Low Power Idle Table test.",
+" madt            MADT Multiple APIC Description Table"
+	" (spec compliant).",
+#ifdef FWTS_ARCH_INTEL
+" maxfreq         Test max CPU frequencies against max scaling"
+		" frequency.",
+#endif
+" maxreadreq      Test firmware has set PCI Express MaxReadReq to a"
+		" higher value on non-motherboard devices.",
+#ifdef FWTS_ARCH_INTEL
+" mcfg            MCFG PCI Express* memory mapped config space test.",
+#endif
+" mchi            MCHI Management Controller Host Interface Table test.",
+" method          ACPI DSDT Method Semantic tests.",
+#ifdef FWTS_ARCH_INTEL
+" microcode       Test if system is using latest microcode.",
+" mpcheck         MultiProcessor Tables tests.",
+#endif
+" msct            MSCT Maximum System Characteristics Table test.",
+" msdm            MSDM Microsoft Data Management Table test.",
+#ifdef FWTS_ARCH_INTEL
+" msr             MSR register tests.",
+" mtrr            MTRR tests.",
+#endif
+#ifdef FWTS_ARCH_INTEL
+" nx              Test if CPU NX is disabled by the BIOS.",
+#endif
+" olog            Run OLOG scan and analysis checks.",
+" oops            Scan kernel log for Oopses.",
+#ifdef FWTS_ARCH_INTEL
+" osilinux        Disassemble DSDT to check for _OSI(\"Linux\").",
+" pcc             Processor Clocking Control (PCC) test.",
+" pciirq          PCI IRQ Routing Table test.",
+" pnp             BIOS Support Installation structure test.",
+#endif
+" prd_info        OPAL Processor Recovery Diagnostics Info",
+" rsdp            RSDP Root System Description Pointer test.",
+" rsdt            RSDT Root System Description Table test.",
+" sbst            SBST Smart Battery Specification Table test.",
+" securebootcert  UEFI secure boot test.",
+" show_logs       Show Tests Log Files",
+" slic            SLIC Software Licensing Description Table test.",
+" slit            SLIT System Locality Distance Information test.",
+" spcr            SPCR Serial Port Console Redirection Table test.",
+" spmi            SPMI Service Processor Management Interface"
+		" Description Table test.",
+" srat            SRAT System Resource Affinity Table test.",
+" stao            STAO Status Override Table test.",
+" syntaxcheck     Re-assemble DSDT and SSDTs to find syntax errors"
+		" and warnings.",
+" tcpa            TCPA Trusted Computing Platform Alliance"
+		" Capabilities Table test.",
+" tpm2            TPM2 Trusted Platform Module 2 test.",
+" uefi            UEFI Data Table test.",
+" uefibootpath    Sanity check for UEFI Boot Path Boot####.",
+" version         Gather kernel system information.",
+#ifdef FWTS_ARCH_INTEL
+" virt            CPU Virtualisation Configuration test.",
+#endif
+" waet            WAET Windows ACPI Emulated Devices Table test.",
+" wakealarm       ACPI Wakealarm tests.",
+" wdat            WDAT Microsoft Hardware Watchdog Action Table test.",
+#ifdef FWTS_ARCH_INTEL
+" wmi             Extract and analyse Windows Management"
+		" Instrumentation (WMI).",
+#endif
+" xenv            XENV Xen Environment Table tests.",
+" xsdt            XSDT Extended System Description Table test.",
+"",
+#ifdef FWTS_ARCH_INTEL
+"Interactive tests:",
+" ac_adapter      Interactive ac_adapter power test.",
+" battery         Battery tests.",
+" brightness      Interactive LCD brightness test.",
+" hotkey          Hotkey scan code tests.",
+" lid             Interactive lid button test.",
+" power_button    Interactive power_button button test.",
+"",
+"Power States tests:",
+" s3              S3 suspend/resume test.",
+" s3power         S3 power loss during suspend test (takes minimum"
+		" of 10 minutes to run).",
+" s4              S4 hibernate/resume test.",
+"",
+#endif
+"Utilities:",
+" acpidump        Dump ACPI tables.",
+#ifdef FWTS_ARCH_INTEL
+" cmosdump        Dump CMOS Memory.",
+#endif
+" crsdump         Dump ACPI _CRS resources.",
+#ifdef FWTS_ARCH_INTEL
+" ebdadump        Dump EBDA region.",
+#endif
+" esrtdump        Dump ESRT table.",
+" gpedump         Dump GPEs.",
+#ifdef FWTS_ARCH_INTEL
+" memmapdump      Dump system memory map.",
+" mpdump          Dump MultiProcessor Data.",
+#endif
+" plddump         Dump ACPI _PLD (Physical Device Location).",
+" prsdump         Dump ACPI _PRS resources.",
+#ifdef FWTS_ARCH_INTEL
+" romdump         Dump ROM data.",
+#endif
+" uefidump        Dump UEFI variables.",
+" uefivarinfo     UEFI variable info query.",
+"",
+"Unsafe tests:",
+" uefirtauthvar   Authenticated variable tests.",
+" uefirtmisc      UEFI miscellaneous runtime service interface tests.",
+" uefirttime      UEFI Runtime service time interface tests.",
+" uefirtvariable  UEFI Runtime service variable interface tests.",
+"",
+"UEFI tests:",
+#ifdef FWTS_ARCH_INTEL
+" csm             UEFI Compatibility Support Module test.",
+#endif
+" esrt            Sanity check UEFI ESRT Table.",
+" securebootcert  UEFI secure boot test.",
+" uefibootpath    Sanity check for UEFI Boot Path Boot####.",
+" uefirtauthvar   Authenticated variable tests.",
+" uefirtmisc      UEFI miscellaneous runtime service interface tests.",
+" uefirttime      UEFI Runtime service time interface tests.",
+" uefirtvariable  UEFI Runtime service variable interface tests.",
+"",
+"ACPI Spec Compliance tests:",
+" fadt            FADT Fixed ACPI Description Table tests.",
+" madt            MADT Multiple APIC Description Table"
+		" (spec compliant).",
+" rsdp            RSDP Root System Description Pointer test.",
+};
+
+static char *fwts_show_all[] = {
+"ACPI tests:",
+" acpiinfo        (3 tests):",
+"  Determine Kernel ACPI version.",
+"  Determine machine's ACPI version.",
+"  Determine AML compiler.",
+" acpitables      (1 test):",
+"  Test ACPI headers.",
+#ifdef FWTS_ARCH_INTEL
+" apicinstance    (1 test):",
+"  Test for single instance of APIC/MADT table.",
+#endif
+" asf             (1 test):",
+"  ASF! Alert Standard Format Table test.",
+" aspt            (1 test):",
+"  ASPT Table test.",
+" bert            (1 test):",
+"  BERT Boot Error Record Table test.",
+" bgrt            (1 test):",
+"  BGRT Boot Graphics Resource Table test.",
+" boot            (1 test):",
+"  BOOT Table test.",
+" checksum        (1 test):",
+"  ACPI table checksum test.",
+" cpep            (1 test):",
+"  CPEP Corrected Platform Error Polling Table test.",
+" csrt            (1 test):",
+"  CSRT Core System Resource Table test.",
+#ifdef FWTS_ARCH_INTEL
+" cstates         (1 test):",
+"  Test all CPUs C-states.",
+#endif
+" dbg2            (1 test):",
+"  DBG2 (Debug Port Table 2) test.",
+" dbgp            (1 test):",
+"  DBGP (Debug Port) Table test.",
+#ifdef FWTS_ARCH_INTEL
+" dmar            (1 test):",
+"  DMA Remapping test.",
+#endif
+" ecdt            (1 test):",
+"  ECDT Embedded Controller Boot Resources Table test.",
+" einj            (1 test):",
+"  EINJ Error Injection Table test.",
+" erst            (1 test):",
+"  ERST Error Record Serialization Table test.",
+" facs            (1 test):",
+"  FACS Firmware ACPI Control Structure test.",
+" fadt            (6 tests):",
+"  ACPI FADT Description Table flag info.",
+"  FADT checksum test.",
+"  FADT revision test.",
+"  ACPI FADT Description Table tests.",
+"  Test FADT SCI_EN bit is enabled.",
+"  Test FADT reset register.",
+" fpdt            (1 test):",
+"  FPDT Firmware Performance Data Table test.",
+" gtdt            (1 test):",
+"  GTDT Generic Timer Description Table test.",
+" hest            (1 test):",
+"  HEST Hardware Error Source Table test.",
+#ifdef FWTS_ARCH_INTEL
+" hpet            (4 tests):",
+"  Test HPET base in kernel log.",
+"  Test HPET base in HPET table.",
+"  Test HPET base in DSDT and/or SSDT.",
+"  Test HPET configuration.",
+#endif
+" iort            (1 test):",
+"  IORT IO Remapping Table test.",
+" lpit            (1 test):",
+"  LPIT Low Power Idle Table test.",
+" madt            (5 tests):",
+"  MADT checksum test.",
+"  MADT revision test.",
+"  MADT architecture minimum revision test.",
+"  MADT flags field reserved bits test.",
+"  MADT subtable tests.",
+#ifdef FWTS_ARCH_INTEL
+" mcfg            (2 tests):",
+"  Validate MCFG table.",
+"  Validate MCFG PCI config space.",
+#endif
+" mchi            (1 test):",
+"  MCHI Management Controller Host Interface Table test.",
+" method          (191 tests):",
+"  Test Method Names.",
+"  Test _AEI.",
+"  Test _EVT (Event Method).",
+"  Test _DLM (Device Lock Mutex).",
+"  Test _PIC (Inform AML of Interrupt Model).",
+"  Test _CID (Compatible ID).",
+"  Test _DDN (DOS Device Name).",
+"  Test _HID (Hardware ID).",
+"  Test _HRV (Hardware Revision Number).",
+"  Test _MLS (Multiple Language String).",
+"  Test _PLD (Physical Device Location).",
+"  Test _SUB (Subsystem ID).",
+"  Test _SUN (Slot User Number).",
+"  Test _STR (String).",
+"  Test _UID (Unique ID).",
+"  Test _CDM (Clock Domain).",
+"  Test _CRS (Current Resource Settings).",
+"  Test _DSD (Device Specific Data).",
+"  Test _DIS (Disable).",
+"  Test _DMA (Direct Memory Access).",
+"  Test _FIX (Fixed Register Resource Provider).",
+"  Test _GSB (Global System Interrupt Base).",
+"  Test _HPP (Hot Plug Parameters).",
+"  Test _PRS (Possible Resource Settings).",
+"  Test _PRT (PCI Routing Table).",
+"  Test _PXM (Proximity).",
+"  Test _CCA (Cache Coherency Attribute).",
+"  Test _EDL (Eject Device List).",
+"  Test _EJD (Ejection Dependent Device).",
+"  Test _EJ0 (Eject).",
+"  Test _EJ1 (Eject).",
+"  Test _EJ2 (Eject).",
+"  Test _EJ3 (Eject).",
+"  Test _EJ4 (Eject).",
+"  Test _LCK (Lock).",
+"  Test _RMV (Remove).",
+"  Test _STA (Status).",
+"  Test _DEP (Operational Region Dependencies).",
+"  Test _BDN (BIOS Dock Name).",
+"  Test _BBN (Base Bus Number).",
+"  Test _DCK (Dock).",
+"  Test _INI (Initialize).",
+"  Test _GLK (Global Lock).",
+"  Test _SEG (Segment).",
+"  Test _OFF (Set resource off).",
+"  Test _ON_ (Set resource on).",
+"  Test _DSW (Device Sleep Wake).",
+"  Test _IRC (In Rush Current).",
+"  Test _PRE (Power Resources for Enumeration).",
+"  Test _PR0 (Power Resources for D0).",
+"  Test _PR1 (Power Resources for D1).",
+"  Test _PR2 (Power Resources for D2).",
+"  Test _PR3 (Power Resources for D3).",
+"  Test _PRW (Power Resources for Wake).",
+"  Test _PS0 (Power State 0).",
+"  Test _PS1 (Power State 1).",
+"  Test _PS2 (Power State 2).",
+"  Test _PS3 (Power State 3).",
+"  Test _PSC (Power State Current).",
+"  Test _PSE (Power State for Enumeration).",
+"  Test _PSW (Power State Wake).",
+"  Test _S1D (S1 Device State).",
+"  Test _S2D (S2 Device State).",
+"  Test _S3D (S3 Device State).",
+"  Test _S4D (S4 Device State).",
+"  Test _S0W (S0 Device Wake State).",
+"  Test _S1W (S1 Device Wake State).",
+"  Test _S2W (S2 Device Wake State).",
+"  Test _S3W (S3 Device Wake State).",
+"  Test _S4W (S4 Device Wake State).",
+"  Test _RST (Device Reset).",
+"  Test _PRR (Power Resource for Reset).",
+"  Test _S0_ (S0 System State).",
+"  Test _S1_ (S1 System State).",
+"  Test _S2_ (S2 System State).",
+"  Test _S3_ (S3 System State).",
+"  Test _S4_ (S4 System State).",
+"  Test _S5_ (S5 System State).",
+"  Test _SWS (System Wake Source).",
+"  Test _PSS (Performance Supported States).",
+"  Test _CPC (Continuous Performance Control).",
+"  Test _CSD (C State Dependencies).",
+"  Test _CST (C States).",
+"  Test _PCT (Performance Control).",
+"  Test _PDL (P-State Depth Limit).",
+"  Test _PPC (Performance Present Capabilities).",
+"  Test _PPE (Polling for Platform Error).",
+"  Test _PSD (Power State Dependencies).",
+"  Test _PTC (Processor Throttling Control).",
+"  Test _TDL (T-State Depth Limit).",
+"  Test _TPC (Throttling Present Capabilities).",
+"  Test _TSD (Throttling State Dependencies).",
+"  Test _TSS (Throttling Supported States).",
+"  Test _LPI (Low Power Idle States).",
+"  Test _RDI (Resource Dependencies for Idle).",
+"  Test _PUR (Processor Utilization Request).",
+"  Test _MSG (Message).",
+"  Test _SST (System Status).",
+"  Test _ALC (Ambient Light Colour Chromaticity).",
+"  Test _ALI (Ambient Light Illuminance).",
+"  Test _ALT (Ambient Light Temperature).",
+"  Test _ALP (Ambient Light Polling).",
+"  Test _ALR (Ambient Light Response).",
+"  Test _LID (Lid Status).",
+"  Test _GTF (Get Task File).",
+"  Test _GTM (Get Timing Mode).",
+"  Test _MBM (Memory Bandwidth Monitoring Data).",
+"  Test _UPC (USB Port Capabilities).",
+"  Test _UPD (User Presence Detect).",
+"  Test _UPP (User Presence Polling).",
+"  Test _GCP (Get Capabilities).",
+"  Test _GRT (Get Real Time).",
+"  Test _GWS (Get Wake Status).",
+"  Test _CWS (Clear Wake Status).",
+"  Test _STP (Set Expired Timer Wake Policy).",
+"  Test _STV (Set Timer Value).",
+"  Test _TIP (Expired Timer Wake Policy).",
+"  Test _TIV (Timer Values).",
+"  Test _SBS (Smart Battery Subsystem).",
+"  Test _BCT (Battery Charge Time).",
+"  Test _BIF (Battery Information).",
+"  Test _BIX (Battery Information Extended).",
+"  Test _BMA (Battery Measurement Averaging).",
+"  Test _BMC (Battery Maintenance Control).",
+"  Test _BMD (Battery Maintenance Data).",
+"  Test _BMS (Battery Measurement Sampling Time).",
+"  Test _BST (Battery Status).",
+"  Test _BTP (Battery Trip Point).",
+"  Test _BTH (Battery Throttle Limit).",
+"  Test _BTM (Battery Time).",
+"  Test _PCL (Power Consumer List).",
+"  Test _PIF (Power Source Information).",
+"  Test _PRL (Power Source Redundancy List).",
+"  Test _PSR (Power Source).",
+"  Test _GAI (Get Averaging Level).",
+"  Test _GHL (Get Harware Limit).",
+"  Test _PMC (Power Meter Capabilities).",
+"  Test _PMD (Power Meter Devices).",
+"  Test _PMM (Power Meter Measurement).",
+"  Test _WPC (Wireless Power Calibration).",
+"  Test _WPP (Wireless Power Polling).",
+"  Test _FIF (Fan Information).",
+"  Test _FPS (Fan Performance States).",
+"  Test _FSL (Fan Set Level).",
+"  Test _FST (Fan Status).",
+"  Test _ACx (Active Cooling).",
+"  Test _ART (Active Cooling Relationship Table).",
+"  Test _CRT (Critical Trip Point).",
+"  Test _CR3 (Warm/Standby Temperature).",
+"  Test _DTI (Device Temperature Indication).",
+"  Test _HOT (Hot Temperature).",
+"  Test _MTL (Minimum Throttle Limit).",
+"  Test _NTT (Notification Temp Threshold).",
+"  Test _PSL (Passive List).",
+"  Test _PSV (Passive Temp).",
+"  Test _RTV (Relative Temp Values).",
+"  Test _SCP (Set Cooling Policy).",
+"  Test _TC1 (Thermal Constant 1).",
+"  Test _TC2 (Thermal Constant 2).",
+"  Test _TFP (Thermal fast Sampling Period).",
+"  Test _TMP (Thermal Zone Current Temp).",
+"  Test _TPT (Trip Point Temperature).",
+"  Test _TRT (Thermal Relationship Table).",
+"  Test _TSN (Thermal Sensor Device).",
+"  Test _TSP (Thermal Sampling Period).",
+"  Test _TST (Temperature Sensor Threshold).",
+"  Test _TZD (Thermal Zone Devices).",
+"  Test _TZM (Thermal Zone member).",
+"  Test _TZP (Thermal Zone Polling).",
+"  Test _GPE (General Purpose Events).",
+"  Test _EC_ (EC Offset Query).",
+"  Test _PTS (Prepare to Sleep).",
+"  Test _TTS (Transition to State).",
+"  Test _WAK (System Wake).",
+"  Test _ADR (Return Unique ID for Device).",
+"  Test _BCL (Query List of Brightness Control Levels Supported).",
+"  Test _BCM (Set Brightness Level).",
+"  Test _BQC (Brightness Query Current Level).",
+"  Test _DCS (Return the Status of Output Device).",
+"  Test _DDC (Return the EDID for this Device).",
+"  Test _DSS (Device Set State).",
+"  Test _DGS (Query Graphics State).",
+"  Test _DOD (Enumerate All Devices Attached to Display Adapter).",
+"  Test _DOS (Enable/Disable Output Switching).",
+"  Test _GPD (Get POST Device).",
+"  Test _ROM (Get ROM Data).",
+"  Test _SPD (Set POST Device).",
+"  Test _VPO (Video POST Options).",
+"  Test _CBA (Configuration Base Address).",
+"  Test _IFT (IPMI Interface Type).",
+"  Test _SRV (IPMI Interface Revision).",
+" msct            (1 test):",
+"  MSCT Maximum System Characteristics Table test.",
+" msdm            (1 test):",
+"  MSDM Microsoft Data Management Table test.",
+#ifdef FWTS_ARCH_INTEL
+" pcc             (1 test):",
+"  Processor Clocking Control (PCC) test.",
+#endif
+" rsdp            (1 test):",
+"  RSDP Root System Description Pointer test.",
+" rsdt            (1 test):",
+"  RSDT Root System Description Table test.",
+" sbst            (1 test):",
+"  SBST Smart Battery Specificiation Table test.",
+" slic            (1 test):",
+"  SLIC Software Licensing Description Table test.",
+" slit            (1 test):",
+"  SLIT System Locality Distance Information test.",
+" spcr            (1 test):",
+"  SPCR Serial Port Console Redirection Table test.",
+" spmi            (1 test):",
+"  SPMI Service Processor Management Interface Description Table test.",
+" srat            (1 test):",
+"  SRAT System Resource Affinity Table test.",
+" stao            (1 test):",
+"  STAO Status Override Table test.",
+" tcpa            (1 test):",
+"  Validate TCPA table.",
+" tpm2            (1 test):",
+"  Validate TPM2 table.",
+" uefi            (1 test):",
+"  UEFI Data Table test.",
+" waet            (1 test):",
+"  Windows ACPI Emulated Devices Table test.",
+" wdat            (1 test):",
+"  WDAT Microsoft Hardware Watchdog Action Table test.",
+#ifdef FWTS_ARCH_INTEL
+" wmi             (1 test):",
+"  Windows Management Instrumentation test.",
+#endif
+" xenv            (1 test):",
+"  Validate XENV table.",
+" xsdt            (1 test):",
+"  XSDT Extended System Description Table test.",
+"",
+"Batch tests:",
+" acpiinfo        (3 tests):",
+"  Determine Kernel ACPI version.",
+"  Determine machine's ACPI version.",
+"  Determine AML compiler.",
+" acpitables      (1 test):",
+"  Test ACPI headers.",
+#ifdef FWTS_ARCH_INTEL
+" apicedge        (1 test):",
+"  Legacy and PCI Interrupt Edge/Level trigger tests.",
+" apicinstance    (1 test):",
+"  Test for single instance of APIC/MADT table.",
+#endif
+" asf             (1 test):",
+"  ASF! Alert Standard Format Table test.",
+" aspm            (2 tests):",
+"  PCIe ASPM ACPI test.",
+"  PCIe ASPM registers test.",
+" aspt            (1 test):",
+"  ASPT Table test.",
+#ifdef FWTS_ARCH_INTEL
+" autobrightness  (2 tests):",
+"  Test for maximum and actual brightness.",
+"  Change actual brightness.",
+#endif
+" bert            (1 test):",
+"  BERT Boot Error Record Table test.",
+" bgrt            (1 test):",
+"  BGRT Boot Graphics Resource Table test.",
+#ifdef FWTS_ARCH_INTEL
+" bios32          (1 test):",
+"  BIOS32 Service Directory test.",
+" bios_info       (1 test):",
+"  Gather BIOS DMI information",
+#endif
+" bmc_info        (1 test):",
+"  BMC Info",
+" boot            (1 test):",
+"  BOOT Table test.",
+" checksum        (1 test):",
+"  ACPI table checksum test.",
+" cpep            (1 test):",
+"  CPEP Corrected Platform Error Polling Table test.",
+" cpufreq         (7 tests):",
+"  CPU frequency table consistency",
+"  CPU frequency table duplicates",
+"  CPU frequency firmware limits",
+"  CPU frequency claimed maximum",
+"  CPU frequency SW_ANY control",
+"  CPU frequency SW_ALL control",
+"  CPU frequency performance tests.",
+#ifdef FWTS_ARCH_INTEL
+" crs             (1 test):",
+"  Test PCI host bridge configuration using _CRS.",
+" csm             (1 test):",
+"  UEFI Compatibility Support Module test.",
+#endif
+" csrt            (1 test):",
+"  CSRT Core System Resource Table test.",
+#ifdef FWTS_ARCH_INTEL
+" cstates         (1 test):",
+"  Test all CPUs C-states.",
+#endif
+" dbg2            (1 test):",
+"  DBG2 (Debug Port Table 2) test.",
+" dbgp            (1 test):",
+"  DBGP (Debug Port) Table test.",
+#ifdef FWTS_ARCH_INTEL
+" dmar            (1 test):",
+"  DMA Remapping test.",
+" dmicheck        (3 tests):",
+"  Find and test SMBIOS Table Entry Points.",
+"  Test DMI/SMBIOS tables for errors.",
+"  Test DMI/SMBIOS3 tables for errors.",
+#endif
+#ifdef HAVE_LIBFDT
+" dt_base         (3 tests):",
+"  Check device tree presence",
+"  Check device tree baseline validity",
+"  Check device tree warnings",
+" dt_sysinfo      (3 tests):",
+"  Check model property",
+"  Check system-id property",
+"  Check OpenPOWER Reference compatible",
+#endif
+#ifdef FWTS_ARCH_INTEL
+" ebda            (1 test):",
+"  Test EBDA is reserved in E820 table.",
+#endif
+" ecdt            (1 test):",
+"  ECDT Embedded Controller Boot Resources Table test.",
+" einj            (1 test):",
+"  EINJ Error Injection Table test.",
+" erst            (1 test):",
+"  ERST Error Record Serialization Table test.",
+" facs            (1 test):",
+"  FACS Firmware ACPI Control Structure test.",
+" fadt            (6 tests):",
+"  ACPI FADT Description Table flag info.",
+"  FADT checksum test.",
+"  FADT revision test.",
+"  ACPI FADT Description Table tests.",
+"  Test FADT SCI_EN bit is enabled.",
+"  Test FADT reset register.",
+#ifdef FWTS_ARCH_INTEL
+" fan             (2 tests):",
+"  Test fan status.",
+"  Load system, check CPU fan status.",
+#endif
+" fpdt            (1 test):",
+"  FPDT Firmware Performance Data Table test.",
+" gtdt            (1 test):",
+"  GTDT Generic Timer Description Table test.",
+" hda_audio       (1 test):",
+"  HDA Audio Pin Configuration test.",
+" hest            (1 test):",
+"  HEST Hardware Error Source Table test.",
+#ifdef FWTS_ARCH_INTEL
+" hpet            (4 tests):",
+"  Test HPET base in kernel log.",
+"  Test HPET base in HPET table.",
+"  Test HPET base in DSDT and/or SSDT.",
+"  Test HPET configuration.",
+#endif
+" iort            (1 test):",
+"  IORT IO Remapping Table test.",
+" klog            (1 test):",
+"  Kernel log error check.",
+" lpit            (1 test):",
+"  LPIT Low Power Idle Table test.",
+" madt            (5 tests):",
+"  MADT checksum test.",
+"  MADT revision test.",
+"  MADT architecture minimum revision test.",
+"  MADT flags field reserved bits test.",
+"  MADT subtable tests.",
+#ifdef FWTS_ARCH_INTEL
+" maxfreq         (1 test):",
+"  Maximum CPU frequency test.",
+#endif
+" maxreadreq      (1 test):",
+"  Test firmware settings MaxReadReq for PCI Express devices.",
+#ifdef FWTS_ARCH_INTEL
+" mcfg            (2 tests):",
+"  Validate MCFG table.",
+"  Validate MCFG PCI config space.",
+#endif
+" mchi            (1 test):",
+"  MCHI Management Controller Host Interface Table test.",
+" method          (191 tests):",
+"  Test Method Names.",
+"  Test _AEI.",
+"  Test _EVT (Event Method).",
+"  Test _DLM (Device Lock Mutex).",
+"  Test _PIC (Inform AML of Interrupt Model).",
+"  Test _CID (Compatible ID).",
+"  Test _DDN (DOS Device Name).",
+"  Test _HID (Hardware ID).",
+"  Test _HRV (Hardware Revision Number).",
+"  Test _MLS (Multiple Language String).",
+"  Test _PLD (Physical Device Location).",
+"  Test _SUB (Subsystem ID).",
+"  Test _SUN (Slot User Number).",
+"  Test _STR (String).",
+"  Test _UID (Unique ID).",
+"  Test _CDM (Clock Domain).",
+"  Test _CRS (Current Resource Settings).",
+"  Test _DSD (Device Specific Data).",
+"  Test _DIS (Disable).",
+"  Test _DMA (Direct Memory Access).",
+"  Test _FIX (Fixed Register Resource Provider).",
+"  Test _GSB (Global System Interrupt Base).",
+"  Test _HPP (Hot Plug Parameters).",
+"  Test _PRS (Possible Resource Settings).",
+"  Test _PRT (PCI Routing Table).",
+"  Test _PXM (Proximity).",
+"  Test _CCA (Cache Coherency Attribute).",
+"  Test _EDL (Eject Device List).",
+"  Test _EJD (Ejection Dependent Device).",
+"  Test _EJ0 (Eject).",
+"  Test _EJ1 (Eject).",
+"  Test _EJ2 (Eject).",
+"  Test _EJ3 (Eject).",
+"  Test _EJ4 (Eject).",
+"  Test _LCK (Lock).",
+"  Test _RMV (Remove).",
+"  Test _STA (Status).",
+"  Test _DEP (Operational Region Dependencies).",
+"  Test _BDN (BIOS Dock Name).",
+"  Test _BBN (Base Bus Number).",
+"  Test _DCK (Dock).",
+"  Test _INI (Initialize).",
+"  Test _GLK (Global Lock).",
+"  Test _SEG (Segment).",
+"  Test _OFF (Set resource off).",
+"  Test _ON_ (Set resource on).",
+"  Test _DSW (Device Sleep Wake).",
+"  Test _IRC (In Rush Current).",
+"  Test _PRE (Power Resources for Enumeration).",
+"  Test _PR0 (Power Resources for D0).",
+"  Test _PR1 (Power Resources for D1).",
+"  Test _PR2 (Power Resources for D2).",
+"  Test _PR3 (Power Resources for D3).",
+"  Test _PRW (Power Resources for Wake).",
+"  Test _PS0 (Power State 0).",
+"  Test _PS1 (Power State 1).",
+"  Test _PS2 (Power State 2).",
+"  Test _PS3 (Power State 3).",
+"  Test _PSC (Power State Current).",
+"  Test _PSE (Power State for Enumeration).",
+"  Test _PSW (Power State Wake).",
+"  Test _S1D (S1 Device State).",
+"  Test _S2D (S2 Device State).",
+"  Test _S3D (S3 Device State).",
+"  Test _S4D (S4 Device State).",
+"  Test _S0W (S0 Device Wake State).",
+"  Test _S1W (S1 Device Wake State).",
+"  Test _S2W (S2 Device Wake State).",
+"  Test _S3W (S3 Device Wake State).",
+"  Test _S4W (S4 Device Wake State).",
+"  Test _RST (Device Reset).",
+"  Test _PRR (Power Resource for Reset).",
+"  Test _S0_ (S0 System State).",
+"  Test _S1_ (S1 System State).",
+"  Test _S2_ (S2 System State).",
+"  Test _S3_ (S3 System State).",
+"  Test _S4_ (S4 System State).",
+"  Test _S5_ (S5 System State).",
+"  Test _SWS (System Wake Source).",
+"  Test _PSS (Performance Supported States).",
+"  Test _CPC (Continuous Performance Control).",
+"  Test _CSD (C State Dependencies).",
+"  Test _CST (C States).",
+"  Test _PCT (Performance Control).",
+"  Test _PDL (P-State Depth Limit).",
+"  Test _PPC (Performance Present Capabilities).",
+"  Test _PPE (Polling for Platform Error).",
+"  Test _PSD (Power State Dependencies).",
+"  Test _PTC (Processor Throttling Control).",
+"  Test _TDL (T-State Depth Limit).",
+"  Test _TPC (Throttling Present Capabilities).",
+"  Test _TSD (Throttling State Dependencies).",
+"  Test _TSS (Throttling Supported States).",
+"  Test _LPI (Low Power Idle States).",
+"  Test _RDI (Resource Dependencies for Idle).",
+"  Test _PUR (Processor Utilization Request).",
+"  Test _MSG (Message).",
+"  Test _SST (System Status).",
+"  Test _ALC (Ambient Light Colour Chromaticity).",
+"  Test _ALI (Ambient Light Illuminance).",
+"  Test _ALT (Ambient Light Temperature).",
+"  Test _ALP (Ambient Light Polling).",
+"  Test _ALR (Ambient Light Response).",
+"  Test _LID (Lid Status).",
+"  Test _GTF (Get Task File).",
+"  Test _GTM (Get Timing Mode).",
+"  Test _MBM (Memory Bandwidth Monitoring Data).",
+"  Test _UPC (USB Port Capabilities).",
+"  Test _UPD (User Presence Detect).",
+"  Test _UPP (User Presence Polling).",
+"  Test _GCP (Get Capabilities).",
+"  Test _GRT (Get Real Time).",
+"  Test _GWS (Get Wake Status).",
+"  Test _CWS (Clear Wake Status).",
+"  Test _STP (Set Expired Timer Wake Policy).",
+"  Test _STV (Set Timer Value).",
+"  Test _TIP (Expired Timer Wake Policy).",
+"  Test _TIV (Timer Values).",
+"  Test _SBS (Smart Battery Subsystem).",
+"  Test _BCT (Battery Charge Time).",
+"  Test _BIF (Battery Information).",
+"  Test _BIX (Battery Information Extended).",
+"  Test _BMA (Battery Measurement Averaging).",
+"  Test _BMC (Battery Maintenance Control).",
+"  Test _BMD (Battery Maintenance Data).",
+"  Test _BMS (Battery Measurement Sampling Time).",
+"  Test _BST (Battery Status).",
+"  Test _BTP (Battery Trip Point).",
+"  Test _BTH (Battery Throttle Limit).",
+"  Test _BTM (Battery Time).",
+"  Test _PCL (Power Consumer List).",
+"  Test _PIF (Power Source Information).",
+"  Test _PRL (Power Source Redundancy List).",
+"  Test _PSR (Power Source).",
+"  Test _GAI (Get Averaging Level).",
+"  Test _GHL (Get Harware Limit).",
+"  Test _PMC (Power Meter Capabilities).",
+"  Test _PMD (Power Meter Devices).",
+"  Test _PMM (Power Meter Measurement).",
+"  Test _WPC (Wireless Power Calibration).",
+"  Test _WPP (Wireless Power Polling).",
+"  Test _FIF (Fan Information).",
+"  Test _FPS (Fan Performance States).",
+"  Test _FSL (Fan Set Level).",
+"  Test _FST (Fan Status).",
+"  Test _ACx (Active Cooling).",
+"  Test _ART (Active Cooling Relationship Table).",
+"  Test _CRT (Critical Trip Point).",
+"  Test _CR3 (Warm/Standby Temperature).",
+"  Test _DTI (Device Temperature Indication).",
+"  Test _HOT (Hot Temperature).",
+"  Test _MTL (Minimum Throttle Limit).",
+"  Test _NTT (Notification Temp Threshold).",
+"  Test _PSL (Passive List).",
+"  Test _PSV (Passive Temp).",
+"  Test _RTV (Relative Temp Values).",
+"  Test _SCP (Set Cooling Policy).",
+"  Test _TC1 (Thermal Constant 1).",
+"  Test _TC2 (Thermal Constant 2).",
+"  Test _TFP (Thermal fast Sampling Period).",
+"  Test _TMP (Thermal Zone Current Temp).",
+"  Test _TPT (Trip Point Temperature).",
+"  Test _TRT (Thermal Relationship Table).",
+"  Test _TSN (Thermal Sensor Device).",
+"  Test _TSP (Thermal Sampling Period).",
+"  Test _TST (Temperature Sensor Threshold).",
+"  Test _TZD (Thermal Zone Devices).",
+"  Test _TZM (Thermal Zone member).",
+"  Test _TZP (Thermal Zone Polling).",
+"  Test _GPE (General Purpose Events).",
+"  Test _EC_ (EC Offset Query).",
+"  Test _PTS (Prepare to Sleep).",
+"  Test _TTS (Transition to State).",
+"  Test _WAK (System Wake).",
+"  Test _ADR (Return Unique ID for Device).",
+"  Test _BCL (Query List of Brightness Control Levels Supported).",
+"  Test _BCM (Set Brightness Level).",
+"  Test _BQC (Brightness Query Current Level).",
+"  Test _DCS (Return the Status of Output Device).",
+"  Test _DDC (Return the EDID for this Device).",
+"  Test _DSS (Device Set State).",
+"  Test _DGS (Query Graphics State).",
+"  Test _DOD (Enumerate All Devices Attached to Display Adapter).",
+"  Test _DOS (Enable/Disable Output Switching).",
+"  Test _GPD (Get POST Device).",
+"  Test _ROM (Get ROM Data).",
+"  Test _SPD (Set POST Device).",
+"  Test _VPO (Video POST Options).",
+"  Test _CBA (Configuration Base Address).",
+"  Test _IFT (IPMI Interface Type).",
+"  Test _SRV (IPMI Interface Revision).",
+#ifdef FWTS_ARCH_INTEL
+" microcode       (1 test):",
+"  Test for most recent microcode being loaded.",
+" mpcheck         (9 tests):",
+"  Test MP header.",
+"  Test MP CPU entries.",
+"  Test MP Bus entries.",
+"  Test MP IO APIC entries.",
+"  Test MP IO Interrupt entries.",
+"  Test MP Local Interrupt entries.",
+"  Test MP System Address entries.",
+"  Test MP Bus Hierarchy entries.",
+"  Test MP Compatible Bus Address Space entries.",
+#endif
+" msct            (1 test):",
+"  MSCT Maximum System Characteristics Table test.",
+" msdm            (1 test):",
+"  MSDM Microsoft Data Management Table test.",
+#ifdef FWTS_ARCH_INTEL
+" msr             (5 tests):",
+"  Test CPU generic MSRs.",
+"  Test CPU specific model MSRs.",
+"  Test all P State Ratios.",
+"  Test C1 and C3 autodemotion.",
+"  Test SMRR MSR registers.",
+" mtrr            (3 tests):",
+"  Validate the kernel MTRR IOMEM setup.",
+"  Validate the MTRR setup across all processors.",
+"  Test for AMD MtrrFixDramModEn being cleared by the BIOS.",
+" nx              (3 tests):",
+"  Test CPU NX capability.",
+"  Test all CPUs have same BIOS set NX flag.",
+"  Test all CPUs have same msr setting in MSR 0x1a0.",
+#endif
+" olog            (1 test):",
+"  OLOG scan and analysis checks results.",
+" oops            (1 test):",
+"  Kernel log oops check.",
+#ifdef FWTS_ARCH_INTEL
+" osilinux        (1 test):",
+"  Disassemble DSDT to check for _OSI(\"Linux\").",
+" pcc             (1 test):",
+"  Processor Clocking Control (PCC) test.",
+" pciirq          (1 test):",
+"  PCI IRQ Routing Table test.",
+" pnp             (1 test):",
+"  PnP BIOS Support Installation structure test.",
+#endif
+" prd_info        (1 test):",
+"  OPAL Processor Recovery Diagnostics Info",
+" rsdp            (1 test):",
+"  RSDP Root System Description Pointer test.",
+" rsdt            (1 test):",
+"  RSDT Root System Description Table test.",
+" sbst            (1 test):",
+"  SBST Smart Battery Specificiation Table test.",
+" securebootcert  (1 test):",
+"  UEFI secure boot test.",
+" show_logs       (1 test):",
+"  Show Tests Log Files",
+" slic            (1 test):",
+"  SLIC Software Licensing Description Table test.",
+" slit            (1 test):",
+"  SLIT System Locality Distance Information test.",
+" spcr            (1 test):",
+"  SPCR Serial Port Console Redirection Table test.",
+" spmi            (1 test):",
+"  SPMI Service Processor Management Interface Description Table test.",
+" srat            (1 test):",
+"  SRAT System Resource Affinity Table test.",
+" stao            (1 test):",
+"  STAO Status Override Table test.",
+" syntaxcheck     (1 test):",
+"  Disassemble and reassemble DSDT and SSDTs.",
+" tcpa            (1 test):",
+"  Validate TCPA table.",
+" tpm2            (1 test):",
+"  Validate TPM2 table.",
+" uefi            (1 test):",
+"  UEFI Data Table test.",
+" uefibootpath    (1 test):",
+"  Test UEFI Boot Path Boot####.",
+" version         (4 tests):",
+"  Gather kernel signature.",
+"  Gather kernel system information.",
+"  Gather kernel boot command line.",
+"  Gather ACPI driver version.",
+#ifdef FWTS_ARCH_INTEL
+" virt            (1 test):",
+"  CPU Virtualisation Configuration test.",
+#endif
+" waet            (1 test):",
+"  Windows ACPI Emulated Devices Table test.",
+" wakealarm       (5 tests):",
+"  Test existence of RTC with alarm interface.",
+"  Trigger wakealarm for 1 seconds in the future.",
+"  Test if wakealarm is fired.",
+"  Multiple wakealarm firing tests.",
+"  Reset wakealarm time.",
+" wdat            (1 test):",
+"  WDAT Microsoft Hardware Watchdog Action Table test.",
+#ifdef FWTS_ARCH_INTEL
+" wmi             (1 test):",
+"  Windows Management Instrumentation test.",
+#endif
+" xenv            (1 test):",
+"  Validate XENV table.",
+" xsdt            (1 test):",
+"  XSDT Extended System Description Table test.",
+"",
+#ifdef FWTS_ARCH_INTEL
+"Interactive tests:",
+" ac_adapter      (3 tests):",
+"  Test ACPI ac_adapter state.",
+"  Test ac_adapter initial on-line state.",
+"  Test ac_adapter state changes.",
+" battery         (1 test):",
+"  Battery test.",
+" brightness      (3 tests):",
+"  Observe all brightness changes.",
+"  Observe min, max brightness changes.",
+"  Test brightness hotkeys.",
+" hotkey          (1 test):",
+"  Hotkey keypress checks.",
+" lid             (3 tests):",
+"  Test LID buttons report open correctly.",
+"  Test LID buttons on a single open/close.",
+"  Test LID buttons on multiple open/close events.",
+" power_button    (1 test):",
+"  Test press of power button and ACPI event.",
+"",
+"Power States tests:",
+" s3              (1 test):",
+"  S3 suspend/resume test.",
+" s3power         (1 test):",
+"  S3 power loss during suspend test.",
+" s4              (1 test):",
+"  S4 hibernate/resume test.",
+"",
+#endif
+"Utilities:",
+" acpidump        (1 test):",
+"  Dump ACPI tables.",
+#ifdef FWTS_ARCH_INTEL
+" cmosdump        (1 test):",
+"  Dump CMOS Memory.",
+#endif
+" crsdump         (1 test):",
+"  Dump ACPI _CRS (Current Resource Settings).",
+#ifdef FWTS_ARCH_INTEL
+" ebdadump        (1 test):",
+"  Dump EBDA region.",
+#endif
+" esrtdump        (1 test):",
+"  Dump ESRT Table.",
+" gpedump         (1 test):",
+"  Dump GPEs.",
+#ifdef FWTS_ARCH_INTEL
+" memmapdump      (1 test):",
+"  Dump system memory map.",
+" mpdump          (1 test):",
+"  Dump Multi Processor Data.",
+#endif
+" plddump         (1 test):",
+"  Dump ACPI _PLD (Physical Device Location).",
+" prsdump         (1 test):",
+"  Dump ACPI _PRS (Possible Resource Settings).",
+#ifdef FWTS_ARCH_INTEL
+" romdump         (1 test):",
+"  Dump ROM data.",
+#endif
+" uefidump        (1 test):",
+"  Dump UEFI Variables.",
+" uefivarinfo     (1 test):",
+"  UEFI variable info query.",
+"",
+"Unsafe tests:",
+" uefirtauthvar   (12 tests):",
+"  Create authenticated variable test.",
+"  Authenticated variable test with the same authenticated variable.",
+"  Authenticated variable test with another valid authenticated"
+	" variable.",
+"  Append authenticated variable test.",
+"  Update authenticated variable test.",
+"  Authenticated variable test with old authenticated variable.",
+"  Delete authenticated variable test.",
+"  Authenticated variable test with invalid modified data.",
+"  Authenticated variable test with invalid modified timestamp.",
+"  Authenticated variable test with different guid.",
+"  Authenticated variable test with invalid attributes.",
+"  Set and delete authenticated variable created by different"
+	" key test.",
+" uefirtmisc      (3 tests):",
+"  Test for UEFI miscellaneous runtime service interfaces.",
+"  Stress test for UEFI miscellaneous runtime service interfaces.",
+"  Test GetNextHighMonotonicCount with invalid NULL parameter.",
+" uefirttime      (35 tests):",
+"  Test UEFI RT service get time interface.",
+"  Test UEFI RT service get time interface, NULL time parameter.",
+"  Test UEFI RT service get time interface, NULL time and NULL"
+	" capabilties parameters.",
+"  Test UEFI RT service set time interface.",
+"  Test UEFI RT service set time interface, invalid year 1899.",
+"  Test UEFI RT service set time interface, invalid year 10000.",
+"  Test UEFI RT service set time interface, invalid month 0.",
+"  Test UEFI RT service set time interface, invalid month 13.",
+"  Test UEFI RT service set time interface, invalid day 0.",
+"  Test UEFI RT service set time interface, invalid day 32.",
+"  Test UEFI RT service set time interface, invalid hour 24.",
+"  Test UEFI RT service set time interface, invalid minute 60.",
+"  Test UEFI RT service set time interface, invalid second 60.",
+"  Test UEFI RT service set time interface, invalid nanosecond"
+	" 1000000000.",
+"  Test UEFI RT service set time interface, invalid timezone -1441.",
+"  Test UEFI RT service set time interface, invalid timezone 1441.",
+"  Test UEFI RT service get wakeup time interface.",
+"  Test UEFI RT service get wakeup time interface, NULL enabled"
+	" parameter.",
+"  Test UEFI RT service get wakeup time interface, NULL pending"
+	" parameter.",
+"  Test UEFI RT service get wakeup time interface, NULL time"
+	" parameter.",
+"  Test UEFI RT service get wakeup time interface, NULL enabled,"
+	" pending and time parameters.",
+"  Test UEFI RT service set wakeup time interface.",
+"  Test UEFI RT service set wakeup time interface, NULL time"
+	" parameter.",
+"  Test UEFI RT service set wakeup time interface, invalid year 1899.",
+"  Test UEFI RT service set wakeup time interface, invalid year 10000.",
+"  Test UEFI RT service set wakeup time interface, invalid month 0.",
+"  Test UEFI RT service set wakeup time interface, invalid month 13.",
+"  Test UEFI RT service set wakeup time interface, invalid day 0.",
+"  Test UEFI RT service set wakeup time interface, invalid day 32.",
+"  Test UEFI RT service set wakeup time interface, invalid hour 24.",
+"  Test UEFI RT service set wakeup time interface, invalid minute 60.",
+"  Test UEFI RT service set wakeup time interface, invalid second 60.",
+"  Test UEFI RT service set wakeup time interface, invalid"
+	" nanosecond 1000000000.",
+"  Test UEFI RT service set wakeup time interface, invalid"
+	" timezone -1441.",
+"  Test UEFI RT service set wakeup time interface, invalid"
+	" timezone 1441.",
+" uefirtvariable  (8 tests):",
+"  Test UEFI RT service get variable interface.",
+"  Test UEFI RT service get next variable name interface.",
+"  Test UEFI RT service set variable interface.",
+"  Test UEFI RT service query variable info interface.",
+"  Test UEFI RT service variable interface stress test.",
+"  Test UEFI RT service set variable interface stress test.",
+"  Test UEFI RT service query variable info interface stress test.",
+"  Test UEFI RT service get variable interface, invalid parameters.",
+"",
+"UEFI tests:",
+#ifdef FWTS_ARCH_INTEL
+" csm             (1 test):",
+"  UEFI Compatibility Support Module test.",
+#endif
+" esrt            (1 test):",
+"  Sanity check UEFI ESRT Table.",
+" securebootcert  (1 test):",
+"  UEFI secure boot test.",
+" uefibootpath    (1 test):",
+"  Test UEFI Boot Path Boot####.",
+" uefirtauthvar   (12 tests):",
+"  Create authenticated variable test.",
+"  Authenticated variable test with the same authenticated variable.",
+"  Authenticated variable test with another valid authenticated"
+	" variable.",
+"  Append authenticated variable test.",
+"  Update authenticated variable test.",
+"  Authenticated variable test with old authenticated variable.",
+"  Delete authenticated variable test.",
+"  Authenticated variable test with invalid modified data.",
+"  Authenticated variable test with invalid modified timestamp.",
+"  Authenticated variable test with different guid.",
+"  Authenticated variable test with invalid attributes.",
+"  Set and delete authenticated variable created by different"
+	" key test.",
+" uefirtmisc      (3 tests):",
+"  Test for UEFI miscellaneous runtime service interfaces.",
+"  Stress test for UEFI miscellaneous runtime service interfaces.",
+"  Test GetNextHighMonotonicCount with invalid NULL parameter.",
+" uefirttime      (35 tests):",
+"  Test UEFI RT service get time interface.",
+"  Test UEFI RT service get time interface, NULL time parameter.",
+"  Test UEFI RT service get time interface, NULL time and NULL"
+	" capabilties parameters.",
+"  Test UEFI RT service set time interface.",
+"  Test UEFI RT service set time interface, invalid year 1899.",
+"  Test UEFI RT service set time interface, invalid year 10000.",
+"  Test UEFI RT service set time interface, invalid month 0.",
+"  Test UEFI RT service set time interface, invalid month 13.",
+"  Test UEFI RT service set time interface, invalid day 0.",
+"  Test UEFI RT service set time interface, invalid day 32.",
+"  Test UEFI RT service set time interface, invalid hour 24.",
+"  Test UEFI RT service set time interface, invalid minute 60.",
+"  Test UEFI RT service set time interface, invalid second 60.",
+"  Test UEFI RT service set time interface, invalid"
+	" nanosecond 1000000000.",
+"  Test UEFI RT service set time interface, invalid timezone -1441.",
+"  Test UEFI RT service set time interface, invalid timezone 1441.",
+"  Test UEFI RT service get wakeup time interface.",
+"  Test UEFI RT service get wakeup time interface, NULL"
+	" enabled parameter.",
+"  Test UEFI RT service get wakeup time interface, NULL"
+	" pending parameter.",
+"  Test UEFI RT service get wakeup time interface, NULL"
+	" time parameter.",
+"  Test UEFI RT service get wakeup time interface, NULL"
+	" enabled, pending and time parameters.",
+"  Test UEFI RT service set wakeup time interface.",
+"  Test UEFI RT service set wakeup time interface, NULL"
+	" time parameter.",
+"  Test UEFI RT service set wakeup time interface, invalid year 1899.",
+"  Test UEFI RT service set wakeup time interface, invalid year 10000.",
+"  Test UEFI RT service set wakeup time interface, invalid month 0.",
+"  Test UEFI RT service set wakeup time interface, invalid month 13.",
+"  Test UEFI RT service set wakeup time interface, invalid day 0.",
+"  Test UEFI RT service set wakeup time interface, invalid day 32.",
+"  Test UEFI RT service set wakeup time interface, invalid hour 24.",
+"  Test UEFI RT service set wakeup time interface, invalid minute 60.",
+"  Test UEFI RT service set wakeup time interface, invalid second 60.",
+"  Test UEFI RT service set wakeup time interface, invalid"
+	" nanosecond 1000000000.",
+"  Test UEFI RT service set wakeup time interface, invalid"
+	" timezone -1441.",
+"  Test UEFI RT service set wakeup time interface, invalid"
+	" timezone 1441.",
+" uefirtvariable  (8 tests):",
+"  Test UEFI RT service get variable interface.",
+"  Test UEFI RT service get next variable name interface.",
+"  Test UEFI RT service set variable interface.",
+"  Test UEFI RT service query variable info interface.",
+"  Test UEFI RT service variable interface stress test.",
+"  Test UEFI RT service set variable interface stress test.",
+"  Test UEFI RT service query variable info interface stress test.",
+"  Test UEFI RT service get variable interface, invalid parameters.",
+"",
+"ACPI Spec Compliance tests:",
+" fadt            (6 tests):",
+"  ACPI FADT Description Table flag info.",
+"  FADT checksum test.",
+"  FADT revision test.",
+"  ACPI FADT Description Table tests.",
+"  Test FADT SCI_EN bit is enabled.",
+"  Test FADT reset register.",
+" madt            (5 tests):",
+"  MADT checksum test.",
+"  MADT revision test.",
+"  MADT architecture minimum revision test.",
+"  MADT flags field reserved bits test.",
+"  MADT subtable tests.",
+" rsdp            (1 test):",
+"  RSDP Root System Description Pointer test.",
+};
+
+static int show_log_create(fwts_framework *fw,
+		char *show_abs_path_name,
+		const char *log_name,
+		char * log_template[],
+		int log_array_size)
+{
+	int i, count;
+	FILE *show_log;
+
+	char fq_log_name[PATH_MAX+1];
+
+	memset(fq_log_name, 0, sizeof(fq_log_name));
+
+	/* -1 for the slash in the snprintf concatenation */
+	if (strlen(show_abs_path_name) + strlen(log_name)
+		>= sizeof(fq_log_name)-1) {
+		fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create1",
+			"Unable to properly create"
+			" the fwts-test logs.");
+		return FWTS_ERROR;
+	}
+	count = snprintf(fq_log_name, sizeof(fq_log_name), "%s/%s",
+		show_abs_path_name, log_name);
+
+	if ((count < 0) || (count >= (int)sizeof(fq_log_name))) {
+		fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create2",
+			"Unable to properly create"
+			" the fwts-test logs.");
+		return FWTS_ERROR;
+	}
+
+	show_log = fopen(fq_log_name, "w+");
+
+	if (!show_log) {
+		fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create3",
+			"Unable to properly create"
+			" the fwts-test logs.");
+		return FWTS_ERROR;
+	}
+
+	for ( i= 0; i < log_array_size; i++) {
+		fprintf(show_log, "%s\n", log_template[i]);
+
+	}
+	if (fclose(show_log)) {
+		fwts_failed(fw, LOG_LEVEL_LOW, "show_log_create4",
+			"Unable to properly create"
+			" the fwts-test logs.");
+		return FWTS_ERROR;
+	}
+
+	fwts_log_info(fw,
+	"Dynamic creation of %s is complete", fq_log_name);
+
+	return FWTS_OK;
+}
+
+static int show_logs_test1(fwts_framework *fw)
+{
+	const char show_all_log_name[] =
+	"arg-show-tests-0001/arg-show-tests-0001.log";
+	const char show_all_full_log_name[] =
+	"arg-show-tests-full-0001/arg-show-tests-full-0001.log";
+
+	int rc = 0;
+	char *fwtstestdir = NULL, *fwts_show_log_flags = NULL;
+
+	char *fwts_abs_path_name;
+	char tmp_abs_path [PATH_MAX+1];
+
+	memset(tmp_abs_path, 0, sizeof(tmp_abs_path));
+
+	/* Use the inherited env var since these logs */
+	/* are only used during make check tests      */
+	/* For a fail safe use the FWTS_SRCDIR        */
+	/* from config.h during direct invocation     */
+	/* of show_logs                               */
+
+	fwtstestdir = getenv("FWTSTESTDIR");
+	fwts_show_log_flags = getenv("FWTS_SHOW_LOGS");
+
+	if (fwtstestdir != NULL) {
+		fwts_abs_path_name = realpath(fwtstestdir,
+					tmp_abs_path);
+	} else {
+		if (FWTS_SRCDIR == NULL) {
+			fwts_failed(fw, LOG_LEVEL_LOW,
+				"show-logs-fq-log1",
+				"Unable to properly create"
+				" the fwts-test logs.");
+			return FWTS_ERROR;
+		} else {
+			if (strlen(FWTS_SRCDIR)+11
+				<= sizeof(tmp_abs_path)) {
+				if (!(strncpy(tmp_abs_path,
+					FWTS_SRCDIR,
+					sizeof(tmp_abs_path))
+					== NULL)) {
+					fwts_abs_path_name =
+						strncat(tmp_abs_path,
+						"/fwts-test", 11);
+				} else {
+					fwts_failed(fw, LOG_LEVEL_LOW,
+					"show-logs-fq-log2",
+					"Unable to properly create"
+					" the fwts-test logs.");
+					return FWTS_ERROR;
+				}
+			}
+		}
+	}
+
+	if (fwts_abs_path_name == NULL) {
+		fwts_failed(fw, LOG_LEVEL_LOW, "show-logs-fq-log3",
+			"Unable to properly create"
+			" the fwts-test logs.");
+			return FWTS_ERROR;
+	}
+
+	if (fwts_show_log_flags == NULL) {
+		rc = show_log_create(fw,
+			fwts_abs_path_name,
+			show_all_full_log_name,
+			fwts_show_all,
+			FWTS_ARRAY_LEN(fwts_show_all));
+		if (!rc) {
+			rc = show_log_create(fw,
+				fwts_abs_path_name,
+				show_all_log_name,
+				fwts_show,
+				FWTS_ARRAY_LEN(fwts_show));
+		}
+	} else {
+		if (!strncmp(fwts_show_log_flags, "BASE", 4)){
+			rc = show_log_create(fw,
+				fwts_abs_path_name,
+				show_all_log_name,
+				fwts_show,
+				FWTS_ARRAY_LEN(fwts_show));
+		} else {
+			if (!strncmp(fwts_show_log_flags, "FULL", 4)) {
+				rc = show_log_create(fw,
+					fwts_abs_path_name,
+					show_all_full_log_name,
+					fwts_show_all,
+					FWTS_ARRAY_LEN(fwts_show_all));
+			}
+		}
+	}
+
+	if (!rc) {
+		fwts_passed(fw, "Show Tests Log Files"
+			" completed successfully.");
+	} /* subroutines logged fwts failures */
+
+	return rc;
+}
+
+static fwts_framework_minor_test show_logs_tests[] = {
+	{ show_logs_test1, "Show Tests Log Files" },
+	{ NULL, NULL }
+};
+
+static fwts_framework_ops show_logs_ops = {
+	.description = "Show Tests Log Files",
+	.minor_tests = show_logs_tests
+};
+
+FWTS_REGISTER("show_logs", &show_logs_ops, FWTS_TEST_EARLY,
+	FWTS_FLAG_BATCH)