|
@@ -4,6 +4,7 @@ import (
|
|
"fmt"
|
|
"fmt"
|
|
"io"
|
|
"io"
|
|
"io/ioutil"
|
|
"io/ioutil"
|
|
|
|
+ "sort"
|
|
"strings"
|
|
"strings"
|
|
"testing"
|
|
"testing"
|
|
"time"
|
|
"time"
|
|
@@ -511,6 +512,55 @@ func TestTty(t *testing.T) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func TestEnv(t *testing.T) {
|
|
|
|
+ docker, err := newTestDocker()
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Fatal(err)
|
|
|
|
+ }
|
|
|
|
+ container, err := docker.Create(
|
|
|
|
+ "env_test",
|
|
|
|
+ "/usr/bin/env",
|
|
|
|
+ []string{},
|
|
|
|
+ []string{testLayerPath},
|
|
|
|
+ &Config{},
|
|
|
|
+ )
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Fatal(err)
|
|
|
|
+ }
|
|
|
|
+ defer docker.Destroy(container)
|
|
|
|
+ stdout, err := container.StdoutPipe()
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Fatal(err)
|
|
|
|
+ }
|
|
|
|
+ defer stdout.Close()
|
|
|
|
+ if err := container.Start(); err != nil {
|
|
|
|
+ t.Fatal(err)
|
|
|
|
+ }
|
|
|
|
+ container.Wait()
|
|
|
|
+ output, err := ioutil.ReadAll(stdout)
|
|
|
|
+ if err != nil {
|
|
|
|
+ t.Fatal(err)
|
|
|
|
+ }
|
|
|
|
+ actualEnv := strings.Split(string(output), "\n")
|
|
|
|
+ if actualEnv[len(actualEnv)-1] == "" {
|
|
|
|
+ actualEnv = actualEnv[:len(actualEnv)-1]
|
|
|
|
+ }
|
|
|
|
+ sort.Strings(actualEnv)
|
|
|
|
+ goodEnv := []string{
|
|
|
|
+ "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
|
|
|
|
+ "HOME=/",
|
|
|
|
+ }
|
|
|
|
+ sort.Strings(goodEnv)
|
|
|
|
+ if len(goodEnv) != len(actualEnv) {
|
|
|
|
+ t.Fatalf("Wrong environment: should be %d variables, not: '%s'\n", len(goodEnv), strings.Join(actualEnv, ", "))
|
|
|
|
+ }
|
|
|
|
+ for i := range goodEnv {
|
|
|
|
+ if actualEnv[i] != goodEnv[i] {
|
|
|
|
+ t.Fatalf("Wrong environment variable: should be %s, not %s", goodEnv[i], actualEnv[i])
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
func BenchmarkRunSequencial(b *testing.B) {
|
|
func BenchmarkRunSequencial(b *testing.B) {
|
|
docker, err := newTestDocker()
|
|
docker, err := newTestDocker()
|
|
if err != nil {
|
|
if err != nil {
|