1*8fb009dcSAndroid Build Coastguard Worker/* Copyright (c) 2020, Google Inc. 2*8fb009dcSAndroid Build Coastguard Worker * 3*8fb009dcSAndroid Build Coastguard Worker * Permission to use, copy, modify, and/or distribute this software for any 4*8fb009dcSAndroid Build Coastguard Worker * purpose with or without fee is hereby granted, provided that the above 5*8fb009dcSAndroid Build Coastguard Worker * copyright notice and this permission notice appear in all copies. 6*8fb009dcSAndroid Build Coastguard Worker * 7*8fb009dcSAndroid Build Coastguard Worker * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 8*8fb009dcSAndroid Build Coastguard Worker * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 9*8fb009dcSAndroid Build Coastguard Worker * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY 10*8fb009dcSAndroid Build Coastguard Worker * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 11*8fb009dcSAndroid Build Coastguard Worker * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION 12*8fb009dcSAndroid Build Coastguard Worker * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 13*8fb009dcSAndroid Build Coastguard Worker * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ 14*8fb009dcSAndroid Build Coastguard Worker 15*8fb009dcSAndroid Build Coastguard Workerpackage testconfig 16*8fb009dcSAndroid Build Coastguard Worker 17*8fb009dcSAndroid Build Coastguard Workerimport ( 18*8fb009dcSAndroid Build Coastguard Worker "encoding/json" 19*8fb009dcSAndroid Build Coastguard Worker "os" 20*8fb009dcSAndroid Build Coastguard Worker) 21*8fb009dcSAndroid Build Coastguard Worker 22*8fb009dcSAndroid Build Coastguard Workertype Test struct { 23*8fb009dcSAndroid Build Coastguard Worker Cmd []string `json:"cmd"` 24*8fb009dcSAndroid Build Coastguard Worker Env []string `json:"env"` 25*8fb009dcSAndroid Build Coastguard Worker SkipSDE bool `json:"skip_sde"` 26*8fb009dcSAndroid Build Coastguard Worker Shard bool `json:"shard"` 27*8fb009dcSAndroid Build Coastguard Worker} 28*8fb009dcSAndroid Build Coastguard Worker 29*8fb009dcSAndroid Build Coastguard Workerfunc ParseTestConfig(filename string) ([]Test, error) { 30*8fb009dcSAndroid Build Coastguard Worker in, err := os.Open(filename) 31*8fb009dcSAndroid Build Coastguard Worker if err != nil { 32*8fb009dcSAndroid Build Coastguard Worker return nil, err 33*8fb009dcSAndroid Build Coastguard Worker } 34*8fb009dcSAndroid Build Coastguard Worker defer in.Close() 35*8fb009dcSAndroid Build Coastguard Worker 36*8fb009dcSAndroid Build Coastguard Worker decoder := json.NewDecoder(in) 37*8fb009dcSAndroid Build Coastguard Worker var result []Test 38*8fb009dcSAndroid Build Coastguard Worker if err := decoder.Decode(&result); err != nil { 39*8fb009dcSAndroid Build Coastguard Worker return nil, err 40*8fb009dcSAndroid Build Coastguard Worker } 41*8fb009dcSAndroid Build Coastguard Worker return result, nil 42*8fb009dcSAndroid Build Coastguard Worker} 43