diff --git a/tests/aslts/src/runtime/collections/functional/module/RUN.asl b/tests/aslts/src/runtime/collections/functional/module/RUN.asl index 8a89e9b01..f92c2e9d2 100644 --- a/tests/aslts/src/runtime/collections/functional/module/RUN.asl +++ b/tests/aslts/src/runtime/collections/functional/module/RUN.asl @@ -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() diff --git a/tests/aslts/src/runtime/collections/functional/module/object.asl b/tests/aslts/src/runtime/collections/functional/module/object.asl index 19857cd80..1e2cc86e9 100644 --- a/tests/aslts/src/runtime/collections/functional/module/object.asl +++ b/tests/aslts/src/runtime/collections/functional/module/object.asl @@ -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) + } +} diff --git a/tests/aslts/src/runtime/collections/functional/module/scope.asl b/tests/aslts/src/runtime/collections/functional/module/scope.asl index cbe36b850..d6835353c 100644 --- a/tests/aslts/src/runtime/collections/functional/module/scope.asl +++ b/tests/aslts/src/runtime/collections/functional/module/scope.asl @@ -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) + } +}