elm-explorations / elm-explorations/test
“Maximum call stack size exceeded” on comparison of large data structures
- Dominant language
- Elm
- Stars
- 244
- Forks
- 40
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 2
Description
I stumbled across this crash when I migrated one of my Elm projects to 0.19. This is the test I wrote with Elm 0.18, where it worked without problems: https://gitlab.com/MazeChaZer/knobster/blob/8d39fa8de9f5744cdaff45755b23050f4d9d06e0/tests/GridTest.elm
elm: 0.19.0
elm-explorations/test: 1.1.0
node-test-runner: 0.19.0-beta8
SSCCE:
```elm
module Example exposing (suite)
import Expect
import Test exposing (..)
suite : Test
suite =
test "foo bar" <|
\() ->
Expect.equal
[ [ { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
]
, [ { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
]
, [ { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
]
, [ { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
]
, [ { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
]
, [ { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
, { foo = "foo", bar = "bar" }
]
]
[]
```
Output:
```
$ elm-test
Success!
Success! Compiled 1 module.
elm-test 0.19.0-beta8
---------------------
Running 1 test. To reproduce these results, run: elm-test --fuzz 100 --seed 195384286911629
[project]/elm-stuff/generated-code/elm-explorations/test/elmTestOutput.js:3665
var change = function () {
^
RangeError: Maximum call stack size exceeded
at [project]/elm-stuff/generated-code/elm-explorations/test/elmTestOutput.js:3665:26
at Function.f ([project]/elm-stuff/generated-code/elm-explorations/test/elmTestOutput.js:3707:5)
at A5 ([project]/elm-stuff/generated-code/elm-explorations/test/elmTestOutput.js:113:28)
at [project]/elm-stuff/generated-code/elm-explorations/test/elmTestOutput.js:3711:13
at Function.f ([project]/elm-stuff/generated-code/elm-explorations/test/elmTestOutput.js:3648:11)
at A2 ([project]/elm-stuff/generated-code/elm-explorations/test/elmTestOutput.js:104:28)
at Function.f ([project]/elm-stuff/generated-code/elm-explorations/test/elmTestOutput.js:3708:11)
at A5 ([project]/elm-stuff/generated-code/elm-explorations/test/elmTestOutput.js:113:28)
at [project]/elm-stuff/generated-code/elm-explorations/test/elmTestOutput.js:3711:13
at Function.f ([project]/elm-stuff/generated-code/elm-explorations/test/elmTestOutput.js:3648:11)
There was an unexpected runtime exception while running tests
```
A normal `==` comparison is no problem with this data structure: https://ellie-app.com/3fQ2FSpkxYca1
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.