183 Commits

Author SHA1 Message Date
Peter Wu
6729c3d308 ASLTS: cntl: fix spelling errors
Signed-off-by: Peter Wu <peter@lekensteyn.nl>
2016-11-12 12:18:45 +01:00
Robert Moore
7ea2a52bd2 Test suite: Update for ASL grammar changes:
Tests related to these grammar changes have been removed/commented-out:

RefOf, DerefOf, ObjectType: Control method invocation as an operand is
no longer supported by the ASL grammar.
2016-11-04 07:25:24 -07:00
Lv Zheng
e24b6af0f8 ASLTS: table: Add TLD0.tstk test
Add a test to see if a recursive "Load" - loading table2 via MLC during
table1 loading - can be performed. Lv Zheng.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
2016-10-26 14:48:17 +08:00
Lv Zheng
2272cc45f5 ASLTS: cntl: Cleanup y260 checks
The y260 bug excluded code now works. We are using y260 to exclude an
implicit target operand conversion bug. So this patch corrects the y260
code.
Note that there is no bug demo code related to this bug, so we can simply
remove old exclusions for y260 as it is useless to keep such kind of
simple exclusions.

Link: https://bugs.acpica.org/show_bug.cgi?id=1327
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
2016-10-26 14:48:17 +08:00
Lv Zheng
4af71b11e6 ASLTS: table: Fix TLD0.tstg test
This patch cleans up TLD0.tstg, keeping it working for catching
'Load/Unload' regressions.

This patch fixes TLD0.tstg around the old forward referencing approaches
as the TermList parsing support has changed the old behavior:
1. OPR0 couldn't be referenced at the position created after FLU0.
2. FieldUnit/BufferField have already been initialized during the table
   loading (can be validated via changing arg2 into a named object).
Such forward referencing test shouldn't be maintained by the 'table' case.

Another issue is:
If ArgX is a RefOf(OldObj), writing NewObj to ArgX should result in
RefOf(NewObj). This is not working for object types other than Integer,
String, Buffer, so this patch disables such tests with y260.

Link: https://bugs.acpica.org/show_bug.cgi?id=1327
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
2016-10-26 14:48:17 +08:00
Lv Zheng
2a0907db7a ASLTS: table: Fix TLT0.tst1 test
This patch cleans up TLT0.tst1, keeping it working for catching
'LoadTable/Unload' regressions.

The wrong signature of LoadTable opcode now results in AE_BAD_SIGNATURE
exception rather than siliently returning zero.

This patch also re-sorts error indexes in TLT0.tst1.

Link: https://bugs.acpica.org/show_bug.cgi?id=1327
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
2016-10-26 14:48:17 +08:00
Lv Zheng
fe71d3deca ASLTS: table: Fix TLT0.tste test
This patch cleans up TLT0.tste, keeping it working for catching
'LoadTable/Unload' regressions.

The wrong signature of LoadTable opcode now results in AE_BAD_SIGNATURE.

Link: https://bugs.acpica.org/show_bug.cgi?id=1327
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
2016-10-26 14:48:17 +08:00
Lv Zheng
cc8a4f3943 ASLTS: table: Fix TLT0.tst4 test
This patch cleans up TLT0.tst4, keeping it working for catching
'LoadTable/Unload' regressions.

In order to install OEM1 objects to "\DTM2", RootPathString should be 5
bytes rather than 1 bytes.

Link: https://bugs.acpica.org/show_bug.cgi?id=1327
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
2016-10-26 14:48:17 +08:00
Robert Moore
a68b02b47f Test suite: Some small changes for new test generation method
minor changes to allow for disassembly/recompile.
2016-10-06 13:33:16 -07:00
Robert Moore
60225ffb77 Test suite: Delete extraneous text file
Delete an extraneous test output file.
2016-10-03 10:08:18 -07:00
Robert Moore
14b4464b8b Test suites, ASLTS: Update for ASL+; Resources, Store
Update for latest resource descriptor macro names
Update for various Store(operator, operand tests) for ASL+
2016-09-28 10:25:46 -07:00
Lv Zheng
1a69fcaa99 ASLTS: Fix script regression of running LoadTable
LoadTable opcodes require acpiexec to build OEM tables in RSDT/XSDT.
However, during the EFI porting, OEM test table loading becomes an optional
behavior for acpiexec.
As ASLTS requires the OEM test tables, disabling this option by default
triggers the regression for ASLTS, causing LoadTable related cases to fail.

This patch fixes this regression by enabling this option for ASLTS.

Link: https://bugs.acpica.org/show_bug.cgi?id=1327
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
2016-09-23 08:44:10 +08:00
Robert Moore
d14099ff86 ASL test suite: Additional changes for method invocations
More changes to fix incorrect control method invocation.
similar to previous commit.
2016-09-16 12:48:50 -07:00
Robert Moore
a315224255 ASL test suite: Fix incorrect method invocations
A bunch of tests were invoking the wrong control method.
New iASL caught these because the number of arguments were wrong.
2016-09-14 14:15:02 -07:00
Robert Moore
45b8f63894 Fix for incorrect status from AcpiTbFindTable
Was always returning AE_NOT_FOUND, even if the table was found.

Affected these ASL operators:
DataTableRegion
LoadTable
2016-09-14 07:39:29 -07:00
Lv Zheng
0e24fb67cd Interpreter: Fix MLC issues by switching to new TermList grammar for table loading
The MLC (Module Level Code) is an ACPICA terminology describing the AML
code out of any control method, its support is an indication of the
interpreter behavior during the table loading.

The original implementation of MLC in ACPICA had several issues:
1. Out of any control method, besides of the object creating opcodes, only
   the code blocks wrapped by "If/Else/While" opcodes were supported.
2. The supported MLC code blocks were executed after loading the table
   rather than being executed right in place.
   ============================================================
   The demo of this order issue is as follows:
     Name (OBJ1, 1)
     If (CND1 == 1)
     {
       Name (OBJ2, 2)
     }
     Name (OBJ3, 3)
   The original MLC support created OBJ2 after OBJ3's creation.
   ============================================================
Other than these limitations, MLC support in ACPICA looks correct. And
supporting this should be easy/natural for ACPICA, but enabling of this was
blocked by some ACPICA internal and OSPM specific initialization order
issues we've fixed recently. The wrong support started from the following
false bug fixing commit:
  Commit: 80d7951177315f70b5ffd8663985fbf725d07799
  Subject: Add support for module-level executable AML code.

We can confirm Windows interpreter behavior via reverse engineering means.
It can be proven that not only If/Else/While wrapped code blocks, all
opcodes can be executed at the module level, including operation region
accesses. And it can be proven that the MLC should be executed right in
place, not in such a deferred way executed after loading the table.

And the above facts indeed reflect the spec words around ACPI definition
block tables (DSDT/SSDT/...), the entire table and the Scope object is
defined by the AML specification in BNF style as:
  AMLCode := DefBlockHeader TermList
  DefScope := ScopeOp PkgLength NameString TermList
The bodies of the scope opening terms (AMLCode/Scope) are all TermList,
thus the table loading should be no difference than the control method
evaluations as the body of the Method is also defined by the AML
specification as TermList:
  DefMethod := MethodOp PkgLength NameString MethodFlags TermList
The only difference is: after evaluating control method, created named
objects may be freed due to no reference, while named objects created by
the table loading should only be freed after unloading the table.

So this patch follows the spec and the de-facto standard behavior, enables
the new grammar (TermList) for the table loading.

By doing so, beyond the fixes to the above issues, we can see additional
differences comparing to the old grammar based table loading:
1. Originally, beyond the scope opening terms (AMLCode/Scope),
   If/Else/While wrapped code blocks under the scope creating terms
   (Device/PowerResource/Processor/ThermalZone) are also supported as
   deferred MLC, which violates the spec defined grammar where ObjectList
   is enforced. With MLC support improved as non-deferred, the interpreter
   parses such scope creating terms as TermList rather ObjectList like the
   scope opening terms.
   After probing the Windows behavior and proving that it also parses these
   terms as TermList, we submitted an ECR (Engineering Change Request) to
   the ASWG (ACPI Specification Working Group) to clarify this. The ECR is
   titled as "ASL Grammar Clarification for Executable AML Opcodes" and has
   been accepted by the ASWG. The new grammar will appear in ACPI
   specification 6.2.
2. Originally, Buffer/Package/OperationRegion/CreateXXXField/BankField
   arguments are evaluated in a deferred way after loading the table. With
   MLC support improved, they are also parsed right in place during the
   table loading.
   This is also Windows compliant and the only difference is the removal
   of the debugging messages implemented before AcpiDsExecuteArguments(),
   see Link 1 for the details. A previous commit should have ensured that
   AcpiCheckAddressRange() won't regress.

Note that enabling this feature may cause regressions due to long term
Linux ACPI support on top of the wrong grammar. So this patch also prepares
a global option to be used to roll back to the old grammar during the
period between a regression is reported and the regression is
root-cause-fixed. Lv Zheng.

Link 1: https://bugzilla.kernel.org/show_bug.cgi?id=112911
Tested-by: Chris Bainbridge <chris.bainbridge@gmail.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
2016-08-26 11:01:22 +08:00
Lv Zheng
5ae7d8fbce ASLTS: Add cases to demonstrate MLC order issue
Original ACPICA executes If/Else/While wrapped MLC code block in a deferred
way, this patch introduces ASLTS cases to demonstrate this issue.
file index: order.asl 182
overall file index: order.asl z182

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
2016-08-26 11:01:22 +08:00
Lv Zheng
52fc3de415 ASLTS: Add cases to validate if Type2Opcode is supported at module level
This patch adds test cases to validate if Type2Opcode is supported at
module level.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
2016-08-26 11:01:21 +08:00
Robert Moore
d18654bc94 Revert "Acpica parser" 2016-07-01 07:20:27 -07:00
Lv Zheng
5590b7aee0 ASLTS: Add cases to demonstrate MLC order issue
Original ACPICA executes If/Else/While wrapped MLC code block in a deferred
way, this patch introduces ASLTS cases to demonstrate this issue.
file index: order.asl 182
overall file index: order.asl z182

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
2016-06-22 09:28:53 +08:00
Lv Zheng
6f52b66ca1 ASLTS: Add cases to validate if Type2Opcode is supported at module level
This patch adds test cases to validate if Type2Opcode is supported at
module level.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
2016-06-22 09:28:53 +08:00
Lv Zheng
a33e820c2f ASLTS: Add cases to validate if Type1Opcode is supported at module level
This patch adds module level code execution tests.

test collection: functional
test index in collection: 14
file index: scope.asl 180
            object.asl 181

overall collection: TCLF
overall test index: W01a
overall file index: scope.asl z180
                    object.asl z181

