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