Code Monkey home page Code Monkey logo

Comments (35)

NicolasUmiastowski avatar NicolasUmiastowski commented on September 28, 2024 1

@mgold , @rtfeldman :
This one is the smallest that fails

module HtmlRunnerExample exposing (..)

{-| HOW TO RUN THIS EXAMPLE ?

************************* WARNING !!!!!!!  $ elm-reactor should be run from the tests directory !!!!*********************

Visit http://localhost:8000 and bring up this file.
-}


import Expect
import Test exposing (..)
import Test.Runner.Html
--import Fuzz exposing (..)

import Preprojectform exposing (..)
import Dict exposing (..)

import Fuzz exposing (list, int, tuple,intRange)

main : Program Never
main =
    [ all
    ]
        |> concat
        |> Test.Runner.Html.run

all : Test
all =
    describe "A Test Suite"
        [ test "My current number of points" <|
                \() ->
                    (List.sum <| Dict.values <| (fst Preprojectform.init).myScoreList)
                        |> Expect.greaterThan 0

        , fuzz (intRange 1 50) "Fuzz test for Integer" <|
            \myInt ->
                (myInt * 200) // 5
                      |> Expect.greaterThan 2000

        ]

and this one is the smallest that works :

module HtmlRunnerExample exposing (..)

{-| HOW TO RUN THIS EXAMPLE ?

************************* WARNING !!!!!!!  $ elm-reactor should be run from the tests directory !!!!*********************

Visit http://localhost:8000 and bring up this file.
-}


import Expect
import Test exposing (..)
import Test.Runner.Html
--import Fuzz exposing (..)

import Preprojectform exposing (..)
import Dict exposing (..)

import Fuzz exposing (list, int, tuple,intRange)

main : Program Never
main =
    [ all
    ]
        |> concat
        |> Test.Runner.Html.run

