← Back to team overview

firmware-testing-team team mailing list archive

Recent fwts developments for 2011.

 

Hi all,

The New Year brings another set of updates to fwts.  I've been tinkering
with the ACPICA core code during idle moments over Christmas to try and
update and improve the ACPICA dependant functionality.

== ACPI specific changes ==

The fwts syntaxcheck test (that checks for AML syntax errors) has been
re-written to accommodate the latest ACPICA IASL core engine.   I've now
completely removed the use of the iasl tool and instead integrated the
iasl core from the ACPICA sources into fwts.  This will fix a few random
segfaults in iasl (caused by very broken AML bytecode) and means we get
tighter integration of the assembler/disassembler functionality.  Also,
we now get less false positive errors found with the newer assembler,
which helps us to pin-point real issues more easily.

The syntaxcheck test has been improved and now also dumps a small
portion of disassembled AML byte code around any errors/warnings found
in the code to provide more contextual feedback when problems are
detected.  Time willing, I want to add more intelligence into the
syntaxcheck test to add some context specific advice (e.g. how to fix
AML errors) but this is a lower priority objective.

With the incorporation of the iasl engine build of the ACPICA core I've
had to re-structure the code, and now I'm using libtool to manage the
static and shared libraries which was troublesome to get working, but
worth the effort.

So, get all this goodness with the following PPA -
ppa:firmware-testing-team/ppa-firmware-test-suite-natty-stable

The current version (as of 6th Jan 2011) is 0.20.16


== Other changes since beginning of December 2010 ==

1) A new feature added is a final summary table that lists each test and
a count of pass, failed, warnings, skipped and aborted tests.  This
should help provide a quick top level overview of test results.

2) UEFI compatibility changes.  I've reworked some of the underlying
code to make sure a lot of the tests (where applicable) work on UEFI
firmware.  As a consequence, some tests (such as the bios32 test) check
firmware type and will only run if we are using BIOS rather than UEFI
firmware.  Tests "smbios", "mcfg", "os2gap" have been re-worked to run
on all firmware types.  Thanks to Manoj Iyer for making a UEFI box
available to me to do this development work.
 
3) The e820 test now renamed to "memorymap" as it works for BIOS and
UEFI firmware and the e820 test name is a misnomer for UEFI firmware.

4) The formatting of the --help text and --show-tests output now takes
into consideration the terminal widths rather than assuming a default 80
character wide terminal.

5) S4 hibernate test: checks if swap exists before trying to hibernate
(thanks to Tony Espy for the idea).

6) klog test: add some IO APIC IRQ checks

7) LaunchPad tags:

        I've added a bunch of LP tags to each test and fwts can
        optionally output the tags so that they can be pasted into LP
        bug reports when we find firmware errors with fwts.

        --lp-tags flag - runs tests silently with no logging, and dumps
        out LaunchPad tags that relate to the bugs found during testing.
        
        --lp-tags-log  - as above, but does not disable logging.

        Tags appear at the end of each test and also are all collated
        together as a space separated tag name list in the summary
        information in the format:

        Tags: tagname [tagname..]

        for example:

        Tags: acpi-apic acpi-invalid-table acpi-method-return


8) -j, --json-data-path option.  A log of the kernel log scanning text
was moved to a json format lookup table in /usr/share/fwts/klog.json.
Using the -j or --json-data-path option one can specify an alternate
path other than the default /usr/share/fwts

Also, fwts now builds fine for ARM and PowerPC architectures, but don't
expect many tests to be applicable for this hardware(!).  

That's about it for now.  As ever, I'm always keen to get feedback on
bugs and suggestions on improvements.   I'm also accepting patches
too :-)

Colin