Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable running host tests using helix #77800

Open
11 of 13 tasks
Tracked by #97931
elinor-fung opened this issue Nov 2, 2022 · 2 comments
Open
11 of 13 tasks
Tracked by #97931

Enable running host tests using helix #77800

elinor-fung opened this issue Nov 2, 2022 · 2 comments
Milestone

Comments

@elinor-fung
Copy link
Member

elinor-fung commented Nov 2, 2022

Host tests (src/installer/tests) currently run directly on the build machine.

  • CI failure investigation is different from that for libraries/runtime tests (which use Helix)
    • Results/artifacts aren't associated in the same way - accessing in AzureDevOps or querying in Kusto is inconsistent with rest of repo
  • Tests are run on a limited set of platforms
    • No arm64 coverage - only x64 and x86

Test projects

Work

@ghost ghost added the untriaged New issue has not been triaged by the area owner label Nov 2, 2022
@ghost
Copy link

ghost commented Nov 2, 2022

Tagging subscribers to this area: @vitek-karas, @agocke, @VSadov
See info in area-owners.md if you want to be subscribed.

Issue Details

Host tests (src/installer/tests) currently run directly on the build machine.

  • CI failure investigation is different from that for libraries/runtime tests (which use Helix)
    • Results/artifacts aren't associated in the same way - accessing in AzureDevOps or querying in Kusto is inconsistent with rest of repo
  • Tests are run on a limited set of platforms
    • No arm64 coverage - only x64 and x86

Test projects

Work

  • Audit/reduce amount of host tests/assets that would need to be added to the workload
    • Many projects in src/installer/tests/Assets/TestProjects only have minor differences - multiple projects can become one with different behaviour based on command line arguments
      • Likely candidates: PortableApp*, RuntimeProperties, AppWith*, LightupApp
    • Various tests run both build and publish outputs - shouldn't really be interesting to target both for host testing.
    • Many StartupHook tests (and test projects) are actually targeting StartupHookProvider, not the hosting side of it. They can be moved to coreclr and just call into StartupHookProvider without launching a bunch of processes to actually run an app.
  • Remove building of test projects as part of test run
    • Tests don't actually care about the build itself - they just want something built and redirected to use the live build.
      • Currently relies on GenerateTestRestoreSourcesNuGetConfig to point at live built packages
    • Build all test projects before the test run and copy them as test assets.
  • Remove assumption in tests that they are run from within the runtime repo
    • RepoDirectoriesProvider builds paths based on repo structure / output directory
    • Construct layout for whatever assets are necessary to carry with the test (separate from the runtime repo)
      • RefreshProjectTestAssets currently sets up a sharedFrameworkPublish folder and test projects that will be run
      • Maybe add a host.pretest subset, similar to libs.pretest
  • Ensure tests can run successfully on other platforms
    • Likely don't run properly on arm64 right now
  • Add support for creating/sending Helix payload/job for host tests
    • Equivalent of src/tests/Common/helixpublishwitharcade.proj and src/libraries/sendtohelix.proj, but for host tests
  • Update pipeline to send tests to Helix
    • eng/pipelines/installer/jobs/build-job.yml
Author: elinor-fung
Assignees: -
Labels:

area-Host

Milestone: -

@elinor-fung
Copy link
Member Author

I don't anticipate us actually doing all this in 8.0, but putting this in that milestone for now.

@elinor-fung elinor-fung added this to the 8.0.0 milestone Nov 2, 2022
@elinor-fung elinor-fung removed the untriaged New issue has not been triaged by the area owner label Nov 2, 2022
@elinor-fung elinor-fung mentioned this issue Nov 2, 2022
10 tasks
@agocke agocke modified the milestones: 8.0.0, Future Jul 24, 2023
@agocke agocke modified the milestones: Future, 8.0.0, 9.0.0 Aug 30, 2023
@agocke agocke mentioned this issue Feb 3, 2024
5 tasks
elinor-fung added a commit that referenced this issue Mar 21, 2024
As part of #77800, we have gotten rid of building/publishing projects using the SDK during hosting test runs.

This change removes test utilities like `TestProjectFixture` and `TestProject` which revolved around that building / publishing functionality. It also removes the `BuildReporter`/`AnsIConsole` logging from the test utils. It was a lot of infrastructure to set font colour and weight for output that would not normally be seen (redirected to a log file usually - only seen on non-Windows when running directly via dotnet test, not arcade infrastructure).
@agocke agocke modified the milestones: 9.0.0, 10.0.0 Jul 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: No status
Development

No branches or pull requests

2 participants