Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e81e77a2 authored by mrziwang's avatar mrziwang
Browse files

Add another way for TestingModule to get its output files

In OutputFiles method, TestingModule is able to get its own output
files by reading its module base property. If the TestingModule
never updates its outputFiles property, it will fall back to use the OutputFileProducer interface.

Only empty string tag case is added in this CL since all the testing modules are getting the output files using empty string tag.

Test: CI
Bug: 339477385
Change-Id: I3009ae45d8d909653e3b6b222bced9ccabbaede7
parent 74674107
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -1014,10 +1014,18 @@ func (m TestingModule) VariablesForTestsRelativeToTop() map[string]string {
	return normalizeStringMapRelativeToTop(m.config, m.module.VariablesForTests())
}

// OutputFiles calls OutputFileProducer.OutputFiles on the encapsulated module, exits the test
// immediately if there is an error and otherwise returns the result of calling Paths.RelativeToTop
// OutputFiles first checks if module base outputFiles property has any output
// files can be used to return.
// If not, it calls OutputFileProducer.OutputFiles on the
// encapsulated module, exits the test immediately if there is an error and
// otherwise returns the result of calling Paths.RelativeToTop
// on the returned Paths.
func (m TestingModule) OutputFiles(t *testing.T, tag string) Paths {
	// TODO: add non-empty-string tag case and remove OutputFileProducer part
	if tag == "" && m.module.base().outputFiles.DefaultOutputFiles != nil {
		return m.module.base().outputFiles.DefaultOutputFiles.RelativeToTop()
	}

	producer, ok := m.module.(OutputFileProducer)
	if !ok {
		t.Fatalf("%q must implement OutputFileProducer\n", m.module.Name())