Merge "Add support for converting OptionalPath to Paths" am: 17ccf26748
am: 1d579e9694
am: 472325bf8d
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1706747 Change-Id: I60d5cdc9e77ed68e9c365986057608649eee770b
This commit is contained in:
commit
011d8e670c
|
@ -287,6 +287,17 @@ func (p OptionalPath) Path() Path {
|
|||
return p.path
|
||||
}
|
||||
|
||||
// AsPaths converts the OptionalPath into Paths.
|
||||
//
|
||||
// It returns nil if this is not valid, or a single length slice containing the Path embedded in
|
||||
// this OptionalPath.
|
||||
func (p OptionalPath) AsPaths() Paths {
|
||||
if !p.valid {
|
||||
return nil
|
||||
}
|
||||
return Paths{p.path}
|
||||
}
|
||||
|
||||
// RelativeToTop returns an OptionalPath with the path that was embedded having been replaced by the
|
||||
// result of calling Path.RelativeToTop on it.
|
||||
func (p OptionalPath) RelativeToTop() OptionalPath {
|
||||
|
|
|
@ -141,6 +141,9 @@ func TestOptionalPath(t *testing.T) {
|
|||
|
||||
path = OptionalPathForPath(nil)
|
||||
checkInvalidOptionalPath(t, path)
|
||||
|
||||
path = OptionalPathForPath(PathForTesting("path"))
|
||||
checkValidOptionalPath(t, path, "path")
|
||||
}
|
||||
|
||||
func checkInvalidOptionalPath(t *testing.T, path OptionalPath) {
|
||||
|
@ -151,6 +154,10 @@ func checkInvalidOptionalPath(t *testing.T, path OptionalPath) {
|
|||
if path.String() != "" {
|
||||
t.Errorf("Uninitialized OptionalPath String() should return \"\", not %q", path.String())
|
||||
}
|
||||
paths := path.AsPaths()
|
||||
if len(paths) != 0 {
|
||||
t.Errorf("Uninitialized OptionalPath AsPaths() should return empty Paths, not %q", paths)
|
||||
}
|
||||
defer func() {
|
||||
if r := recover(); r == nil {
|
||||
t.Errorf("Expected a panic when calling Path() on an uninitialized OptionalPath")
|
||||
|
@ -159,6 +166,21 @@ func checkInvalidOptionalPath(t *testing.T, path OptionalPath) {
|
|||
path.Path()
|
||||
}
|
||||
|
||||
func checkValidOptionalPath(t *testing.T, path OptionalPath, expectedString string) {
|
||||
t.Helper()
|
||||
if !path.Valid() {
|
||||
t.Errorf("Initialized OptionalPath should not be invalid")
|
||||
}
|
||||
if path.String() != expectedString {
|
||||
t.Errorf("Initialized OptionalPath String() should return %q, not %q", expectedString, path.String())
|
||||
}
|
||||
paths := path.AsPaths()
|
||||
if len(paths) != 1 {
|
||||
t.Errorf("Initialized OptionalPath AsPaths() should return Paths with length 1, not %q", paths)
|
||||
}
|
||||
path.Path()
|
||||
}
|
||||
|
||||
func check(t *testing.T, testType, testString string,
|
||||
got interface{}, err []error,
|
||||
expected interface{}, expectedErr []error) {
|
||||
|
|
Loading…
Reference in New Issue