The cases can reflect the current MLC support state - ACPICA currently
supports Type1Opcode at module level. All cases should pass with the
existing MLC support.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
2016-05-13 10:37:11 +08:00
Robert Moore
a981371ef9 Tests: Update copyright notices to 2016
Affects all source files.
2016-01-06 08:58:19 -08:00
Robert Moore
05069fc75f Update grammar.asl test
A couple of small updates.
2015-12-18 09:28:03 -08:00
Robert Moore
85539cd75f Test suite: Update a makefile message
Update "compiled" message for clarity.
2015-12-02 14:38:54 -08:00
Robert Moore
2860196a69 Test suites: Update ASLTS for iASL typechecking changes.
Some tests are now obsolete and have been commented out.
2015-09-30 11:58:35 -07:00
Robert Moore
b6d027a3b1 Update test file permissions (2)
Set correctly to 644.
2015-09-23 13:37:37 -07:00
Robert Moore
09e8e6671a Update test file permissions (1)
Set execute bit to force commit.
2015-09-23 13:35:53 -07:00
Robert Moore
ce260fcd30 Test suite: Update makefile to test all iASL output files
Generate all of the possible output files (listings, etc.) in
order to sanity check that the features seem to be working
properly. These files are immediately deleted.
2015-09-18 14:10:38 -07:00
Robert Moore
d44beb7bdf AAPITS test is deprecated and removed.
Is not maintained and is obsolete.
Will remain in git tree until if/when it can be resurrected.
2015-08-14 09:02:55 -07:00
Robert Moore
eb9f8cb9fd iASL: Add new warnings for method LocalX and ArgX variables.
1) Warn if a Local is set but never used
2) Warn if a ArgX is never used (for non-predefined method names)
3) Warn if a ArgX that is used as a local is never used
2015-06-25 09:56:52 -07:00
Robert Moore
e652bca130 Update file permissions - no functional change.
Cleanup file permissions.
2015-06-23 13:18:39 -07:00
Robert Moore
f194b6e7d7 ACPI 6.0: Aslts: Update for new return value for _REV.
_REV now returns 2 in ACPI 6.0. Also update the expected range
of values for the Revision object.
2015-06-09 13:13:26 -07:00
Robert Moore
3b1026e0bd De-macroize calls to standard C library functions.
Across all of ACPICA. Replace C library macros such as ACPI_STRLEN
with the standard names such as strlen. The original purpose for
these macros is long since obsolete.
2015-06-09 12:11:26 -07:00
Robert Moore
960dac756b aapts: Update for ACPICA interface change.
For SetFirmwareWakingVector.
2015-06-05 12:20:41 -07:00
Robert Moore
0789c7cb97 Merge pull request #67 from krytarowski/tests-on-netbsd
Use portable uname option -a to unveil platform details
2015-06-02 14:01:27 -07:00
Kamil Rytarowski
c768c78ce7 Fix build of tests/aabits 2015-03-13 02:38:56 +00:00
Kamil Rytarowski
5c3a053e67 Use portable uname option -a to unveil platform details 2015-03-13 00:45:23 +00:00
Robert Moore
1d438e1493 Tests: Update constants for iASL constant folding changes.
The iASL constant folding is has been updated. Update ASLTS to reflect this.
We must force some operations to bypass the constant folding so that
there are no compile-time errors, and the runtime error checking is
tested instead. In other words, more errors are now caught during
the compile.
2015-03-11 11:36:42 -07:00
Robert Moore
46dc081e57 Casting changes for MSVC and FreeBSD support.
Update for some recent changes.
2015-02-26 08:10:32 -08:00
David E. Box
8990e73ab2 Update Copyright headers to 2015. 2015-01-27 11:55:38 -08:00
David E. Box
6a13235548 Revert "source and test: update copyright notices to 2015"
This reverts commit 28a95326289ca5ee7cd95f8e8e809dc5564d9509.

Commit mistakenly changes file format to CRLF from default LF.
2015-01-27 11:39:30 -08:00
David E. Box
28a9532628 source and test: update copyright notices to 2015 2015-01-23 14:44:06 -08:00
Robert Moore
3d4baf30e4 Tests/API: Update to handle new acpiexec features.
The API test sets ACPI_EXEC_APP, so need to add a stub function
for the new -fi acpiexec feature.
2014-10-09 10:16:36 -07:00
Robert Moore
b35f4a7dbc Tests/ASLTS: Abort test suite on iASL compile failure.
This change updates the ASLTS scripts and makefiles to abort
immediately if any test suite case fails to compile.
David E. Box. ACPICA BZ 861.
2014-10-03 14:12:06 -07:00
Robert Moore
6b0a0455be Tests: Update ASLTS makefiles.
Update the main makefile to ensure that iASL compile failures are
correctly reported. Also fix a missing semicolon.

ACPICA BZ 1106. Reported by Dean Nelson <dnelson@redhat.com>,
fixed by Lv Zheng. Independently validated by David Box.
2014-09-25 09:29:12 -07:00
Robert Moore
f3b516dfd5 iASL/Disassembler: Add support for hardware summary mapfiles.
Adds support for both iASL and the disassembler to create a hardware
and connection summary mapfile (via the -lm option.)
2014-09-19 10:03:56 -07:00
Robert Moore
b7c6bb1e79 Tests/aapits: Eliminate unreachable code warnings.
Temporarily remove a block of code that could not be reached,
pending further investigation. Eliminates unreachable code
warnings.
2014-07-30 14:05:57 -07:00
Robert Moore
1fab38f3ac Tests/aapits: Fix a file handle memory leak.
In atexec.c. ACPICA BZ 1095.
2014-07-30 14:00:39 -07:00
Robert Moore
963bb95f4e Tests: Enhance asltsrun script to understand new debug object output.
The AML debug object now outputs the value of the current ACPI Timer().
This broke the original script. This change makes the script independent
of the contents between the opening brackets.
David Box.
2014-07-29 14:02:01 -07:00