dotnet / dotnet/fsharp

Flaky TransparentCompiler fuzzing test

Open
#18,050 3 comments 0 reactions 0 assignees View on GitHub
Area-Testing
Dominant language
F#
Stars
4.3k
Forks
876
Avg merge
4d 22h
Merged PRs (30d)
144

Description

Recently reenabled fuzzing test still needs some work:
https://github.com/dotnet/fsharp/blob/373fb23c5a6a7a00ddee9d142150cb18b2bd51d5/tests/FSharp.Compiler.ComponentTests/FSharpChecker/TransparentCompiler.fs#L603-L607

It is [sporadically failing](https://dev.azure.com/dnceng-public/public/_build/results?buildId=875507&view=logs&j=09cc464c-89cd-5758-006d-ba9e3958cfa9&t=098678ff-b2f3-5c88-44d3-4c7be2f47e75&l=6302) in CI.

It takes a lot of iterations locally to trip it, but it is possible to repro.

A good way to get a repro locally, (and to stress test a selected test case in general) is to define a xUnit attrbute like this

```fsharp
type RepeatAttribute(count, [] args: obj array) =
inherit DataAttribute()
override _.GetData _ = Seq.init count (fun i -> [| yield! args; i |])
```

and apply it like this:

```fsharp
[]
[]
[]
[]
let Fuzzing signatureFiles _ =
```

Running the theory in parallel it can be repro'd in around 100 iterations.
Out of curiosity I tried to run this test with `useTransparentCompiler = false` and it also fails from time to time. It is possible that it reveals some concurrency issue unrelated to TransparentCompiler.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.