github.phpd.cn/hashicorp/packer@v1.3.2/builder/parallels/common/tools_config_test.go (about) 1 package common 2 3 import ( 4 "testing" 5 ) 6 7 func testToolsConfig() *ToolsConfig { 8 return &ToolsConfig{ 9 ParallelsToolsFlavor: "foo", 10 ParallelsToolsGuestPath: "foo", 11 ParallelsToolsMode: "attach", 12 } 13 } 14 15 func TestToolsConfigPrepare(t *testing.T) { 16 c := testToolsConfig() 17 errs := c.Prepare(testConfigTemplate(t)) 18 if len(errs) > 0 { 19 t.Fatalf("bad err: %#v", errs) 20 } 21 } 22 23 func TestToolsConfigPrepare_ParallelsToolsMode(t *testing.T) { 24 var c *ToolsConfig 25 var errs []error 26 27 // Test default mode 28 c = testToolsConfig() 29 c.ParallelsToolsMode = "" 30 errs = c.Prepare(testConfigTemplate(t)) 31 if len(errs) > 0 { 32 t.Fatalf("should not have error: %#v", errs) 33 } 34 if c.ParallelsToolsMode != ParallelsToolsModeUpload { 35 t.Errorf("bad parallels tools mode: %s", c.ParallelsToolsMode) 36 } 37 38 // Test another mode 39 c = testToolsConfig() 40 c.ParallelsToolsMode = "attach" 41 errs = c.Prepare(testConfigTemplate(t)) 42 if len(errs) > 0 { 43 t.Fatalf("should not have error: %#v", errs) 44 } 45 if c.ParallelsToolsMode != ParallelsToolsModeAttach { 46 t.Fatalf("bad mode: %s", c.ParallelsToolsMode) 47 } 48 49 // Test invalid mode 50 c = testToolsConfig() 51 c.ParallelsToolsMode = "invalid_mode" 52 errs = c.Prepare(testConfigTemplate(t)) 53 if len(errs) == 0 { 54 t.Fatal("should have error") 55 } 56 } 57 58 func TestToolsConfigPrepare_ParallelsToolsGuestPath(t *testing.T) { 59 var c *ToolsConfig 60 var errs []error 61 62 // Test default path 63 c = testToolsConfig() 64 c.ParallelsToolsGuestPath = "" 65 errs = c.Prepare(testConfigTemplate(t)) 66 if len(errs) > 0 { 67 t.Fatalf("should not have error: %#v", errs) 68 } 69 if c.ParallelsToolsGuestPath == "" { 70 t.Fatal("should not be empty") 71 } 72 73 // Test with a good one 74 c = testToolsConfig() 75 c.ParallelsToolsGuestPath = "foo" 76 errs = c.Prepare(testConfigTemplate(t)) 77 if len(errs) > 0 { 78 t.Fatalf("should not have error: %s", errs) 79 } 80 81 if c.ParallelsToolsGuestPath != "foo" { 82 t.Fatalf("bad guest path: %s", c.ParallelsToolsGuestPath) 83 } 84 } 85 86 func TestToolsConfigPrepare_ParallelsToolsFlavor(t *testing.T) { 87 var c *ToolsConfig 88 var errs []error 89 90 // Test with a default value 91 c = testToolsConfig() 92 c.ParallelsToolsFlavor = "" 93 errs = c.Prepare(testConfigTemplate(t)) 94 if len(errs) == 0 { 95 t.Fatal("should have error") 96 } 97 98 // Test with an bad value 99 c = testToolsConfig() 100 c.ParallelsToolsMode = "attach" 101 c.ParallelsToolsFlavor = "" 102 errs = c.Prepare(testConfigTemplate(t)) 103 if len(errs) == 0 { 104 t.Fatal("should have error") 105 } 106 107 // Test with a good one 108 c = testToolsConfig() 109 c.ParallelsToolsMode = "disable" 110 c.ParallelsToolsFlavor = "" 111 errs = c.Prepare(testConfigTemplate(t)) 112 if len(errs) > 0 { 113 t.Fatalf("should not have error: %s", errs) 114 } 115 }