|
@@ -1,89 +0,0 @@
|
|
-package docker
|
|
|
|
-
|
|
|
|
-import (
|
|
|
|
- "github.com/dotcloud/docker/utils"
|
|
|
|
- "strings"
|
|
|
|
- "testing"
|
|
|
|
-)
|
|
|
|
-
|
|
|
|
-const Dockerfile = `
|
|
|
|
-# VERSION 0.1
|
|
|
|
-# DOCKER-VERSION 0.2
|
|
|
|
-
|
|
|
|
-from ` + unitTestImageName + `
|
|
|
|
-run sh -c 'echo root:testpass > /tmp/passwd'
|
|
|
|
-run mkdir -p /var/run/sshd
|
|
|
|
-insert https://raw.github.com/dotcloud/docker/master/CHANGELOG.md /tmp/CHANGELOG.md
|
|
|
|
-`
|
|
|
|
-
|
|
|
|
-func TestBuild(t *testing.T) {
|
|
|
|
- runtime, err := newTestRuntime()
|
|
|
|
- if err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
- defer nuke(runtime)
|
|
|
|
-
|
|
|
|
- builder := NewBuilder(runtime)
|
|
|
|
-
|
|
|
|
- img, err := builder.Build(strings.NewReader(Dockerfile), &utils.NopWriter{})
|
|
|
|
- if err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- container, err := builder.Create(
|
|
|
|
- &Config{
|
|
|
|
- Image: img.Id,
|
|
|
|
- Cmd: []string{"cat", "/tmp/passwd"},
|
|
|
|
- },
|
|
|
|
- )
|
|
|
|
- if err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
- defer runtime.Destroy(container)
|
|
|
|
-
|
|
|
|
- output, err := container.Output()
|
|
|
|
- if err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
- if string(output) != "root:testpass\n" {
|
|
|
|
- t.Fatalf("Unexpected output. Read '%s', expected '%s'", output, "root:testpass\n")
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- container2, err := builder.Create(
|
|
|
|
- &Config{
|
|
|
|
- Image: img.Id,
|
|
|
|
- Cmd: []string{"ls", "-d", "/var/run/sshd"},
|
|
|
|
- },
|
|
|
|
- )
|
|
|
|
- if err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
- defer runtime.Destroy(container2)
|
|
|
|
-
|
|
|
|
- output, err = container2.Output()
|
|
|
|
- if err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
- if string(output) != "/var/run/sshd\n" {
|
|
|
|
- t.Fatal("/var/run/sshd has not been created")
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- container3, err := builder.Create(
|
|
|
|
- &Config{
|
|
|
|
- Image: img.Id,
|
|
|
|
- Cmd: []string{"cat", "/tmp/CHANGELOG.md"},
|
|
|
|
- },
|
|
|
|
- )
|
|
|
|
- if err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
- defer runtime.Destroy(container3)
|
|
|
|
-
|
|
|
|
- output, err = container3.Output()
|
|
|
|
- if err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
- if len(output) == 0 {
|
|
|
|
- t.Fatal("/tmp/CHANGELOG.md has not been copied")
|
|
|
|
- }
|
|
|
|
-}
|
|
|