github.phpd.cn/hashicorp/packer@v1.3.2/builder/lxd/builder_test.go (about) 1 package lxd 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/hashicorp/packer/packer" 8 ) 9 10 func testConfig() map[string]interface{} { 11 return map[string]interface{}{ 12 "output_image": "foo", 13 "image": "bar", 14 } 15 } 16 17 func TestBuilder_Foo(t *testing.T) { 18 if os.Getenv("PACKER_ACC") == "" { 19 t.Skip("This test is only run with PACKER_ACC=1") 20 } 21 } 22 23 func TestBuilderPrepare_ConfigFile(t *testing.T) { 24 var b Builder 25 // Good 26 config := testConfig() 27 warnings, err := b.Prepare(config) 28 if len(warnings) > 0 { 29 t.Fatalf("bad: %#v", warnings) 30 } 31 if err != nil { 32 t.Fatalf("should not have error: %s", err) 33 } 34 35 // Good, remote image 36 config = testConfig() 37 config["image"] = "remote:bar" 38 warnings, err = b.Prepare(config) 39 if len(warnings) > 0 { 40 t.Fatalf("bad: %#v", warnings) 41 } 42 if err != nil { 43 t.Fatalf("should not have error: %s", err) 44 } 45 46 // Good, remote output image 47 config = testConfig() 48 config["output_image"] = "remote:foo" 49 warnings, err = b.Prepare(config) 50 if len(warnings) > 0 { 51 t.Fatalf("bad: %#v", warnings) 52 } 53 if err != nil { 54 t.Fatalf("should not have error: %s", err) 55 } 56 57 // Bad, missing image name 58 config = testConfig() 59 delete(config, "image") 60 b = Builder{} 61 warnings, err = b.Prepare(config) 62 if len(warnings) > 0 { 63 t.Fatalf("bad: %#v", warnings) 64 } 65 if err == nil { 66 t.Fatalf("should have error") 67 } 68 69 } 70 71 func TestBuilder_ImplementsBuilder(t *testing.T) { 72 var raw interface{} 73 raw = &Builder{} 74 if _, ok := raw.(packer.Builder); !ok { 75 t.Fatalf("Builder should be a builder") 76 } 77 }