Hi one and all, I've just pushed out V0.19.26 in the fwts development PPA (https://launchpad.net/~firmware-testing-team/+archive/ppa-firmware-test-suite-dev) and it includes a major milestone - semantic testing of ACPI AML methods.
The new code includes an ACPI execution engine that now tests nearly 70 ACPI methods found in the DSDT table. Each method instance is executed (where possible with different sets of inputs) and fwts checks to see if methods return the correct return types (integers, packages, buffers, etc). This should catch bugs in poorly implemented AML byte code. It is important to point out that the tests do not test complete run time behaviour, as we do not have the luxury of being able to fully test interactions between the AML byte code and real hardware (e.g. I/O ports, embedded controller, doing SMIs into the BIOS) etc. However, because we can instrument the ACPI execution engine, we can do some extra level of testing. In this first version, I have added semaphore checking, to keep track of mutex acquires and releases to ensure ACPI methods are locking and unlocking protected resources correctly. To get this goodness, use the development PPA of fwts and run with: sudo fwts method Alternatively, one can load in the ACPI tables dumped from another machine (dumped out using sudo fwts --dump) with the following: fwts --dumpfile=acpidump.log method This new method test also does some quick sanity checks on all Method +Object names to see if they conform to the ACPI specification. For completeness sake, the following Methods/Objects are being sanity checked: _ALC Ambient Light Colour Chromaticity. _ALI Ambient Light Illuminance. _ALT Ambient Light Temperature. _ALP Ambient Light Polling. _LID Lid Status Method. _STP Set Expired Timer Wake Policy Method. _STV Set Timer Value Method. _TIP Expired Timer Wake Policy Method. _TIV Timer Values Method. _SBS Smart Battery Subsystem Method. _BIF Battery Information Method. _BIX Battery Information Extended Method. _BMA Battery Measurement Averaging Method. _BMS Battery Measurement Sampling Time Method. _BST Battery Status Method. _BTP Battery Trip Point Method. _PCL Power Consumer List Method. _BTM Battery Time Method. _BMD Battery Maintenance Data Method. _BMC Battery Maintenance Control Method. _PSR Power Source Method. _PIF Power Source Information Object. _FIF Fan Information Method. _FSL Fan Set Level Method. _FST Fan Status Method. _ACx Active Cooling. _CRT Critical Trip Point Method. _DTI Device Temperature Indication. _HOT Hot Temperature Method. _NTT Notification Temp Threshold Method. _PSV Passive Temp Method. _RTV Relative Temp Values Method. _SCP Set Cooling Policy Method. _TMP Thermal Zone Current Temp Method. _TC1 Thermal Constant 1 Object. _TC2 Thermal Constant 2 Object. _TPT Trip Point Temperature Method. _TSP Thermal Sampling Period Object. _TST Temperature Sensor Threshold Object. _TZP Thermal Zone Polling Object. _DCK Dock Method. _BDN BIOS Dock Name Method. _BBN Base Bus Number Method. _BFS Back from Sleep Method. _PTS Prepare to Sleep Method. _GTS Going to Sleep Method. _TTS Transition to State Method. _S0 System S0 State Object. _S1 System S1 State Object. _S2 System S2 State Object. _S3 System S3 State Object. _S4 System S4 State Object. _S5 System S5 State Object. _WAK System Wake Method. _DOS Enable/Disable Output Switching Method. _DOD Enumerate All Devices Attached to Display Adapter Method. _ROM Get ROM Data Object. _GPD Get POST Device Method. _SPD Set POST Device Method. _VPO Video POST Options Method. _ADR Return Unique ID for Device Method. _BCL Query List of Brightness Control Levels Supported Method. _BCM Set Brightness Level Method. _BQC Brightness Query Current Level Method. _DDC Return the EDID for this Device Method. _DCS Return the Status of Output Device Method. _DGS Query Graphics State Method. _DSS Device Set State Method. Please try this out and keep me informed if any issues you see or improvements you require. Colin _______________________________________________ Mailing list: https://launchpad.net/~firmware-testing-team Post to : [email protected] Unsubscribe : https://launchpad.net/~firmware-testing-team More help : https://help.launchpad.net/ListHelp

