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

Commit fba0a210 authored by Zi Wang's avatar Zi Wang
Browse files

Sort expectTargets and actualTargets by name in bp2build test

This is to match the behavior of BUILD file generation.

Test: m and all existing bp2build conversion tests

Bug: 271122205
Change-Id: I6320a65aaad06114817eaed722cc0a0939c57bc1
parent dd2e32d8
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ specific-but-shared functionality among tests in package

import (
	"fmt"
	"sort"
	"strings"
	"testing"

@@ -263,6 +264,12 @@ func (b BazelTestResult) CompareBazelTargets(t *testing.T, description string, e
		t.Errorf("%s: Expected %d bazel target (%s), got %d (%s)",
			description, expectedCount, expectedContents, actualCount, actualTargets)
	} else {
		sort.SliceStable(actualTargets, func(i, j int) bool {
			return actualTargets[i].name < actualTargets[j].name
		})
		sort.SliceStable(expectedContents, func(i, j int) bool {
			return getTargetName(expectedContents[i]) < getTargetName(expectedContents[j])
		})
		for i, actualTarget := range actualTargets {
			if w, g := expectedContents[i], actualTarget.content; w != g {
				t.Errorf(
@@ -637,3 +644,13 @@ func MakeNeverlinkDuplicateTarget(moduleType string, name string) string {
		"exports":   `[":` + name + `"]`,
	})
}

func getTargetName(targetContent string) string {
	data := strings.Split(targetContent, "name = \"")
	if len(data) < 2 {
		return ""
	} else {
		endIndex := strings.Index(data[1], "\"")
		return data[1][:endIndex]
	}
}