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

Deborah McLemore debmc at us.ibm.com
Tue Jul 5 19:34:55 UTC 2016


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 at us.ibm.com
debmc at linux.vnet.ibm.com - (plain text)
=====================================



From:	Colin Ian King <colin.king at canonical.com>
To:	Deb McLemore <debmc at linux.vnet.ibm.com>,
            fwts-devel at 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 at 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 at 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 at lists.ubuntu.com
Modify settings or unsubscribe at:
https://lists.ubuntu.com/mailman/listinfo/fwts-devel



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/fwts-devel/attachments/20160705/1e0d21c0/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <https://lists.ubuntu.com/archives/fwts-devel/attachments/20160705/1e0d21c0/attachment-0001.gif>


More information about the fwts-devel mailing list