From bc992e6182d6988a5ad28c2bf8f1e3db59ab3002 Mon Sep 17 00:00:00 2001 From: Sei Lisa Date: Thu, 15 Sep 2022 01:06:08 +0200 Subject: [PATCH] LL change: the status of STATUS_DIE_AT_* is returned As of Second Life Server 2022-09-09.574921, STATUS_DIE_AT_EDGE and STATUS_DIE_AT_NO_ENTRY return their corresponding settings rather than always FALSE. Regression/coverage tests are clearly lacking in this area, as the change didn't trigger any test breakage, therefore add some unit tests. --- lslopt/lslextrafuncs.py | 7 ++----- unit_tests/regression.suite/computable.lsl | 1 + unit_tests/regression.suite/computable.out | 1 + unit_tests/regression.suite/non-computable.lsl | 2 ++ unit_tests/regression.suite/non-computable.out | 2 ++ 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lslopt/lslextrafuncs.py b/lslopt/lslextrafuncs.py index cee4637..c3b3571 100644 --- a/lslopt/lslextrafuncs.py +++ b/lslopt/lslextrafuncs.py @@ -332,11 +332,8 @@ def llGetOwnerKey(id): raise ELSLCantCompute def llGetStatus(mask): - # Leave out STATUS_DIE_AT_EDGE, _DIE_AT_NO_ENTRY and _CAST_SHADOWS. - # For some reason, llGetStatus(STATUS_DIE_AT_EDGE) does not return the - # actual value of whether the flag is set or not for the object. Same for - # STATUS_DIE_AT_NO_ENTRY. STATUS_CAST_SHADOWS is unused so that's normal. - if (mask & ~(0x800|0x200|0x80)) == 0: + # Leave out STATUS_CAST_SHADOWS from the flags to check. + if (mask & ~0x200) == 0: return 0 raise ELSLCantCompute diff --git a/unit_tests/regression.suite/computable.lsl b/unit_tests/regression.suite/computable.lsl index 6fc9a08..a21e461 100644 --- a/unit_tests/regression.suite/computable.lsl +++ b/unit_tests/regression.suite/computable.lsl @@ -28,6 +28,7 @@ default , llGetDisplayName("") , llGetEnv("") , llGetEnv("yadda") + , llGetStatus(STATUS_CAST_SHADOWS) ]); } } diff --git a/unit_tests/regression.suite/computable.out b/unit_tests/regression.suite/computable.out index 592fa18..b91d4d1 100644 --- a/unit_tests/regression.suite/computable.out +++ b/unit_tests/regression.suite/computable.out @@ -27,6 +27,7 @@ default , "" , "" , "" + , 0 ]); } } diff --git a/unit_tests/regression.suite/non-computable.lsl b/unit_tests/regression.suite/non-computable.lsl index cef64ee..1c98bbc 100644 --- a/unit_tests/regression.suite/non-computable.lsl +++ b/unit_tests/regression.suite/non-computable.lsl @@ -23,6 +23,8 @@ default , llGetEnv("estate_name") , llXorBase64Strings("++++", "?") , llAbs(-2147483648) + , llGetStatus(STATUS_DIE_AT_EDGE) + , llGetStatus(STATUS_DIE_AT_NO_ENTRY) ]); } } diff --git a/unit_tests/regression.suite/non-computable.out b/unit_tests/regression.suite/non-computable.out index 480e701..6ab9d77 100644 --- a/unit_tests/regression.suite/non-computable.out +++ b/unit_tests/regression.suite/non-computable.out @@ -21,6 +21,8 @@ default , llGetEnv("estate_name") , llXorBase64Strings("++++", "?") , llAbs(((integer)-2147483648)) + , llGetStatus(128) + , llGetStatus(2048) ]); } }