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

Commit 025ae97b authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Add support of test data to python_host_test"

parents 6c76f18a 31949121
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -639,3 +639,21 @@ func shouldSkipAndroidMkProcessing(module *ModuleBase) bool {
		// Make does not understand LinuxBionic
		module.Os() == LinuxBionic
}

func AndroidMkDataPaths(data []DataPath) []string {
	var testFiles []string
	for _, d := range data {
		rel := d.SrcPath.Rel()
		path := d.SrcPath.String()
		if !strings.HasSuffix(path, rel) {
			panic(fmt.Errorf("path %q does not end with %q", path, rel))
		}
		path = strings.TrimSuffix(path, rel)
		testFileString := path + ":" + rel
		if len(d.RelativeInstallPath) > 0 {
			testFileString += ":" + d.RelativeInstallPath
		}
		testFiles = append(testFiles, testFileString)
	}
	return testFiles
}
+1 −1
Original line number Diff line number Diff line
@@ -135,7 +135,7 @@ func (a *apexBundle) androidMkForFiles(w io.Writer, apexBundleName, apexName, mo
				}
			}
			if len(newDataPaths) > 0 {
				fmt.Fprintln(w, "LOCAL_TEST_DATA :=", strings.Join(cc.AndroidMkDataPaths(newDataPaths), " "))
				fmt.Fprintln(w, "LOCAL_TEST_DATA :=", strings.Join(android.AndroidMkDataPaths(newDataPaths), " "))
			}

			if fi.module != nil && len(fi.module.NoticeFiles()) > 0 {
+1 −19
Original line number Diff line number Diff line
@@ -156,24 +156,6 @@ func (c *Module) AndroidMkEntries() []android.AndroidMkEntries {
	return []android.AndroidMkEntries{entries}
}

func AndroidMkDataPaths(data []android.DataPath) []string {
	var testFiles []string
	for _, d := range data {
		rel := d.SrcPath.Rel()
		path := d.SrcPath.String()
		if !strings.HasSuffix(path, rel) {
			panic(fmt.Errorf("path %q does not end with %q", path, rel))
		}
		path = strings.TrimSuffix(path, rel)
		testFileString := path + ":" + rel
		if len(d.RelativeInstallPath) > 0 {
			testFileString += ":" + d.RelativeInstallPath
		}
		testFiles = append(testFiles, testFileString)
	}
	return testFiles
}

func androidMkWriteExtraTestConfigs(extraTestConfigs android.Paths, entries *android.AndroidMkEntries) {
	if len(extraTestConfigs) > 0 {
		entries.ExtraEntries = append(entries.ExtraEntries, func(entries *android.AndroidMkEntries) {
@@ -183,7 +165,7 @@ func androidMkWriteExtraTestConfigs(extraTestConfigs android.Paths, entries *and
}

func androidMkWriteTestData(data []android.DataPath, ctx AndroidMkContext, entries *android.AndroidMkEntries) {
	testFiles := AndroidMkDataPaths(data)
	testFiles := android.AndroidMkDataPaths(data)
	if len(testFiles) > 0 {
		entries.ExtraEntries = append(entries.ExtraEntries, func(entries *android.AndroidMkEntries) {
			entries.AddStrings("LOCAL_TEST_DATA", testFiles...)
+7 −1
Original line number Diff line number Diff line
@@ -15,11 +15,12 @@
package python

import (
	"android/soong/android"
	"fmt"
	"io"
	"path/filepath"
	"strings"

	"android/soong/android"
)

type subAndroidMkProvider interface {
@@ -74,6 +75,11 @@ func (p *testDecorator) AndroidMk(base *Module, ret *android.AndroidMkData) {
		if !BoolDefault(p.binaryProperties.Auto_gen_config, true) {
			fmt.Fprintln(w, "LOCAL_DISABLE_AUTO_GENERATE_TEST_CONFIG := true")
		}

		if len(p.data) > 0 {
			fmt.Fprintln(w, "LOCAL_TEST_DATA :=",
				strings.Join(android.AndroidMkDataPaths(p.data), " "))
		}
	})
	base.subAndroidMk(ret, p.binaryDecorator.pythonInstaller)
}
+12 −0
Original line number Diff line number Diff line
@@ -34,6 +34,10 @@ type TestProperties struct {
	// the name of the test configuration template (for example "AndroidTestTemplate.xml") that
	// should be installed with the module.
	Test_config_template *string `android:"path,arch_variant"`

	// list of files or filegroup modules that provide data that should be installed alongside
	// the test
	Data []string `android:"path,arch_variant"`
}

type testDecorator struct {
@@ -42,6 +46,8 @@ type testDecorator struct {
	testProperties TestProperties

	testConfig android.Path

	data []android.DataPath
}

func (test *testDecorator) bootstrapperProps() []interface{} {
@@ -59,6 +65,12 @@ func (test *testDecorator) install(ctx android.ModuleContext, file android.Path)
	test.binaryDecorator.pythonInstaller.relative = ctx.ModuleName()

	test.binaryDecorator.pythonInstaller.install(ctx, file)

	dataSrcPaths := android.PathsForModuleSrc(ctx, test.testProperties.Data)

	for _, dataSrcPath := range dataSrcPaths {
		test.data = append(test.data, android.DataPath{SrcPath: dataSrcPath})
	}
}

func NewTest(hod android.HostOrDeviceSupported) *Module {