LSL Library Call Test 2
Revision as of 17:04, 4 February 2008 by Phoenix Linden (talk | contribs)
- Tests that LSL library functions are callable and that parameter and return types are correct
- Does NOT test library call semantics
- To run, rez a prim, add this script, then touch the prim
- On successful completion says "Ran 172 tests in 50 seconds"
- Test should take ~50s due to sleep and energy delays
- Generates multiple script errors due to erroneous parameters, these errors should be ignored
- For more verbose reporting uncomment llSay call in test()
integer gTests = 0; test(string name) { ++gTests; //llSay(0, name); } tests() { float floatResult; integer integerResult; string stringResult; key keyResult; vector vectorResult; rotation rotationResult; list listResult; test("llGetInventoryKey"); keyResult = llGetInventoryKey("foo"); test("llAllowInventoryDrop"); llAllowInventoryDrop(42); test("llGetSunDirection"); vectorResult = llGetSunDirection(); test("llGetTextureOffset"); vectorResult = llGetTextureOffset(42); test("llGetTextureScale"); vectorResult = llGetTextureScale(42); test("llGetTextureRot"); floatResult = llGetTextureRot(42); test("llSubStringIndex"); integerResult = llSubStringIndex("foo", "foo"); test("llGetOwnerKey"); keyResult = llGetOwnerKey(NULL_KEY); test("llGetCenterOfMass"); vectorResult = llGetCenterOfMass(); test("llGetListLength"); integerResult = llGetListLength([3]); test("llList2Integer"); integerResult = llList2Integer([3], 42); test("llList2Float"); floatResult = llList2Float([3], 42); test("llList2String"); stringResult = llList2String([3], 42); test("llList2Key"); keyResult = llList2Key([3], 42); test("llList2Vector"); vectorResult = llList2Vector([3], 42); test("llList2Rot"); rotationResult = llList2Rot([3], 42); test("llCSV2List"); listResult = llCSV2List("foo"); test("llGetRegionCorner"); vectorResult = llGetRegionCorner(); test("llGetObjectName"); stringResult = llGetObjectName(); test("llSetObjectName"); llSetObjectName("foo"); test("llGetDate"); stringResult = llGetDate(); test("llEdgeOfWorld"); integerResult = llEdgeOfWorld(<1.1,2.2,3.3>, <1.1,2.2,3.3>); test("llGetAgentInfo"); integerResult = llGetAgentInfo(NULL_KEY); test("llAdjustSoundVolume"); llAdjustSoundVolume(0.5); test("llSetSoundQueueing"); llSetSoundQueueing(42); test("llSetSoundRadius"); llSetSoundRadius(0.5); test("llKey2Name"); stringResult = llKey2Name(NULL_KEY); test("llSetTextureAnim"); llSetTextureAnim(42, 42, 42, 42, 0.5, 0.5, 0.5); test("llTriggerSoundLimited"); llTriggerSoundLimited("foo", 0.5, <1.1,2.2,3.3>, <1.1,2.2,3.3>); test("llEjectFromLand"); llEjectFromLand(NULL_KEY); test("llOverMyLand"); integerResult = llOverMyLand(NULL_KEY); test("llGetLandOwnerAt"); keyResult = llGetLandOwnerAt(<1.1,2.2,3.3>); test("llGetNotecardLine"); keyResult = llGetNotecardLine("foo", 42); test("llGetAgentSize"); vectorResult = llGetAgentSize(NULL_KEY); test("llSameGroup"); integerResult = llSameGroup(NULL_KEY); test("llUnSit"); llUnSit(NULL_KEY); test("llGroundSlope"); vectorResult = llGroundSlope(<1.1,2.2,3.3>); test("llGroundNormal"); vectorResult = llGroundNormal(<1.1,2.2,3.3>); test("llGroundContour"); vectorResult = llGroundContour(<1.1,2.2,3.3>); test("llGetAttached"); integerResult = llGetAttached(); test("llGetFreeMemory"); integerResult = llGetFreeMemory(); test("llGetRegionName"); stringResult = llGetRegionName(); test("llGetRegionTimeDilation"); floatResult = llGetRegionTimeDilation(); test("llGetRegionFPS"); floatResult = llGetRegionFPS(); test("llGroundRepel"); llGroundRepel(0.5, 42, 0.5); test("llScriptDanger"); integerResult = llScriptDanger(<1.1,2.2,3.3>); test("llSetVehicleType"); llSetVehicleType(42); test("llSetVehicleFloatParam"); llSetVehicleFloatParam(42, 0.5); test("llSetVehicleVectorParam"); llSetVehicleVectorParam(42, <1.1,2.2,3.3>); test("llSetVehicleRotationParam"); llSetVehicleRotationParam(42, <1.1,2.2,3.3,4.4>); test("llSetVehicleFlags"); llSetVehicleFlags(42); test("llRemoveVehicleFlags"); llRemoveVehicleFlags(42); test("llSitTarget"); llSitTarget(<1.1,2.2,3.3>, <1.1,2.2,3.3,4.4>); test("llAvatarOnSitTarget"); keyResult = llAvatarOnSitTarget(); test("llAddToLandPassList"); llAddToLandPassList(NULL_KEY, 0.5); test("llSetTouchText"); llSetTouchText("foo"); test("llSetSitText"); llSetSitText("foo"); test("llSetCameraEyeOffset"); llSetCameraEyeOffset(<1.1,2.2,3.3>); test("llSetCameraAtOffset"); llSetCameraAtOffset(<1.1,2.2,3.3>); test("llVolumeDetect"); llVolumeDetect(42); test("llResetOtherScript"); llResetOtherScript("foo"); test("llGetScriptState"); integerResult = llGetScriptState("foo"); test("llRemoteLoadScript"); llRemoteLoadScript(NULL_KEY, "foo", 42, 42); test("llOpenRemoteDataChannel"); llOpenRemoteDataChannel(); test("llSendRemoteData"); keyResult = llSendRemoteData(NULL_KEY, "foo", 42, "foo"); test("llRemoteDataReply"); llRemoteDataReply(NULL_KEY, NULL_KEY, "foo", 42); test("llCloseRemoteDataChannel"); llCloseRemoteDataChannel(NULL_KEY); test("llMD5String"); stringResult = llMD5String("foo", 42); test("llStringToBase64"); stringResult = llStringToBase64("foo"); test("llBase64ToString"); stringResult = llBase64ToString("foo"); test("llXorBase64Strings"); stringResult = llXorBase64Strings("foo", "foo"); test("llSetRemoteScriptAccessPin"); llSetRemoteScriptAccessPin(42); test("llRemoteLoadScriptPin"); llRemoteLoadScriptPin(NULL_KEY, "foo", 42, 42, 42); test("llRemoteDataSetRegion"); llRemoteDataSetRegion(); test("llLog10"); floatResult = llLog10(0.5); test("llLog"); floatResult = llLog(0.5); test("llSetParcelMusicURL"); llSetParcelMusicURL("foo"); test("llGetRootPosition"); vectorResult = llGetRootPosition(); test("llGetRootRotation"); rotationResult = llGetRootRotation(); test("llGetObjectDesc"); stringResult = llGetObjectDesc(); test("llSetObjectDesc"); llSetObjectDesc("foo"); test("llGetCreator"); keyResult = llGetCreator(); test("llGetTimestamp"); stringResult = llGetTimestamp(); test("llSetLinkAlpha"); llSetLinkAlpha(42, 0.5, 42); test("llGetNumberOfPrims"); integerResult = llGetNumberOfPrims(); test("llGetNumberOfNotecardLines"); keyResult = llGetNumberOfNotecardLines("foo"); test("llGetBoundingBox"); listResult = llGetBoundingBox(NULL_KEY); test("llGetGeometricCenter"); vectorResult = llGetGeometricCenter(); test("llIntegerToBase64"); stringResult = llIntegerToBase64(42); test("llBase64ToInteger"); integerResult = llBase64ToInteger("foo"); test("llGetGMTclock"); floatResult = llGetGMTclock(); test("llGetSimulatorHostname"); stringResult = llGetSimulatorHostname(); test("llSetLocalRot"); llSetLocalRot(<1.1,2.2,3.3,4.4>); test("llRezAtRoot"); llRezAtRoot("foo", <1.1,2.2,3.3>, <1.1,2.2,3.3>, <1.1,2.2,3.3,4.4>, 42); test("llGetObjectPermMask"); integerResult = llGetObjectPermMask(42); //test("llSetObjectPermMask"); llSetObjectPermMask(42,42); test("llGetInventoryPermMask"); integerResult = llGetInventoryPermMask("foo", 42); //test("llSetInventoryPermMask"); llSetInventoryPermMask("foo", 42, 42); test("llOwnerSay"); llOwnerSay("foo"); test("llGetInventoryCreator"); keyResult = llGetInventoryCreator("foo"); test("llRequestSimulatorData"); keyResult = llRequestSimulatorData("foo", 42); test("llForceMouselook"); llForceMouselook(42); test("llGetObjectMass"); floatResult = llGetObjectMass(NULL_KEY); test("llLoadURL"); llLoadURL(NULL_KEY, "foo", "foo"); test("llModPow"); integerResult = llModPow(42, 42, 42); test("llGetInventoryType"); integerResult = llGetInventoryType("foo"); test("llGetCameraPos"); vectorResult = llGetCameraPos(); test("llGetCameraRot"); rotationResult = llGetCameraRot(); test("llSetPrimURL"); llSetPrimURL("foo"); test("llRefreshPrimURL"); llRefreshPrimURL(); test("llEscapeURL"); stringResult = llEscapeURL("foo"); test("llUnescapeURL"); stringResult = llUnescapeURL("foo"); test("llMapDestination"); llMapDestination("foo", <1.1,2.2,3.3>, <1.1,2.2,3.3>); test("llAddToLandBanList"); llAddToLandBanList(NULL_KEY, 0.5); test("llRemoveFromLandPassList"); llRemoveFromLandPassList(NULL_KEY); test("llRemoveFromLandBanList"); llRemoveFromLandBanList(NULL_KEY); test("llResetLandBanList"); llResetLandBanList(); test("llResetLandPassList"); llResetLandPassList(); test("llClearCameraParams"); llClearCameraParams(); test("llGetUnixTime"); integerResult = llGetUnixTime(); test("llGetParcelFlags"); integerResult = llGetParcelFlags(<1.1,2.2,3.3>); test("llGetRegionFlags"); integerResult = llGetRegionFlags(); test("llGetObjectPrimCount"); integerResult = llGetObjectPrimCount(NULL_KEY); test("llGetParcelPrimOwners"); listResult = llGetParcelPrimOwners(<1.1,2.2,3.3>); test("llGetParcelPrimCount"); integerResult = llGetParcelPrimCount(<1.1,2.2,3.3>, 42, 42); test("llGetParcelMaxPrims"); integerResult = llGetParcelMaxPrims(<1.1,2.2,3.3>, 42); test("llSetLinkTexture"); llSetLinkTexture(42, "foo", 42); test("llStringTrim"); stringResult = llStringTrim("foo", 42); test("llRegionSay"); llRegionSay(42, "foo"); test("llListSort"); listResult = llListSort([3], 42, 42); test("llList2List"); listResult = llList2List([3], 42, 42); test("llDeleteSubList"); listResult = llDeleteSubList([3], 42, 42); test("llGetListEntryType"); integerResult = llGetListEntryType([3], 42); test("llList2CSV"); stringResult = llList2CSV([3]); test("llListRandomize"); listResult = llListRandomize([3], 42); test("llList2ListStrided"); listResult = llList2ListStrided([3], 42, 42, 42); test("llListInsertList"); listResult = llListInsertList([3], [3], 42); test("llListFindList"); integerResult = llListFindList([3], [3]); test("llParseString2List"); listResult = llParseString2List("foo", [3], [3]); test("llParticleSystem"); llParticleSystem([3]); test("llGiveInventoryList"); llGiveInventoryList(NULL_KEY, "foo", [3]); test("llDumpList2String"); stringResult = llDumpList2String([3], "foo"); test("llDialog"); llDialog(NULL_KEY, "foo", [3], 42); test("llSetPrimitiveParams"); llSetPrimitiveParams([3]); test("llGetPrimitiveParams"); listResult = llGetPrimitiveParams([3]); test("llParseStringKeepNulls"); listResult = llParseStringKeepNulls("foo", [3], [3]); test("llListReplaceList"); listResult = llListReplaceList([3], [3], 42, 42); test("llParcelMediaCommandList"); llParcelMediaCommandList([3]); test("llParcelMediaQuery"); listResult = llParcelMediaQuery([3]); test("llSetPayPrice"); llSetPayPrice(42, [3]); test("llSetCameraParams"); llSetCameraParams([3]); test("llListStatistics"); floatResult = llListStatistics(42, [3]); test("llGetParcelDetails"); listResult = llGetParcelDetails(<1.1,2.2,3.3>, [3]); test("llSetLinkPrimitiveParams"); llSetLinkPrimitiveParams(42, [3]); //test("llGetObjectDetails"); listResult = llGetObjectDetails(NULL_KEY, [3]); } default { touch_start(integer total_number) { llResetTime(); tests(); llSay(0, "Ran " + (string) gTests + " tests in " + (string) llGetTime() + " seconds"); gTests = 0; } }