github.com/phobos182/packer@v0.2.3-0.20130819023704-c84d2aeffc68/builder/amazon/common/run_config_test.go (about) 1 package common 2 3 import ( 4 "io/ioutil" 5 "os" 6 "testing" 7 ) 8 9 func init() { 10 // Clear out the AWS access key env vars so they don't 11 // affect our tests. 12 os.Setenv("AWS_ACCESS_KEY_ID", "") 13 os.Setenv("AWS_ACCESS_KEY", "") 14 os.Setenv("AWS_SECRET_ACCESS_KEY", "") 15 os.Setenv("AWS_SECRET_KEY", "") 16 } 17 18 func testConfig() *RunConfig { 19 return &RunConfig{ 20 SourceAmi: "abcd", 21 InstanceType: "m1.small", 22 SSHUsername: "root", 23 } 24 } 25 26 func TestRunConfigPrepare(t *testing.T) { 27 c := testConfig() 28 err := c.Prepare(nil) 29 if len(err) > 0 { 30 t.Fatalf("err: %s", err) 31 } 32 } 33 34 func TestRunConfigPrepare_InstanceType(t *testing.T) { 35 c := testConfig() 36 c.InstanceType = "" 37 if err := c.Prepare(nil); len(err) != 1 { 38 t.Fatalf("err: %s", err) 39 } 40 } 41 42 func TestRunConfigPrepare_SourceAmi(t *testing.T) { 43 c := testConfig() 44 c.SourceAmi = "" 45 if err := c.Prepare(nil); len(err) != 1 { 46 t.Fatalf("err: %s", err) 47 } 48 } 49 50 func TestRunConfigPrepare_SSHPort(t *testing.T) { 51 c := testConfig() 52 c.SSHPort = 0 53 if err := c.Prepare(nil); len(err) != 0 { 54 t.Fatalf("err: %s", err) 55 } 56 57 if c.SSHPort != 22 { 58 t.Fatalf("invalid value: %d", c.SSHPort) 59 } 60 61 c.SSHPort = 44 62 if err := c.Prepare(nil); len(err) != 0 { 63 t.Fatalf("err: %s", err) 64 } 65 66 if c.SSHPort != 44 { 67 t.Fatalf("invalid value: %d", c.SSHPort) 68 } 69 } 70 71 func TestRunConfigPrepare_SSHTimeout(t *testing.T) { 72 c := testConfig() 73 c.RawSSHTimeout = "" 74 if err := c.Prepare(nil); len(err) != 0 { 75 t.Fatalf("err: %s", err) 76 } 77 78 c.RawSSHTimeout = "bad" 79 if err := c.Prepare(nil); len(err) != 1 { 80 t.Fatalf("err: %s", err) 81 } 82 } 83 84 func TestRunConfigPrepare_SSHUsername(t *testing.T) { 85 c := testConfig() 86 c.SSHUsername = "" 87 if err := c.Prepare(nil); len(err) != 1 { 88 t.Fatalf("err: %s", err) 89 } 90 } 91 92 func TestRunConfigPrepare_UserData(t *testing.T) { 93 c := testConfig() 94 tf, err := ioutil.TempFile("", "packer") 95 if err != nil { 96 t.Fatalf("err: %s", err) 97 } 98 defer tf.Close() 99 100 c.UserData = "foo" 101 c.UserDataFile = tf.Name() 102 if err := c.Prepare(nil); len(err) != 1 { 103 t.Fatalf("err: %s", err) 104 } 105 } 106 107 func TestRunConfigPrepare_UserDataFile(t *testing.T) { 108 c := testConfig() 109 if err := c.Prepare(nil); len(err) != 0 { 110 t.Fatalf("err: %s", err) 111 } 112 113 c.UserDataFile = "idontexistidontthink" 114 if err := c.Prepare(nil); len(err) != 1 { 115 t.Fatalf("err: %s", err) 116 } 117 118 tf, err := ioutil.TempFile("", "packer") 119 if err != nil { 120 t.Fatalf("err: %s", err) 121 } 122 defer tf.Close() 123 124 c.UserDataFile = tf.Name() 125 if err := c.Prepare(nil); len(err) != 0 { 126 t.Fatalf("err: %s", err) 127 } 128 }