all : Test
all =
    describe "A Test Suite"
        [ test "Value of maxPointsPossible" <|
                \() ->
                    (fst Preprojectform.init).listOfQuestions
                        |> List.length
                        |> (*) 3
                        |> Expect.equal 6


        , fuzz (intRange 1 50) "Fuzz test for Integer" <|
            \myInt ->
                (myInt * 200) // 5
                      |> Expect.greaterThan 2000

        ]```

from node-test-runner.

rtfeldman avatar rtfeldman commented on September 28, 2024 1

I just published a new version of node-test-runner (get it by upgrading your elm-package.json to say "rtfeldman/node-test-runner": "2.0.1 <= v < 3.0.0" and by also running npm install -g elm-test) - and it now prints out a seed at the start of each test run.

@NicolasUmiastowski @bdukes would you mind upgrading to the latest version, re-running, and then pasting in the --seed argument to reproduce? It should look something like this:

screen shot 2016-08-17 at 9 53 13 pm

If you can paste me that "To reproduce these results" line, I can try to reproduce locally.

Thanks!

from node-test-runner.

rtfeldman avatar rtfeldman commented on September 28, 2024 1

Just wanted to say, extra huge props to @mgold for fixing this and to @bdukes @benansell @NicolasUmiastowski for your hard work reproducing it.

Great work all around!

from node-test-runner.

bdukes avatar bdukes commented on September 28, 2024

On my windows box, included a fuzz test causes both the node and html runners to hang. I'll see if I can track down where that's happening.

from node-test-runner.

bdukes avatar bdukes commented on September 28, 2024

A quick debug session shows what looks like an infinite loop in a function named accountForBias. The passed in seed is an object that looks like { _0: 0, _1: 0, ctor: "Seed" }, as is seedN, and x (the result from calling _mgold$elm_random_pcg$Random_Pcg$peel(seed)) is always 0. if (_elm_lang$core$Native_Utils.cmp(x, threshhold) < 0) is always true, so it gets stuck in that loop.

Here is that JS code, with some context:

var _mgold$elm_random_pcg$Random_Pcg$int = F2(
    function (a, b) {
        return _mgold$elm_random_pcg$Random_Pcg$Generator(
            function (seed0) {
                var _p64 = (_elm_lang$core$Native_Utils.cmp(a, b) < 0) ? {ctor: '_Tuple2', _0: a, _1: b} : {ctor: '_Tuple2', _0: b, _1: a};
                var lo = _p64._0;
                var hi = _p64._1;
                var range = (hi - lo) + 1;
                if (_elm_lang$core$Native_Utils.eq(
                    A2(_elm_lang$core$Bitwise$and, range, range - 1),
                    0)) {
                    return {
                        ctor: '_Tuple2',
                        _0: A2(
                            _elm_lang$core$Bitwise$shiftRightLogical,
                            A2(
                                _elm_lang$core$Bitwise$and,
                                _mgold$elm_random_pcg$Random_Pcg$peel(seed0),
                                range - 1),
                            0),
                        _1: _mgold$elm_random_pcg$Random_Pcg$next(seed0)
                    };
                } else {
                    var threshhold = A2(
                        _elm_lang$core$Bitwise$shiftRightLogical,
                        A2(
                            _elm_lang$core$Basics$rem,
                            A2(_elm_lang$core$Bitwise$shiftRightLogical, 0 - range, 0),
                            range),
                        0);
                    var accountForBias = function (seed) {
                        accountForBias:
                        while (true) {
                            var seedN = _mgold$elm_random_pcg$Random_Pcg$next(seed);
                            var x = _mgold$elm_random_pcg$Random_Pcg$peel(seed);
                            if (_elm_lang$core$Native_Utils.cmp(x, threshhold) < 0) {
                                var _v26 = seedN;
                                seed = _v26;
                                continue accountForBias;
                            } else {
                                return {
                                    ctor: '_Tuple2',
                                    _0: A2(_elm_lang$core$Basics$rem, x, range) + lo,
                                    _1: seedN
                                };
                            }
                        }
                    };
                    return accountForBias(seed0);
                }
            });
    });

Note that, even though the first line here ends with int, that this occurs just the same when using Fuzz.string.

from node-test-runner.

rtfeldman avatar rtfeldman commented on September 28, 2024

Wow, crazy! @mgold thoughts?

from node-test-runner.

NicolasUmiastowski avatar NicolasUmiastowski commented on September 28, 2024

Hi, I have a unit test suite that runs nice, but when I add a fuzz test, and want to run the page on localhost, on windows, it fails to lad, something seems to loop indefinitely, preventign the page form loading. It also provokes the console to stop there, I can do nothing after lauching the tests.
Here is the code, the problematic is the last one (a fuzz test)

module HtmlRunnerExample exposing (..)

{-| HOW TO RUN THIS EXAMPLE

$ elm-reactor

Visit http://localhost:8000 and bring up this file.
-}


import Expect
import Test exposing (..)
import Test.Runner.Html
--import Fuzz exposing (..)

import Preprojectform exposing (..)
import Dict exposing (..)

import Fuzz exposing (list, int, tuple,intRange)

main : Program Never
main =
    [ all
    ]
        |> concat
        |> Test.Runner.Html.run

all : Test
all =
    describe "A Test Suite"
        [ test "Addition" <|
            \() ->
                Expect.equal (3 + 7) 10
        {-, test "This test should fail" <|
            \() ->
                Expect.fail "failed as expected!"-}

        , test "Length of listOfQuestions" <|
                \() ->
                    (fst Preprojectform.init).listOfQuestions
                        |> List.length
                        |> Expect.equal 2

        , test "Value of maxPointsPossible" <|
                \() ->
                    (fst Preprojectform.init).listOfQuestions
                        |> List.length
                        |> (*) 3
                        |> Expect.equal 6

        {-, test "My current number of points" <|
                \() ->
                    (List.sum <| Dict.values <| (fst Preprojectform.init).myScoreList)
                        |> Expect.greaterThan 0   -}

        {-, test "My current number of points" <|
                \() ->
                    let 
                        myScore =  
                            (fst Preprojectform.init).myScoreList
                        myCurrentNumberofPoints =  
                            List.sum <| Dict.values <| myScore
                    in
                         if isEmpty myScore then
                                myCurrentNumberofPoints |> Expect.equal 0   
                         else 
                                myCurrentNumberofPoints |> Expect.greaterThan 0-}

        , test "My scoreList" <|
                \() ->
                      (fst Preprojectform.init)
                         |> Preprojectform.update (Preprojectform.QuestionAnswered  1 3)
                         |> fst
                         |> Preprojectform.update (Preprojectform.QuestionAnswered  2 3)
                         |> fst
                         |> .myScoreList
                         |> Expect.equal  (Dict.fromList [(1,3), (2,3)])


        , test "My current number of points" <|
                \() ->
                      (fst Preprojectform.init)
                         |> Preprojectform.update (Preprojectform.QuestionAnswered  1 3)
                         |> fst
                         |> Preprojectform.update (Preprojectform.QuestionAnswered  2 3)
                         |> fst
                         |> Preprojectform.update (Preprojectform.Send 100)
                         |> fst
                         |> .scoreMessage
                         |> Expect.equal  "Your score is 100% Bravo"



       , fuzz (intRange 1 50) "Fuzz test for Integer" <|
            \myInt ->
                (myInt * 200) // 5
                      |> Expect.greaterThan 2000 

        ]

from node-test-runner.

mgold avatar mgold commented on September 28, 2024

@NicolasUmiastowski The test works (fails as expected) on a Mac, which is the only machine I have access to. Very strange! BTW next time please get rid of as much extraneous code as necessary, which here is non-fuzz tests. Unless the issue only happens when those tests are present?

@bdukes Can you provide minimal Elm code that reproduces the issue you are seeing? Seed 0 0 should not be possible!

from node-test-runner.

NicolasUmiastowski avatar NicolasUmiastowski commented on September 28, 2024

@mgold , @rtfeldman :
OK I re-tried and I can confirm you that :
actually it fails ONLY when I have the whole code above (unit tests + the fuzz test - even if the fuzz test is the last or the first or at another place)
When I keep only the fuzz test in the code, it works (both in the console and also in localhost when I add it to HtmlRunnerExample.elm) :

module Tests exposing (..)

import Test exposing (..)
import Expect
--import Dict exposing (..)
import Fuzz exposing (list, int, tuple,intRange)

import Preprojectform exposing (..)
import Dict exposing (..)


all : Test
all =
    describe "A Test Suite"
        [ fuzz (intRange -1 -50) "Fuzz test for Integer" <|
            \myInt ->
                (myInt * 200) // 5
                      |> Expect.greaterThan 2000 
        ]```

from node-test-runner.

NicolasUmiastowski avatar NicolasUmiastowski commented on September 28, 2024

@mgold , @rtfeldman :
Pehaps it has something to do with whitespaces, empty lines or something like this, but I AM NOT SURE.
The example below (where I deleteted some empty lines between the tests) works sometimes but not always (1 time out of 5 tries.....)

module HtmlRunnerExample exposing (..)



{-| HOW TO RUN THIS EXAMPLE ?



************************* WARNING !!!!!!!  $ elm-reactor should be run from the tests directory !!!!*********************



Visit http://localhost:8000 and bring up this file.

-}





import Expect

import Test exposing (..)

import Test.Runner.Html

--import Fuzz exposing (..)



import Preprojectform exposing (..)

import Dict exposing (..)



import Fuzz exposing (list, int, tuple,intRange)



main : Program Never

main =

    [ all

    ]

        |> concat

        |> Test.Runner.Html.run



all : Test

all =

    describe "A Test Suite"

        [ test "One addition" <|

            \() ->

                Expect.equal (3 + 7) 10

         , test "My current number of points" <|

                \() ->

                      (fst Preprojectform.init)

                         |> Preprojectform.update (Preprojectform.QuestionAnswered  1 3)

                         |> fst

                         |> Preprojectform.update (Preprojectform.QuestionAnswered  2 3)

                         |> fst

                         |> Preprojectform.update (Preprojectform.Send 100)

                         |> fst

                         |> .scoreMessage

                         |> Expect.equal  "Your score is 100% Bravo"

         , fuzz (intRange 1 50) "Fuzz test for Integer" <|

            \myInt ->

                (myInt * 200) // 5

                      |> Expect.greaterThan 2000



        ]

from node-test-runner.

bdukes avatar bdukes commented on September 28, 2024

It seems that it's less common an issue when there's only one fuzz test. I'm not able to reproduce the issue with just one fuzz test all by itself, but adding another test (fuzz or regular) before the fuzz test seems to cause it to happen (adding a test after the fuzz test did not seem to trigger the hang). It hangs regardless of whether either test passes or fails.

This causes a hang about 4 in 5 times:

port module Main exposing (..)

import Test.Runner.Node exposing (run)
import Json.Encode exposing (Value)
import Expect
import Test exposing (..)
import Fuzz exposing (list, int, tuple, intRange)

all : Test
all =
    describe "A Test Suite"
        [ fuzz (list int) "List length" <|
            \numbers ->
                List.length (List.reverse numbers)
                    |> Expect.equal (List.length numbers)
        , fuzz (intRange 1 50) "Fuzz test for Integer" <|
            \myInt ->
                (myInt * 200) // 5
                      |> Expect.greaterThan 20
        ]

main : Program Never
main =
    run emit all


port emit : ( String, Value ) -> Cmd msg

This causes a hang about 1 in 10 times:

port module Main exposing (..)

import Test.Runner.Node exposing (run)
import Json.Encode exposing (Value)
import Expect
import Test exposing (..)
import Fuzz exposing (list, int, tuple, intRange)

all : Test
all =
    describe "A Test Suite"
        [ test "List length" <|
            \() ->
                List.length (List.reverse [1, 2, 3])
                    |> Expect.equal 3
        , fuzz (intRange 1 50) "Fuzz test for Integer" <|
            \myInt ->
                (myInt * 200) // 5
                      |> Expect.greaterThan 20
        ]

main : Program Never
main =
    run emit all


port emit : ( String, Value ) -> Cmd msg

from node-test-runner.

mgold avatar mgold commented on September 28, 2024

Okay, so after trying a variation of @NicolasUmiastowski's "smallest one that fails" (variation because I don't have the Preprojectform source), I was able to see some hanging behavior on Mac/Chrome. I noticed that Chrome reported "Waiting on fonts.googleapis.com", which on further investigation appears to be GET http://fonts.googleapis.com/css?family=Source+Sans+Pro, which comes from an @import in a <style> in <head>. So if this is indeed the cause of the hangs you've been seeing, it has nothing to do with elm-test. (The import should be removed from the reactor because the body text is done properly: font-family: monospace which picks up system Courier.)

If you run elm make HtmlRunnerExample.elm the @import will not be present in index.html. Try loading that file repeatedly and see if you can produce a hang.

from node-test-runner.

bdukes avatar bdukes commented on September 28, 2024

@mgold I'm seeing the hanging (on Windows) using the elm-test command line utility, not just in elm-reactor.

from node-test-runner.

NicolasUmiastowski avatar NicolasUmiastowski commented on September 28, 2024

@mgold Same for me. : " I'm seeing the hanging (on Windows) using the elm-test command line utility, not just in elm-reactor."
And just to make it clear, I jut want to help here.
Here is the code of Preprojectform.elm

module Preprojectform exposing (Model,init,view,update,Msg(..))

import Html exposing (..)
import Html.Attributes exposing (..)
import Html.App as Html
import Html.Events exposing (onClick, onCheck)
import Dict exposing (..)
import Debug
-- import Debug




main : Program Never
main =
  Html.program
    { init = init
    , view = view
    , subscriptions = subscriptions
    , update = update
    }


  -- MODEL


type alias Model =
  { myScoreList : Dict Int Int
    ,listOfAnswers : List { myText: String, myValue: Int}
    ,listOfQuestions : List { questionId: Int, questionText : String }
    ,scoreMessage : String
    ,errrorMessage : String
  }


init :  (Model, Cmd Msg)
init =
  (Model Dict.empty [{myText = "Fully agree", myValue = 3}, {myText = "Agree", myValue = 2}, {myText = "Neutral", myValue = 1}, {myText = "Disagree", myValue=0}]  [{questionId = 1, questionText = "Is the business co-located with the developers?"}, {questionId = 2, questionText = "Is the scope flexible?"}] "" "", Cmd.none)

--MESSAGES
type Msg = 
    QuestionAnswered Int Int
    | Send Int

--VIEW
view
    : Model
    -> Html Msg

view model =
  let
    displayListOfQuestions = List.concatMap  (\question ->  text question.questionText :: List.map (createAnswerButtons question.questionId) model.listOfAnswers) model.listOfQuestions

    maxPointsPossible : Int
    maxPointsPossible = List.length model.listOfQuestions * 3

    myCurrentNumberofPoints = List.sum <| Dict.values <| model.myScoreList

    myTotalScore : Int
    myTotalScore = (myCurrentNumberofPoints * 100) // maxPointsPossible


  in
    div []
    <|displayListOfQuestions ++
      [ br [] []
      , button [onClick (Send myTotalScore) ] [text "Send"]
      , br [] []
      , br [] []
      , text model.scoreMessage
      , text model.errrorMessage
      ] 

