summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRobert Moore <Robert.Moore@intel.com>2013-12-17 13:34:23 -0800
committerRobert Moore <Robert.Moore@intel.com>2013-12-17 13:34:23 -0800
commit99ff9c30bec5b8beb93300373aa2b027afa035c3 (patch)
tree8c760833c4ae40654bf4f9233867f85489d39f58 /tests
parent3911d320464c487fd92494a23e197171ed873216 (diff)
downloadacpica-99ff9c30bec5b8beb93300373aa2b027afa035c3.tar.gz
ASLTS: Fixes for slack mode failures.
This patch fixes the failure reported for the following ASLTS test: exceptions:exc_result2:m692-Inc-Exc (32/64 bit slack mode) exceptions:exc_result2:m692-Dec-Exc (32/64 bit slack mode) The test cases expect exceptions generated for mismatched types during implicit conversions happened to Increment/Decrement opcodes. And the [Unitialized] object could never be converted into object with any other types. But the "FAIL" is emitted due to the slack mode which converts [Uninitialized] operand into 0-valued Integer, thus no type mismatch can be examined for these test cases. The command to confirm this test: aslts.sh -m s32 -m s64 -c exc_result2 -t The result in __STATUS_OF_TESTS before applying this fix: ":STST:exceptions:exc_result2:m692-Inc-Exc:FAIL:Errors # 02 00 00 00:" ":STST:exceptions:exc_result2:m692-Dec-Exc:FAIL:Errors # 02 00 00 00:" The result in __STATUS_OF_TESTS after applying this fix: ":STST:exceptions:exc_result2:m692-Inc-Exc:PASS:" ":STST:exceptions:exc_result2:m692-Dec-Exc:PASS:" Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/aslts/src/runtime/collections/complex/result/tests/rindecrement/rindecrement.asl42
1 files changed, 32 insertions, 10 deletions
diff --git a/tests/aslts/src/runtime/collections/complex/result/tests/rindecrement/rindecrement.asl b/tests/aslts/src/runtime/collections/complex/result/tests/rindecrement/rindecrement.asl
index b2ce664a7..ee0252e3d 100644
--- a/tests/aslts/src/runtime/collections/complex/result/tests/rindecrement/rindecrement.asl
+++ b/tests/aslts/src/runtime/collections/complex/result/tests/rindecrement/rindecrement.asl
@@ -561,10 +561,10 @@ Method(m692, 2, Serialized)
Return (1)
}
- if (LEqual(arg4, 0)) { // Increment
- Increment(Local1)
+ if (LEqual(arg4, 0)) { // Increment
+ Increment(Local1)
} elseif (LEqual(arg4, 1)) { // Decrement
- Decrement(Local1)
+ Decrement(Local1)
} else {
// Unexpected Kind of Op (0 - Increment, 1 - Decrement)
err(Concatenate(arg0, terr), z125, 25, 0, 0, arg4, 0)
@@ -572,9 +572,20 @@ Method(m692, 2, Serialized)
}
if (arg5) {
- // Exception is expected
- if (LNot(CH06(arg0, 26, 0xff))) {
- if (STCS) {m000(2, 0x100, arg2, arg3)}
+ if (LAnd(SLCK, LAnd(LEqual(ToInteger(arg3), 0),
+ LEqual(ToInteger(arg2), 1)))) {
+ // In slack mode, [Uninitialized] object
+ // will be converted to Integer 0, thus no
+ // exception caused by implicit source
+ // conversion.
+ if (CH03(arg0, z125, 26, arg3, arg2)) {
+ if (STCS) {m000(2, 0x100, arg2, arg3)}
+ }
+ } else {
+ // Exception is expected
+ if (LNot(CH06(arg0, 26, 0xff))) {
+ if (STCS) {m000(2, 0x100, arg2, arg3)}
+ }
}
} elseif (CH03(arg0, z125, 27, arg3, arg2)) {
// Processing caused unexpected exception
@@ -621,7 +632,7 @@ Method(m692, 2, Serialized)
Return (1)
}
- if (LEqual(arg4, 0)) { // Increment
+ if (LEqual(arg4, 0)) { // Increment
Store(m100(Local1), Local2)
} elseif (LEqual(arg4, 1)) { // Decrement
Store(m101(Local1), Local2)
@@ -632,9 +643,20 @@ Method(m692, 2, Serialized)
}
if (arg5) {
- // Exception is expected
- if (LNot(CH06(arg0, 30, 0xff))) {
- if (STCS) {m000(2, 0x100, arg2, arg3)}
+ if (LAnd(SLCK, LAnd(LEqual(ToInteger(arg3), 0),
+ LEqual(ToInteger(arg2), 1)))) {
+ // In slack mode, [Uninitialized] object
+ // will be converted to Integer 0, thus no
+ // exception caused by implicit source
+ // conversion.
+ if (CH03(arg0, z125, 30, arg3, arg2)) {
+ if (STCS) {m000(2, 0x100, arg2, arg3)}
+ }
+ } else {
+ // Exception is expected
+ if (LNot(CH06(arg0, 30, 0xff))) {
+ if (STCS) {m000(2, 0x100, arg2, arg3)}
+ }
}
} elseif (CH03(arg0, z125, 31, arg3, arg2)) {
// Processing caused unexpected exception