// Copyright 2018 Mikhail Klementev. All rights reserved. // Use of this source code is governed by a AGPLv3 license // (or later) that can be found in the LICENSE file. package main import ( "fmt" "io/ioutil" "os" "strings" "testing" "time" ) func TestDockerRun(t *testing.T) { tmp, err := ioutil.TempDir("/tmp/", "out-of-tree_test_") if err != nil { t.Fatal(err) } defer os.RemoveAll(tmp) start := time.Now() timeout := time.Second _, err = dockerRun(timeout, "ubuntu", tmp, "sleep 5s") if err == nil { t.Fatal("docker is not killed by timeout") } if time.Since(start) > 3*time.Second { t.Fatal(fmt.Sprintf("timeout failed (%v instead of %v)", time.Since(start), time.Second)) } output, err := dockerRun(time.Minute, "ubuntu", tmp, "echo hello") if err != nil { t.Fatal(err) } if !strings.Contains(output, "hello") { t.Fatal("wrong output (" + output + ")") } }