createAnswerButtons : Int -> { a | myText : String, myValue : Int } -> Html Msg
createAnswerButtons questionId answersPair = 
    div[]
    [ text (answersPair.myText)
    , input [ type' "radio", name ("myChoice" ++ toString questionId), onCheck (\_ -> QuestionAnswered questionId answersPair.myValue)] []
    ]
--UPDATE
update
    : Msg
    -> Model
    -> ( Model, Cmd b)

update msg model = 
    case msg of 
        QuestionAnswered  questionId answersId ->
          let 
            newScoreList = Dict.insert questionId answersId model.myScoreList

          in 
          ({ model |  myScoreList = Debug.log "myscorelist" newScoreList }, Cmd.none )
        Send myTotalScore ->
            let 
            myAnsweredQuestions = List.length <| Dict.values <| model.myScoreList
            newScoreMessage =
                if  (myAnsweredQuestions == 2 && myTotalScore  >= 75) then 
                    "Your score is " ++ toString myTotalScore ++ "% " ++ "Bravo"
                else 
                    if (myAnsweredQuestions == 2 && myTotalScore  < 75) then
                     "Your score is " ++ toString myTotalScore ++ "% " ++  "Not so bad"
                else ""
            newErrorMessage = 
                if ((List.length <| Dict.values <| model.myScoreList) < 2) then
                    "You must answer all questions!"
                else
                    ""
            in 
            ({ model | scoreMessage = newScoreMessage , errrorMessage = newErrorMessage }, Cmd.none )


--SUBSCRIPTIONS
subscriptions : Model -> Sub Msg
subscriptions model = 
    Sub.none


`

from node-test-runner.

mgold avatar mgold commented on September 28, 2024

Nicholas, sorry for the snarky comment. I'm at the SF meetup now, and apparently someone repo'd it on OS X, so we'll dig in shortly.

Also Evan says he's moved the CSS import to the bottom of the file, on master.

from node-test-runner.

rtfeldman avatar rtfeldman commented on September 28, 2024

Has anyone been able to reproduce this on any other platform than Windows?

from node-test-runner.

NicolasUmiastowski avatar NicolasUmiastowski commented on September 28, 2024

Wow it works now with the fuzz test :)
here is the line :
To reproduce these results, run: elm-test --seed 921421987

coool!

from node-test-runner.

rtfeldman avatar rtfeldman commented on September 28, 2024

@NicolasUmiastowski ok cool! So the next time it hangs, can you paste this again? (The number will be different next time, since it is randomly generated at the start of each run.)

This will help me reproduce it. If I have that seed number and your code, I can re-run the exact tests on my machine, and all the fuzz values will be the same as the ones that you had. 😄

from node-test-runner.

NicolasUmiastowski avatar NicolasUmiastowski commented on September 28, 2024

ok cool. but as it works now, it will hopefully not fail again :)
let's see :)

from node-test-runner.

bdukes avatar bdukes commented on September 28, 2024

I'm still seeing hanging.

Seeds that hang include:

  • 2082731988
  • 1486799622
  • 478853078
  • 1443275616
  • 494046381

Seeds that complete include:

  • 1125685972
  • 1854048834
  • 422094152
  • 951047110
  • 1679977496

Hope it helps!

from node-test-runner.

rtfeldman avatar rtfeldman commented on September 28, 2024

@bdukes ok cool! can you link to the code that reproduces the hanging with these seeds?

from node-test-runner.

bdukes avatar bdukes commented on September 28, 2024

The code is https://gist.github.com/bdukes/37df29534fc83ca56c1292f61f26d3d3

from node-test-runner.

mgold avatar mgold commented on September 28, 2024

Hey @bdukes, I downloaded the zip from the gist, ran npm update -g elm-test, and then in the gist folder ran elm test Main.elm --seed=2082731988 for each of the seeds you list as hanging, and was unable to reproduce the hang. That is, the suite completed (with two failed tests) almost instantly every time. Have you tried running each of the hanging seeds a times each to confirm that they always cause a hang? Have you tried running the non-hanging seeds a few times each to confirm they never hang? (Sorry if this sounds like nagging!)

from node-test-runner.

bdukes avatar bdukes commented on September 28, 2024

@mgold, no problem, I hadn't actually tried re-running any of those seeds to verify whether they consistently caused a hang or not. Now that I have, it does seem consistent. I can run elm-test --seed=1854048834 20 times without a hang, and elm-test --seed 1486799622 has hung five times in a row.

Hope it helps!

from node-test-runner.

rtfeldman avatar rtfeldman commented on September 28, 2024

And this is only hanging on Windows, yeah?

On Mon, Aug 22, 2016, 12:10 PM Brian Dukes [email protected] wrote:

@mgold https://github.com/mgold, no problem, I hadn't actually tried
re-running any of those seeds to verify whether they consistently caused a
hang or not. Now that I have, it does seem consistent. I can run elm-test
--seed=1854048834 20 times without a hang, and elm-test --seed 1486799622
has hung five times in a row.

Hope it helps!


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#53 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABCxwEfyjT3DDzCq-eqGrLiN3mXJHxCaks5qifQggaJpZM4JhVj-
.

from node-test-runner.

bdukes avatar bdukes commented on September 28, 2024

from node-test-runner.

rtfeldman avatar rtfeldman commented on September 28, 2024

Got it. Out of curiosity, can you reproduce this in the html test runner on Chrome, Firefox, and IE (or Edge)?

I ask because the node test runner would be using v8 under the hood just like Chrome, so I wonder if the bug might be specific to v8 on windows.

from node-test-runner.

bdukes avatar bdukes commented on September 28, 2024

from node-test-runner.

benansell avatar benansell commented on September 28, 2024

Thanks to the test case from @bdukes I was able to put together a small repo that runs the test case with the "good seeds" (test fails without hanging) and "hang seeds".

The travis build (linux) runs fine, however the appveyor (windows) build fails every time on the 1486799622 seed regardless which version of nodejs is being used.

I have also added some debug lines to the output to see if it was possible to record it getting stuck - sadly that didn't work. However, it does show that the linux and windows builds are getting different "seed" values in the when running the "good seed" tests (unless I am miss reading the output):

all : Test
all =
    describe "A Test Suite"
        [ test "Addition" <|
            \() ->
                Expect.equal (3 + 7) 10
                    |> Debug.log "--------- Addition test complete ---------"
        , fuzz Fuzz.int "variable addition" <|
            \a ->
                Expect.equal (3 + a + 2) (a + 6)
                    |> Debug.log (toString a)
        , test "This test should fail" <|
            \() ->
                Expect.fail "failed as expected!"
                    |> Debug.log "--------- Failed test complete ---------"
        ]

travis - line 426:

elm-test
--------
Running 3 tests. To reproduce these results, run: elm-test --seed 1125685972
--------- Addition test complete ---------: Pass
42: Fail "" "48\n╷\n│ Expect.equal\n╵\n47"
0: Fail "" "6\n╷\n│ Expect.equal\n╵\n5"
0: Fail "" "6\n╷\n│ Expect.equal\n╵\n5"
10: Fail "" "16\n╷\n│ Expect.equal\n╵\n15"

appveyor - line 164:

elm-test
--------
Running 3 tests. To reproduce these results, run: elm-test --seed 1125685972
--------- Addition test complete ---------: Pass
-1682754193: Fail "" "-1682754187\n╷\n│ Expect.equal\n╵\n-1682754188"
1682754193: Fail "" "1682754199\n╷\n│ Expect.equal\n╵\n1682754198"
0: Fail "" "6\n╷\n│ Expect.equal\n╵\n5"
0: Fail "" "6\n╷\n│ Expect.equal\n╵\n5

from node-test-runner.

mgold avatar mgold commented on September 28, 2024

Hmm, it's pretty clear that there's some kind of windows or windows-version-of-JS-engine bug involving arithmetic or bitwise ops. I'm really not sure what to do about it.

Looking at that output did illustrate another point. Notice there are lots of zeros; this is due to shrinking. It's expected that a test may be rerun many times as values are shrunk but zero always appears twice. Turns out we we calling the test once more than we needed at the very end. Not doing that improved performance about 5-10% when shrinking tuples (which can do a lot of shrink steps, so to get perf out of saving only one is a pleasant surprise). This ought to make it into 2.1.0.

But back on topic, yeah, I have no idea. :(

from node-test-runner.

mgold avatar mgold commented on September 28, 2024

@bdukes @NicolasUmiastowski Please delete tests/elm-stuff and run elm test with a broken seed to redownload. Can you reproduce the issue still? If not, mgold/elm-random-pcg#11 probably fixed it.

from node-test-runner.

bdukes avatar bdukes commented on September 28, 2024

@mgold, yes that appears to have fixed it! Great job!

from node-test-runner.

rtfeldman avatar rtfeldman commented on September 28, 2024

Nice!!!

from node-test-runner.

NicolasUmiastowski avatar NicolasUmiastowski commented on September 28, 2024

@mgold : yes for me too the hanging problem disappeared!
That's great.
Thanks a lot, and have a good beer :)

from node-test-runner.

mgold avatar mgold commented on September 28, 2024

Great! And buy the 🍺 for @ianmackenzie!

@rtfeldman I think you can close the issue. 🎉 😃

from node-test-runner.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.