Skip to content

Gradual migration of fsharp and fsharpqa test suites #7075

Closed
@cartermp

Description

@cartermp

This is a continuation of #697 (and #872 which attempted to resolve it).

A large amount of compiler and FSharp.Core tests are run with older, slower infrastructure. They're difficult for OSS contributors to work with, it's also unclear if everything can be reported correctly in Azure CI, andt hese tests are not usable within an IDE that understands standard unit test frameowrks such as NUnit or xUnit.

As #872 showed, the path to migration is not simple. However, this doesn't mean that small chunks cannot be moved incrementally. There are two NUnit-based test projects for the compiler and FSharp.Core that are relatively easy to add and modify tests for:

Compiler:
https://github.com/dotnet/fsharp/tree/master/tests/FSharp.Compiler.UnitTests and https://github.com/dotnet/fsharp/tree/master/tests/fsharp/Compiler/Language

Includes useful utilities such as:

  • Compiling a single arbitrary string of F# code and verifying that it passes or fails
  • Comparing the emitted IL when compiling an arbitrary string of F# code with user-provided IL (for optimization testing)

FSharp.Core:
https://github.com/dotnet/fsharp/tree/master/tests/FSharp.Core.UnitTests

Includes a useful utility to verify the FSharp.Core API public API surface area.

In theory, it should be fairly straightforward to pick a small thing that's being tested under /fsharpqa and migrate that and only that to a new set of tests in one of the above NUnit test areas.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions