95 lines
2.5 KiB
Go
95 lines
2.5 KiB
Go
package generators
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/lxc/distrobuilder/image"
|
|
"github.com/lxc/distrobuilder/shared"
|
|
)
|
|
|
|
func TestHostsGeneratorRunLXC(t *testing.T) {
|
|
cacheDir := filepath.Join(os.TempDir(), "distrobuilder-test")
|
|
rootfsDir := filepath.Join(cacheDir, "rootfs")
|
|
|
|
setup(t, cacheDir)
|
|
defer teardown(cacheDir)
|
|
|
|
generator := Get("hosts")
|
|
if generator == nil {
|
|
t.Fatal("Expected hosts generator, got nil")
|
|
}
|
|
|
|
definition := shared.DefinitionImage{
|
|
Distribution: "ubuntu",
|
|
Release: "artful",
|
|
}
|
|
|
|
image := image.NewLXCImage(cacheDir, "", cacheDir, definition, shared.DefinitionTargetLXC{})
|
|
|
|
err := os.MkdirAll(filepath.Join(cacheDir, "rootfs", "etc"), 0755)
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %s", err)
|
|
}
|
|
|
|
createTestFile(t, filepath.Join(cacheDir, "rootfs", "etc", "hosts"),
|
|
"127.0.0.1\tlocalhost\n127.0.0.1\tdistrobuilder\n")
|
|
|
|
err = generator.RunLXC(cacheDir, rootfsDir, image,
|
|
shared.DefinitionFile{Path: "/etc/hosts"})
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %s", err)
|
|
}
|
|
|
|
validateTestFile(t, filepath.Join(cacheDir, "tmp", "etc", "hosts"),
|
|
"127.0.0.1\tlocalhost\n127.0.0.1\tdistrobuilder\n")
|
|
validateTestFile(t, filepath.Join(cacheDir, "rootfs", "etc", "hosts"),
|
|
"127.0.0.1\tlocalhost\n127.0.0.1\tLXC_NAME\n")
|
|
|
|
err = RestoreFiles(cacheDir, rootfsDir)
|
|
if err != nil {
|
|
t.Fatalf("Failed to restore files: %s", err)
|
|
}
|
|
|
|
validateTestFile(t, filepath.Join(cacheDir, "rootfs", "etc", "hosts"),
|
|
"127.0.0.1\tlocalhost\n127.0.0.1\tdistrobuilder\n")
|
|
}
|
|
|
|
func TestHostsGeneratorRunLXD(t *testing.T) {
|
|
cacheDir := filepath.Join(os.TempDir(), "distrobuilder-test")
|
|
rootfsDir := filepath.Join(cacheDir, "rootfs")
|
|
|
|
setup(t, cacheDir)
|
|
defer teardown(cacheDir)
|
|
|
|
generator := Get("hosts")
|
|
if generator == nil {
|
|
t.Fatal("Expected hosts generator, got nil")
|
|
}
|
|
|
|
definition := shared.DefinitionImage{
|
|
Distribution: "ubuntu",
|
|
Release: "artful",
|
|
}
|
|
|
|
image := image.NewLXDImage(cacheDir, "", cacheDir, definition)
|
|
|
|
err := os.MkdirAll(filepath.Join(cacheDir, "rootfs", "etc"), 0755)
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %s", err)
|
|
}
|
|
|
|
createTestFile(t, filepath.Join(cacheDir, "rootfs", "etc", "hosts"),
|
|
"127.0.0.1\tlocalhost\n127.0.0.1\tdistrobuilder\n")
|
|
|
|
err = generator.RunLXD(cacheDir, rootfsDir, image,
|
|
shared.DefinitionFile{Path: "/etc/hosts"})
|
|
if err != nil {
|
|
t.Fatalf("Unexpected error: %s", err)
|
|
}
|
|
|
|
validateTestFile(t, filepath.Join(cacheDir, "templates", "hosts.tpl"),
|
|
"127.0.0.1\tlocalhost\n127.0.0.1\t{{ container.name }}\n")
|
|
}
|