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

--preset=merge for moz-webgpu-cts process-reports #9

Closed
ErichDonGubler opened this issue Oct 16, 2023 · 3 comments
Closed

--preset=merge for moz-webgpu-cts process-reports #9

ErichDonGubler opened this issue Oct 16, 2023 · 3 comments
Assignees
Labels
A-webgpu-cts enhancement New feature or request

Comments

@ErichDonGubler
Copy link
Collaborator

ErichDonGubler commented Oct 16, 2023

Depends on #13 for concept and implementation.


I, a developer of Firefox's implementation of WebGPU, often encounter distinct phases of expectation adjustment when I make changes to Firefox. Usually, I first discover all expected permanent outcomes for a revision of Firefox's code (perhaps with the help of moz-webgpu-cts process-reports … from #13!). Afterwards, there is often another phase in which I have not yet discovered all intermittent test cases. This activity tends to require a high number of test executions to adjust new expectations adequately.

Fortunately, to an even extent greater than reset-* heuristics, this task is automatable. The inputs and flow will be similar. I want moz-webgpu-cts process-reports to adjusts expectations to be the union of outcomes in current metadata and in processed reports.

Q: Why can we not use ./mach wpt-update --update-intermittent …?

./mach wpt-update --update-intermittent … appears to not implement behavior documented at the Updating Expectations section of wptrunner (emphasis mine):

When this option is used, the expected key stores expected intermittent statuses in addition to the primary expected status. If there is more than one status, it appears as a list. The default behaviour of this option is to retain any existing intermittent statuses in the list unless --remove-intermittent is specified.

Once upon a time, WebGPU CTS had expectations like this for tests that had a large number of small subtests:

[example_test]
  [subtest1]
    expected: TIMEOUT

  [subtest2]
    expected: NOTRUN

  [subtest3]
    expected: NOTRUN

  # ...

  [subtestN]
    expected: NOTRUN

Because the ./mach wpt-update … script only emits observed TIMEOUT and NOTRUN outcomes to test metadata, I wanted to manually make an update, so that these tests would always have TIMEOUT and NOTRUN together as accepted intermittent subtest outcomes, namely:

[example_test]
  [subtest1]
    expected: [TIMEOUT, NOTRUN]

  [subtest2]
    expected: [NOTRUN, TIMEOUT]

  [subtest3]
    expected: [NOTRUN, TIMEOUT]

  # ...

  [subtestN]
    expected: [NOTRUN, TIMEOUT]

I expected ./mach wpt-update … to maintain these intermittent statuses unless --remove-intermittent was specified. However, running ./mach wpt-update --update-intermittent … instead removed the TIMEOUT and NOTRUN statuses that I had added, despite not specifying --remove-intermittent. That is, wpt-update acted as I would expect if --remove-intermittent were also specified.

@ErichDonGubler
Copy link
Collaborator Author

CC @jmaher, in case it's interesting for discussing later.

@ErichDonGubler ErichDonGubler changed the title Implement moz-webgpu-cts extend-expected-from <wptreport.json glob> Implement moz-webgpu-cts adjust --extend … Oct 19, 2023
@ErichDonGubler ErichDonGubler changed the title Implement moz-webgpu-cts adjust --extend … Implement moz-webgpu-cts adjust-exps --extend … Oct 19, 2023
@ErichDonGubler ErichDonGubler changed the title Implement moz-webgpu-cts adjust-exps --extend … Implement moz-webgpu-cts adjust-exps --stage=extend-intermittents … Oct 23, 2023
@ErichDonGubler ErichDonGubler changed the title Implement moz-webgpu-cts adjust-exps --stage=extend-intermittents … --on-conflict=merge heuristic for moz-webgpu-cts adjust-exps Oct 24, 2023
@ErichDonGubler ErichDonGubler changed the title --on-conflict=merge heuristic for moz-webgpu-cts adjust-exps --on-conflict=merge-both heuristic for moz-webgpu-cts adjust-exps Oct 24, 2023
@ErichDonGubler ErichDonGubler changed the title --on-conflict=merge-both heuristic for moz-webgpu-cts adjust-exps --on-conflict=accept-both heuristic for moz-webgpu-cts adjust-exps Oct 24, 2023
@ErichDonGubler ErichDonGubler changed the title --on-conflict=accept-both heuristic for moz-webgpu-cts adjust-exps --on-conflict=accept-both heuristic for moz-webgpu-cts process-reports Oct 24, 2023
@ErichDonGubler ErichDonGubler changed the title --on-conflict=accept-both heuristic for moz-webgpu-cts process-reports --on-conflict=accept-both for moz-webgpu-cts process-reports Oct 24, 2023
@ErichDonGubler
Copy link
Collaborator Author

This is being implemented as --preset=merge in #14. Will change vocabulary in OP to match.

@ErichDonGubler ErichDonGubler changed the title --on-conflict=accept-both for moz-webgpu-cts process-reports --preset=merge for moz-webgpu-cts process-reports Nov 2, 2023
@ErichDonGubler
Copy link
Collaborator Author

Closed with #14.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-webgpu-cts enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant