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>
This commit is contained in:
Lv Zheng 2016-08-26 11:01:21 +08:00
parent a4e5390478
commit 52fc3de415
3 changed files with 115 additions and 4 deletions

View File

@ -30,7 +30,11 @@
if (STTT("Module level code execution", TCLF, 14, W01a)) {
SRMT("MLS0")
MLS0()
SRMT("MLS1")
MLS1()
SRMT("MLO0")
MLO0()
SRMT("MLO1")
MLO1()
}
FTTT()

View File

@ -31,8 +31,8 @@
*/
/*
* Verify if Type1Opcode (ex., If) is allowed under Device, PowerResource,
* Processor, or ThermalZone
* Verify if Type1Opcode (ex., If) and Type2Opcode (ex., Store) is allowed
* under Device, PowerResource, Processor, or ThermalZone
*
* ASL spec state:
* 1. DeviceTerm supports ObjectList for ACPI 1.0 ~ ACPI 6.1.
@ -113,3 +113,68 @@ Method(MLO0,, Serialized)
err(ts, z181, 3, z181, 3, ml13, 2)
}
}
/* Tests for Type2Opcode */
Name(ml14, 0)
Name(ml15, 0)
Name(ml16, 0)
Name(ml17, 0)
Scope(\_SB)
{
Device(dev1)
{
Store (1, ml14)
if (LEqual(ml14, 1)) {
Store(2, ml14)
}
PowerResource(pr01, 1, 0)
{
Store (1, ml15)
if (LEqual(ml15, 1)) {
Store(2, ml15)
}
}
}
}
Scope(\_PR)
{
Processor(cpu1, 0, 0xFFFFFFFF, 0)
{
Store (1, ml16)
if (LEqual(ml16, 1)) {
Store(2, ml16)
}
}
}
Scope(\_TZ)
{
ThermalZone(thz1)
{
Store (1, ml17)
if (LEqual(ml17, 1)) {
Store(2, ml17)
}
}
}
Method(MLO1,, Serialized)
{
Name(ts, "MLO1")
Store("TEST: MLO1 Type2Opcode is executable under objects", Debug)
if (LNotEqual(ml14, 2)) {
err(ts, z181, 4, z181, 4, ml14, 2)
}
if (LNotEqual(ml15, 2)) {
err(ts, z181, 5, z181, 5, ml15, 2)
}
if (LNotEqual(ml16, 2)) {
err(ts, z181, 6, z181, 6, ml16, 2)
}
if (LNotEqual(ml17, 2)) {
err(ts, z181, 7, z181, 7, ml17, 2)
}
}

View File

@ -31,8 +31,8 @@
*/
/*
* Verify if Type1Opcode (ex., If) is allowed under DefinitionBlock or
* Scope
* Verify if Type1Opcode (ex., If) and Type2Opcode (ex., Store) is allowed
* under DefinitionBlock or Scope
*
* ASL spec state:
* 1. DefinitionBlockTerm supports TermList for ACPI 1.0 ~ 6.0.
@ -89,3 +89,45 @@ Method(MLS0,, Serialized)
err(ts, z180, 2, z180, 2, ml02, 2)
}
}
/* Tests for Type2Opcode */
Name(ml03, 0)
Name(ml04, 0)
Name(ml05, 0)
Store (1, ml03)
if (LEqual(ml03, 1)) {
Store(2, ml03)
}
Scope(\)
{
Store (1, ml04)
if (LEqual(ml04, 1)) {
Store(2, ml04)
}
}
Scope(\_SB)
{
Store (1, ml05)
if (LEqual(ml05, 1)) {
Store(2, ml05)
}
}
Method(MLS1,, Serialized)
{
Name(ts, "MLS1")
Store("TEST: MLS1, Type2Opcode is executable under scopes", Debug)
if (LNotEqual(ml03, 2)) {
err(ts, z180, 3, z180, 3, ml03, 2)
}
if (LNotEqual(ml04, 2)) {
err(ts, z180, 4, z180, 4, ml04, 2)
}
if (LNotEqual(ml05, 2)) {
err(ts, z180, 5, z180, 5, ml05, 2)
}
}