Open Bug 1815618 Opened 2 years ago Updated 10 months ago

Run every modified/added test when using 'mach try auto'

Categories

(Developer Infrastructure :: Try, defect)

defect

Tracking

(Not tracked)

People

(Reporter: botond, Unassigned)

References

(Blocks 1 open bug)

Details

In https://treeherder.mozilla.org/jobs?repo=try&revision=dd62532e9c72a117bbee3f1d129c7d5988c96618, the patch adds gtests, but mach try auto did not schedule a gtest run on any platform.

(Note: I added some manually with "Add new jobs", that's why they're there now.)

The severity field is not set for this bug.
:marco, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(mcastelluccio)

We should do what I suggested in bug 1728260 comment 9. We can't always rely on test-verify (e.g. for gtest we can't).

Severity: -- → S3
Flags: needinfo?(mcastelluccio)
Summary: Patch added a gtest but 'mach try auto' did not run it → Run every modified/added test when using 'mach try auto'
Blocks: 1830760
No longer blocks: 1830760

Is fixing this on the team's roadmap?

The utility of mach try auto remains very low to me due to this issue (recent example: this Try push), forcing me to choose between spending more of my time on selecting a targeted set of tests in mach try fuzzy, or spending more CI resources on a blanket Try push that runs a large subset of all tests.

Flags: needinfo?(mcastelluccio)

We could implement this either in the optimizer in m-c or in bugbug itself.
Is there an easy way to link a test file or a test support file to the manifest that contains it?

Flags: needinfo?(mcastelluccio)
Flags: needinfo?(jmaher)
Flags: needinfo?(ahal)

I am not aware of test support files, but I am aware of test files. in the test-info-all task on central, there are some artifacts, you want the test-info-all-tests.json artifact.

here is a json object in this type of format:

{
  "tests": {
    "bz product::component": [
        {"manifest": [path [, path2]], "test": "path"},

    ]
  }
}

this might be too cumbersome to work around, so if there are other ideas using an artifact but different format I am all ears.

Flags: needinfo?(jmaher)

Yeah, we already parse all the manifests as part of task generation. All that info should be in the test objects that get returned:
https://searchfox.org/mozilla-central/source/taskcluster/gecko_taskgraph/util/chunking.py#235

I think we should add this feature there.

Flags: needinfo?(ahal)

Do we have easy access to the patches that are part of the push in the loader?

If we implement this feature in the loader, then we would have to "duplicate" the functionality in the optimizer too, right?

(In reply to Marco Castelluccio [:marco] from comment #8)

If we implement this feature in the loader, then we would have to "duplicate" the functionality in the optimizer too, right?

Ahal, is this correct? If so, does it make more sense to support this on the bugbug side?

Flags: needinfo?(ahal)

I think that's partially correct.

We could probably implement in a way such that when we compute the manifests to keep in the task generation phase, we can pass a list of manifests that should be kept no matter what down to the optimization phase. Similar to how the DO_NOT_OPTIMIZE parameter works for tasks.

I think it makes sense to implement this on the Gecko side, conceptually at least. But I don't know how difficult this would be in bugbug, so not sure where it would be easier.

One benefit of doing it locally in the Decision task is that we could use this optimization even if we aren't using bugbug, though this probably isn't a huge benefit in practice.

Flags: needinfo?(ahal)
You need to log in before you can comment on or make changes to this bug.