Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: dotnet/xharness
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 0668c80ec2
Choose a base ref
...
head repository: dotnet/xharness
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 2cee83bf48
Choose a head ref
  • 9 commits
  • 126 files changed
  • 8 contributors

Commits on Apr 13, 2026

  1. [main] Update dependencies from dotnet/arcade (#1581)

    * Update dependencies from https://github.com/dotnet/arcade build 20260404.1
    On relative base path root
    Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk From Version 11.0.0-beta.26177.6 -> To Version 11.0.0-beta.26204.1
    
    * Update dependencies from https://github.com/dotnet/arcade build 20260411.1
    On relative base path root
    Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk From Version 11.0.0-beta.26177.6 -> To Version 11.0.0-beta.26211.1
    
    ---------
    
    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
    dotnet-maestro[bot] and dotnet-maestro[bot] authored Apr 13, 2026
    Configuration menu
    Copy the full SHA
    791fb58 View commit details
    Browse the repository at this point in the history

Commits on Apr 14, 2026

  1. Improve nullability. (#1586)

    * Improve nullability.
    
    Sprinkle nullability information in a number of places where it makes sense.
    
    * Fix nullability mismatches
    
    Co-authored-by: Copilot <[email protected]>
    
    * Handle nullable log writes
    
    Co-authored-by: Copilot <[email protected]>
    
    * Fix Windows null log test
    
    Co-authored-by: Copilot <[email protected]>
    
    * Handle null Apple env vars gracefully
    
    Skip null-valued env vars when building Apple mlaunch arguments so the new nullable contract doesn't fail at runtime. Add regression tests covering the run and test simulator paths.
    
    Co-authored-by: Copilot <[email protected]>
    
    ---------
    
    Co-authored-by: Copilot <[email protected]>
    Co-authored-by: vitek-karas <[email protected]>
    3 people authored Apr 14, 2026
    Configuration menu
    Copy the full SHA
    84f48de View commit details
    Browse the repository at this point in the history

Commits on Apr 17, 2026

  1. Add --enable-coverage flag for code coverage collection from device t…

    …ests (#1565)
    
    * Add --enable-coverage flag for collecting code coverage from device tests
    
    Adds optional `--enable-coverage` CLI flag across all platforms (Android,
    Apple/iOS/tvOS, WASM) that enables code coverage collection during test
    execution. When enabled, XHarness coordinates coverage output paths and
    transports the resulting Cobertura XML files from the device back to the
    host output directory alongside test results.
    
    Changes:
    - New `--enable-coverage` switch argument shared across all platforms
    - `NUNIT_ENABLE_COVERAGE` / `NUNIT_COVERAGE_OUTPUT_PATH` env var support
      in ApplicationOptions for test runner configuration
    - CoverageManager that generates method-level Cobertura XML via reflection
      when no external coverage tool (coverlet) produces a file
    - Android: coverage flag passed as instrumentation arg, InstrumentationRunner
      pulls coverage-results-path from device via adb
    - Apple: coverage env vars injected into app environment for simulator/device
    - WASM: coverage data decoded from STARTCOVERAGEXML stdout markers
    - ThreadlessXunitTestRunner made public (enables Android apps to use the
      runner that works with assembly store, required for device testing)
    - Unit tests for CoverageManager
    
    Closes #1135
    
    * Update CoverageManager docs: clarify coverlet is not needed
    
    CoverageManager generates coverage via reflection — no external tool
    required. Standard tools like coverlet.msbuild cannot instrument
    assemblies for device builds (APK/app bundles) since they only hook
    into the dotnet test pipeline.
    
    * Re-trigger CI (previous run hit Helix device lab infrastructure failure)
    
    * Remove reflection-based coverage generation and integrate with structured log
    
    - Strip CoverageManager down to only finding external coverage files
      (remove GenerateReflectionCoverage and assembly metadata scanning)
    - Android: add coverage file to DiagnosticsFile manifest after adb pull
    - Apple: add CopyCoverageResultsAsync to pull coverage from app container
      on iOS 18+, include coverage file in EmitAppleRunSummary manifest
    - Update tests for simplified CoverageManager API
    
    * Address review feedback from vitek-karas
    
    - Collect coverage results regardless of test outcome (remove FailedTests == 0 guard)
    - Only copy coverage file on Apple when --enable-coverage was passed
    - Derive coverage source path from NUNIT_COVERAGE_OUTPUT_PATH env var instead of hard-coding
    - Revert ThreadlessXunitTestRunner back to internal (unrelated to coverage)
    
    * Use copied Apple coverage file in diagnostics
    
    Co-authored-by: Copilot <[email protected]>
    
    * Fix Apple coverage env var nullability
    
    Co-authored-by: Copilot <[email protected]>
    
    * Fix Apple coverage file copying
    
    Ensure MacCatalyst collects the copied coverage report and deduplicate the Apple app-container file copy logic, including retry behavior for coverage files.
    
    Co-authored-by: Copilot <[email protected]>
    
    ---------
    
    Co-authored-by: vitek-karas <[email protected]>
    Co-authored-by: Copilot <[email protected]>
    3 people authored Apr 17, 2026
    Configuration menu
    Copy the full SHA
    8667077 View commit details
    Browse the repository at this point in the history

Commits on Apr 24, 2026

  1. Update Arcade and adopt V4 publishing (#1585)

    Co-authored-by: Copilot <[email protected]>
    mmitche and Copilot authored Apr 24, 2026
    Configuration menu
    Copy the full SHA
    888ef3e View commit details
    Browse the repository at this point in the history

Commits on Apr 29, 2026

  1. [main] Update dependencies from dotnet/arcade (#1589)

    * Update dependencies from https://github.com/dotnet/arcade build 20260425.1
    On relative base path root
    Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk From Version 11.0.0-beta.26211.1 -> To Version 11.0.0-beta.26225.1
    
    * Workaround arcade XUnit.targets adding both xunit.assert and xunit.v3.assert.aot
    
    Arcade's XUnit.targets injects xunit.v3.assert.aot for .NETCoreApp projects but
    still pins xunit.core to 2.x which transitively brings xunit.assert, producing
    CS0433 ambiguous-reference errors. Remove the implicit v3 assert from the test
    projects until arcade is updated.
    
    Co-authored-by: Copilot <[email protected]>
    
    ---------
    
    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
    Co-authored-by: Miloš Kotlar <[email protected]>
    Co-authored-by: Copilot <[email protected]>
    4 people authored Apr 29, 2026
    Configuration menu
    Copy the full SHA
    9d5a7e9 View commit details
    Browse the repository at this point in the history

Commits on May 1, 2026

  1. Bump Microsoft.Tools.Mlaunch from 1.1.92 to 1.1.113 (#1591)

    This fixes the iOS 18.5 simulator launch failure (dotnet/maui#35261)
    where mlaunch's watchdog-disable flow shuts down the simulator but
    doesn't update the in-memory device state, causing it to skip
    re-booting and fail with simctl exit code 149 (Shutdown state).
    
    The fix (State = "Shutdown" after ShutdownAsync) was added in
    mlaunch commit 4ba65e5 and is included in version 1.1.110+.
    
    Co-authored-by: Copilot <[email protected]>
    rolfbjarne and Copilot authored May 1, 2026
    Configuration menu
    Copy the full SHA
    92962e5 View commit details
    Browse the repository at this point in the history

Commits on May 10, 2026

  1. Update dependencies from https://github.com/dotnet/arcade build 20260…

    …501.2 (#1592)
    
    On relative base path root
    Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk From Version 11.0.0-beta.26225.1 -> To Version 11.0.0-beta.26251.2
    
    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
    dotnet-maestro[bot] and dotnet-maestro[bot] authored May 10, 2026
    Configuration menu
    Copy the full SHA
    445cc8d View commit details
    Browse the repository at this point in the history

Commits on May 14, 2026

  1. Update dependencies from https://github.com/dotnet/arcade build 20260…

    …507.3 (#1593)
    
    On relative base path root
    Microsoft.DotNet.Arcade.Sdk , Microsoft.DotNet.Helix.Sdk From Version 11.0.0-beta.26251.2 -> To Version 11.0.0-beta.26257.3
    
    Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
    dotnet-maestro[bot] and dotnet-maestro[bot] authored May 14, 2026
    Configuration menu
    Copy the full SHA
    51ca379 View commit details
    Browse the repository at this point in the history

Commits on May 29, 2026

  1. Add structured environment details to XHarness JSON results (#1599)

    * Add structured environment info to JSON results
    
    Move host and target environment reporting into XHarness's structured JSON outputs for Android and Apple, including diagnostics and run-summary payloads.
    
    Co-authored-by: Copilot <[email protected]>
    
    * Address environment metadata review feedback
    
    Fix Android cpuinfo frequency fallback, avoid swallowing Apple cancellation, parse nested devicectl hardware details, and remove duplicate ADB version logging.
    
    Co-authored-by: Copilot <[email protected]>
    
    * Fix environment metadata edge cases
    
    Avoid process output deadlock, parse Android cpuinfo MHz with invariant culture, include environment data for android install diagnostics, and preserve devicectl cancellation/nested hardware metadata handling.
    
    Co-authored-by: Copilot <[email protected]>
    
    ---------
    
    Co-authored-by: Copilot <[email protected]>
    vitek-karas and Copilot authored May 29, 2026
    Configuration menu
    Copy the full SHA
    2cee83b View commit details
    Browse the repository at this point in the history
Loading