MCPcopy
hub / github.com/google/cadvisor / Run

Function Run

integration/runner/runner.go:198–254  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

196}
197
198func Run() error {
199 start := time.Now()
200 defer func() {
201 klog.Infof("Execution time %v", time.Since(start))
202 }()
203 defer klog.Flush()
204
205 hosts := flag.Args()
206 testDir := fmt.Sprintf("/tmp/cadvisor-%d", os.Getpid())
207 klog.Infof("Running integration tests on host(s) %q", strings.Join(hosts, ","))
208
209 // Build cAdvisor.
210 klog.Infof("Building cAdvisor...")
211 err := RunCommand("build/build.sh")
212 if err != nil {
213 return err
214 }
215 defer func() {
216 err := RunCommand("rm", cadvisorBinary)
217 if err != nil {
218 klog.Error(err)
219 }
220 }()
221
222 // Run test on all hosts in parallel.
223 var wg sync.WaitGroup
224 allErrors := make([]error, 0)
225 var allErrorsLock sync.Mutex
226 for _, host := range hosts {
227 wg.Add(1)
228 go func(host string) {
229 defer wg.Done()
230 err := PushAndRunTests(host, testDir)
231 if err != nil {
232 func() {
233 allErrorsLock.Lock()
234 defer allErrorsLock.Unlock()
235 allErrors = append(allErrors, err)
236 }()
237 }
238 }(host)
239 }
240 wg.Wait()
241
242 if len(allErrors) != 0 {
243 var buffer bytes.Buffer
244 for i, err := range allErrors {
245 buffer.WriteString(fmt.Sprintf("Error %d: ", i))
246 buffer.WriteString(err.Error())
247 buffer.WriteString("\n")
248 }
249 return errors.New(buffer.String())
250 }
251
252 klog.Infof("All tests pass!")
253 return nil
254}
255

Callers 1

mainFunction · 0.85

Calls 6

RunCommandFunction · 0.85
PushAndRunTestsFunction · 0.85
InfofMethod · 0.80
AddMethod · 0.65
StringMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected