From 0b73cef252f773e1e2a91a06ae301aa7d221cf83 Mon Sep 17 00:00:00 2001 From: humbletim Date: Thu, 23 Feb 2017 19:10:44 -0500 Subject: [PATCH] Add stampede test. --- .../tests/entityStampedeTest-entity-fail.js | 3 ++ .../tests/entityStampedeTest-entity.js | 12 +++++++ scripts/developer/tests/entityStampedeTest.js | 32 +++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 scripts/developer/tests/entityStampedeTest-entity-fail.js create mode 100644 scripts/developer/tests/entityStampedeTest-entity.js create mode 100644 scripts/developer/tests/entityStampedeTest.js diff --git a/scripts/developer/tests/entityStampedeTest-entity-fail.js b/scripts/developer/tests/entityStampedeTest-entity-fail.js new file mode 100644 index 0000000000..53c0469055 --- /dev/null +++ b/scripts/developer/tests/entityStampedeTest-entity-fail.js @@ -0,0 +1,3 @@ +(function() { + throw new Error(Script.resolvePath('')); +}) diff --git a/scripts/developer/tests/entityStampedeTest-entity.js b/scripts/developer/tests/entityStampedeTest-entity.js new file mode 100644 index 0000000000..1f1d6bcf76 --- /dev/null +++ b/scripts/developer/tests/entityStampedeTest-entity.js @@ -0,0 +1,12 @@ +(function() { + return { + preload: function(uuid) { + var shape = Entities.getEntityProperties(uuid).shape === 'Sphere' ? 'Cube' : 'Sphere'; + + Entities.editEntity(uuid, { + shape: shape, + color: { red: 0xff, green: 0xff, blue: 0xff }, + }); + } + }; +}) diff --git a/scripts/developer/tests/entityStampedeTest.js b/scripts/developer/tests/entityStampedeTest.js new file mode 100644 index 0000000000..c5040a9796 --- /dev/null +++ b/scripts/developer/tests/entityStampedeTest.js @@ -0,0 +1,32 @@ +var NUM_ENTITIES = 100; +var RADIUS = 2; +var DIV = NUM_ENTITIES / Math.PI / 2; +var PASS_SCRIPT_URL = Script.resolvePath('').replace('.js', '-entity.js'); +var FAIL_SCRIPT_URL = Script.resolvePath('').replace('.js', '-entity-fail.js'); + +var origin = Vec3.sum(MyAvatar.position, Vec3.multiply(5, Quat.getFront(MyAvatar.orientation))); +origin.y += HMD.eyeHeight; + +var uuids = []; + +Script.scriptEnding.connect(function() { + uuids.forEach(function(id) { + Entities.deleteEntity(id); + }); +}); + +for (var i=0; i < NUM_ENTITIES; i++) { + var failGroup = i % 2; + uuids.push(Entities.addEntity({ + type: 'Shape', + shape: failGroup ? 'Sphere' : 'Icosahedron', + name: 'entityStampedeTest-' + i, + lifetime: 120, + position: Vec3.sum(origin, Vec3.multiplyQbyV( + MyAvatar.orientation, { x: Math.sin(i / DIV) * RADIUS, y: Math.cos(i / DIV) * RADIUS, z: 0 } + )), + script: (failGroup ? FAIL_SCRIPT_URL : PASS_SCRIPT_URL) + Settings.getValue('cache_buster'), + dimensions: Vec3.HALF, + color: { red: 0, green: 0, blue: 0 }, + }, !Entities.serversExist())); +}