phetsims / expression-exchange

"Expression Exchange" is an educational simulation in HTML5, by PhET Interactive Simulations.
GNU General Public License v3.0
2 stars 2 forks source link

Automated Testing Errors #9

Closed phet-steele closed 8 years ago

phet-steele commented 8 years ago

fuzztesting both requirejs and build, on phettest:

Uncaught Error: duplicates are not allowed
Error: duplicates are not allowed
    at ObservableArray.inherit.push (http://phettest.colorado.edu/axon/js/ObservableArray.js?bust=1457466397628:228:15)
    at Expression.inherit.addCoinTerm (http://phettest.colorado.edu/expression-exchange/js/common/model/Expression.js?bust=1457466397628:208:22)
    at http://phettest.colorado.edu/expression-exchange/js/explore/model/EEExploreModel.js?bust=1457466397628:85:37
    at Array.onValueObserver (http://phettest.colorado.edu/axon/js/Property.js?bust=1457466397628:301:13)
    at Emitter.inherit.emit2 (http://phettest.colorado.edu/axon/js/Emitter.js?bust=1457466397628:139:49)
    at Property.inherit._notifyObservers (http://phettest.colorado.edu/axon/js/Property.js?bust=1457466397628:129:29)
    at Property.inherit._setAndNotifyObservers (http://phettest.colorado.edu/axon/js/Property.js?bust=1457466397628:117:14)
    at Property.inherit.set (http://phettest.colorado.edu/axon/js/Property.js?bust=1457466397628:85:16)
    at CoinTerm.Object.defineProperty.set [as userControlled] (http://phettest.colorado.edu/axon/js/PropertySet.js?bust=1457466397628:141:43)
    at CoinTermNode.addInputListener.SimpleDragHandler.end (http://phettest.colorado.edu/expression-exchange/js/common/view/CoinTermNode.js?bust=1457466397628:201:33)
jbphet commented 8 years ago

I was able to duplicate this manually by attempting to grab coin terms that were in motion as they were in the process of joining an expression. This causes them to become "user controlled" again and then, when release, the code was attempting to add them again to the same expression. I added code to make the coinTerms non-pickable when animating. The fix has improved the behavior, but it is currently still hitting assertions during fuzz test, so further work is required on this.

phet-steele commented 8 years ago

fuzztesting requirejs:

Uncaught Error: Assertion failed: undefined
Error: Assertion failed: undefined
    at window.assertions.assertFunction (http://phettest.colorado.edu/assert/js/assert.js:23:13)
    at ExpressionOverlayNode.extend.removeInputListener (http://phettest.colorado.edu/scenery/js/nodes/Node.js?bust=1458237407850:1666:17)
    at http://phettest.colorado.edu/expression-exchange/js/common/view/ExpressionOverlayNode.js?bust=1458237407850:75:14
    at Property.inherit.link (http://phettest.colorado.edu/axon/js/Property.js?bust=1458237407850:171:11)
    at new ExpressionOverlayNode (http://phettest.colorado.edu/expression-exchange/js/common/view/ExpressionOverlayNode.js?bust=1458237407850:73:44)
    at Array. (http://phettest.colorado.edu/expression-exchange/js/explore/view/EEExploreScreenView.js?bust=1458237407850:255:35)
    at ObservableArray.inherit._fireItemAdded (http://phettest.colorado.edu/axon/js/ObservableArray.js?bust=1458237407850:149:18)
    at ObservableArray.inherit.push (http://phettest.colorado.edu/axon/js/ObservableArray.js?bust=1458237407850:232:12)
    at Array. (http://phettest.colorado.edu/expression-exchange/js/explore/model/EEExploreModel.js?bust=1458237407850:119:34)
    at Emitter.inherit.emit2 (http://phettest.colorado.edu/axon/js/Emitter.js?bust=1458237407850:139:49)
    at Property.inherit._notifyObservers (http://phettest.colorado.edu/axon/js/Property.js?bust=1458237407850:129:29)
    at Property.inherit._setAndNotifyObservers (http://phettest.colorado.edu/axon/js/Property.js?bust=1458237407850:117:14)
    at Property.inherit.set (http://phettest.colorado.edu/axon/js/Property.js?bust=1458237407850:85:16)
    at CoinTerm.Object.defineProperty.set [as userControlled] (http://phettest.colorado.edu/axon/js/PropertySet.js?bust=1458237407850:141:43)
phet-steele commented 8 years ago

fuzztesting build:

Uncaught TypeError: Cannot set property 'shape' of null
TypeError: Cannot set property 'shape' of null
    at Array.i (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:579:17592)
    at e.r._fireItemAdded (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:581:20030)
    at e.r.push (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:581:20796)
    at e.r.addCoinTerm (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:581:24908)
    at http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:581:30017
    at Array.forEach (native)
    at Array.n (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:581:29995)
    at e.i.emit (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:568:27612)
    at Object. (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:581:26295)
    at update (http://phettest.colorado.edu/expression-exchange/build/expression-exchange_en.html?ea&postMessageOnLoad&postMessageOnError&fuzzMouse=100:545:2171)
phet-steele commented 8 years ago

First two errors occurred again on 3/22. See #11.

phet-steele commented 8 years ago

First two errors (duplicates and undefined) happened again 3/29.

jbphet commented 8 years ago

I tracked down the root cause of the assertions shown above, fixed them, and just ran with fuzzMouse=100 for about 15 minutes with no issues. Closing.