exercism / fsharp

Exercism exercises in F#.
https://exercism.org/tracks/fsharp
MIT License
107 stars 99 forks source link

Too much test data generated for a successful test run #1095

Open shananholm opened 2 years ago

shananholm commented 2 years ago

Running dotnet test on the completed files for the pizza-pricing exercism fails because of the volume of tests generated in the last test case Order price for gigantic order with:

Test Run Aborted with error System.Exception: One or more errors occurred.
 ---> System.Exception: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host..
 ---> System.Exception: An existing connection was forcibly closed by the remote host.
   at System.Net.Sockets.NetworkStream.Read(Span`1 buffer)
   --- End of inner exception stack trace ---
   at System.Net.Sockets.NetworkStream.Read(Span`1 buffer)
   at System.Net.Sockets.NetworkStream.ReadByte()
   at System.IO.BinaryReader.Read7BitEncodedInt()
   at System.IO.BinaryReader.ReadString()
   at Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.LengthPrefixCommunicationChannel.NotifyDataAvailable()
   at Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.TcpClientExtensions.MessageLoopAsync(TcpClient client, ICommunicationChannel channel, Action`1 errorHandler, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---.

Reducing the number of items generated will run and pass, for example: from:

let ``Order price for gigantic order``() = orderPrice (List.replicate 100_000 Margherita) |> should equal 700_000

to:

let ``Order price for gigantic order``() = orderPrice (List.replicate 10_000 Margherita) |> should equal 70_000
ErikSchierboom commented 2 years ago

I can't seem to reprodcue this issue. While 100_000 list items is not nothing, it is also anywhere near being a lot of memory. The error message also looks quite odd to me, as it seems to imply a networking issue.

64J0 commented 1 year ago

Checking the logs here and indeed, it seems to be something related to the network @shananholm.

I tested with this submission and it worked fine:

image