xref: /aosp_15_r20/build/blueprint/glob_test.go (revision 1fa6dee971e1612fa5cc0aa5ca2d35a22e2c34a3)
1*1fa6dee9SAndroid Build Coastguard Worker// Copyright 2018 Google Inc. All rights reserved.
2*1fa6dee9SAndroid Build Coastguard Worker//
3*1fa6dee9SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*1fa6dee9SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*1fa6dee9SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*1fa6dee9SAndroid Build Coastguard Worker//
7*1fa6dee9SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*1fa6dee9SAndroid Build Coastguard Worker//
9*1fa6dee9SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*1fa6dee9SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*1fa6dee9SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*1fa6dee9SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*1fa6dee9SAndroid Build Coastguard Worker// limitations under the License.
14*1fa6dee9SAndroid Build Coastguard Worker
15*1fa6dee9SAndroid Build Coastguard Workerpackage blueprint
16*1fa6dee9SAndroid Build Coastguard Worker
17*1fa6dee9SAndroid Build Coastguard Workerimport "testing"
18*1fa6dee9SAndroid Build Coastguard Worker
19*1fa6dee9SAndroid Build Coastguard Workerfunc TestGlobCache(t *testing.T) {
20*1fa6dee9SAndroid Build Coastguard Worker	ctx := NewContext()
21*1fa6dee9SAndroid Build Coastguard Worker	ctx.MockFileSystem(map[string][]byte{
22*1fa6dee9SAndroid Build Coastguard Worker		"Android.bp": nil,
23*1fa6dee9SAndroid Build Coastguard Worker		"a/a":        nil,
24*1fa6dee9SAndroid Build Coastguard Worker		"a/b":        nil,
25*1fa6dee9SAndroid Build Coastguard Worker	})
26*1fa6dee9SAndroid Build Coastguard Worker
27*1fa6dee9SAndroid Build Coastguard Worker	// Test a simple glob with no excludes
28*1fa6dee9SAndroid Build Coastguard Worker	matches, err := ctx.glob("a/*", nil)
29*1fa6dee9SAndroid Build Coastguard Worker	if err != nil {
30*1fa6dee9SAndroid Build Coastguard Worker		t.Error("unexpected error", err)
31*1fa6dee9SAndroid Build Coastguard Worker	}
32*1fa6dee9SAndroid Build Coastguard Worker	if len(matches) != 2 || matches[0] != "a/a" || matches[1] != "a/b" {
33*1fa6dee9SAndroid Build Coastguard Worker		t.Error(`expected ["a/a", "a/b"], got`, matches)
34*1fa6dee9SAndroid Build Coastguard Worker	}
35*1fa6dee9SAndroid Build Coastguard Worker
36*1fa6dee9SAndroid Build Coastguard Worker	// Test the same glob with an empty excludes array to make sure
37*1fa6dee9SAndroid Build Coastguard Worker	// excludes=nil does not conflict with excludes=[]string{} in the
38*1fa6dee9SAndroid Build Coastguard Worker	// cache.
39*1fa6dee9SAndroid Build Coastguard Worker	matches, err = ctx.glob("a/*", []string{})
40*1fa6dee9SAndroid Build Coastguard Worker	if err != nil {
41*1fa6dee9SAndroid Build Coastguard Worker		t.Error("unexpected error", err)
42*1fa6dee9SAndroid Build Coastguard Worker	}
43*1fa6dee9SAndroid Build Coastguard Worker	if len(matches) != 2 || matches[0] != "a/a" || matches[1] != "a/b" {
44*1fa6dee9SAndroid Build Coastguard Worker		t.Error(`expected ["a/a", "a/b"], got`, matches)
45*1fa6dee9SAndroid Build Coastguard Worker	}
46*1fa6dee9SAndroid Build Coastguard Worker
47*1fa6dee9SAndroid Build Coastguard Worker	// Test the same glob with a different excludes array
48*1fa6dee9SAndroid Build Coastguard Worker	matches, err = ctx.glob("a/*", []string{"a/b"})
49*1fa6dee9SAndroid Build Coastguard Worker	if err != nil {
50*1fa6dee9SAndroid Build Coastguard Worker		t.Error("unexpected error", err)
51*1fa6dee9SAndroid Build Coastguard Worker	}
52*1fa6dee9SAndroid Build Coastguard Worker	if len(matches) != 1 || matches[0] != "a/a" {
53*1fa6dee9SAndroid Build Coastguard Worker		t.Error(`expected ["a/a"], got`, matches)
54*1fa6dee9SAndroid Build Coastguard Worker	}
55*1fa6dee9SAndroid Build Coastguard Worker}
56