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

Commit 5e7c4756 authored by Zhenhuang Wang's avatar Zhenhuang Wang Committed by Gerrit Code Review
Browse files

Merge "Add a new `test_options.tags` attribute to customize test execution"

parents 9f4f8a3c 409d2771
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -942,12 +942,19 @@ type CommonTestOptions struct {
	// If the test is a hostside (no device required) unittest that shall be run
	// during presubmit check.
	Unit_test *bool

	// Tags provide additional metadata to customize test execution by downstream
	// test runners. The tags have no special meaning to Soong.
	Tags []string
}

// SetAndroidMkEntries sets AndroidMkEntries according to the value of base
// `test_options`.
func (t *CommonTestOptions) SetAndroidMkEntries(entries *AndroidMkEntries) {
	entries.SetBoolIfTrue("LOCAL_IS_UNIT_TEST", Bool(t.Unit_test))
	if len(t.Tags) > 0 {
		entries.AddStrings("LOCAL_TEST_OPTIONS_TAGS", t.Tags...)
	}
}

// The key to use in TaggedDistFiles when a Dist structure does not specify a
+26 −1
Original line number Diff line number Diff line
@@ -912,7 +912,7 @@ func TestSortedUniqueNamedPaths(t *testing.T) {
	}
}

func TestProcessCommonTestOptions(t *testing.T) {
func TestSetAndroidMkEntriesWithTestOptions(t *testing.T) {
	tests := []struct {
		name        string
		testOptions CommonTestOptions
@@ -939,6 +939,31 @@ func TestProcessCommonTestOptions(t *testing.T) {
			},
			expected: map[string][]string{},
		},
		{
			name: "empty tag",
			testOptions: CommonTestOptions{
				Tags: []string{},
			},
			expected: map[string][]string{},
		},
		{
			name: "single tag",
			testOptions: CommonTestOptions{
				Tags: []string{"tag1"},
			},
			expected: map[string][]string{
				"LOCAL_TEST_OPTIONS_TAGS": []string{"tag1"},
			},
		},
		{
			name: "multiple tag",
			testOptions: CommonTestOptions{
				Tags: []string{"tag1", "tag2", "tag3"},
			},
			expected: map[string][]string{
				"LOCAL_TEST_OPTIONS_TAGS": []string{"tag1", "tag2", "tag3"},
			},
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {