github.phpd.cn/hashicorp/packer@v1.3.2/builder/parallels/common/driver_9_test.go (about) 1 package common 2 3 import ( 4 "io/ioutil" 5 "os" 6 "testing" 7 ) 8 9 func TestParallels9Driver_impl(t *testing.T) { 10 var _ Driver = new(Parallels9Driver) 11 } 12 13 func TestIPAddress(t *testing.T) { 14 tf, err := ioutil.TempFile("", "packer") 15 if err != nil { 16 t.Fatalf("err: %s", err) 17 } 18 defer os.Remove(tf.Name()) 19 defer tf.Close() 20 21 d := Parallels9Driver{ 22 dhcpLeaseFile: tf.Name(), 23 } 24 25 // No lease should be found in an empty file 26 ip, err := d.IPAddress("123456789012") 27 if err == nil { 28 t.Fatalf("Found IP: \"%v\". No IP should be found!\n", ip) 29 } 30 31 // The most recent lease, 10.211.55.126 should be found 32 c := []byte(` 33 [vnic0] 34 10.211.55.125="1418288000,1800,001c4235240c,ff4235240c000100011c1c10e7001c4235240c" 35 10.211.55.126="1418288969,1800,001c4235240c,ff4235240c000100011c1c11ad001c4235240c" 36 10.211.55.254="1411712008,1800,001c42a51419,01001c42a51419" 37 `) 38 ioutil.WriteFile(tf.Name(), c, 0666) 39 ip, err = d.IPAddress("001C4235240c") 40 if err != nil { 41 t.Fatalf("Error: %v\n", err) 42 } 43 if ip != "10.211.55.126" { 44 t.Fatalf("Should have found 10.211.55.126, not %s!\n", ip) 45 } 46 47 // The most recent lease, 10.211.55.124 should be found 48 c = []byte(`[vnic0] 49 10.211.55.124="1418288969,1800,001c4235240c,ff4235240c000100011c1c11ad001c4235240c" 50 10.211.55.125="1418288000,1800,001c4235240c,ff4235240c000100011c1c10e7001c4235240c" 51 10.211.55.254="1411712008,1800,001c42a51419,01001c42a51419" 52 `) 53 ioutil.WriteFile(tf.Name(), c, 0666) 54 ip, err = d.IPAddress("001c4235240c") 55 if err != nil { 56 t.Fatalf("Error: %v\n", err) 57 } 58 if ip != "10.211.55.124" { 59 t.Fatalf("Should have found 10.211.55.124, not %s!\n", ip) 60 } 61 } 62 63 func TestXMLParseConfig(t *testing.T) { 64 td, err := ioutil.TempDir("", "configpvs") 65 if err != nil { 66 t.Fatalf("Error creating temp dir: %s", err) 67 } 68 defer os.RemoveAll(td) 69 70 config := []byte(` 71 <ExampleParallelsConfig> 72 <SystemConfig> 73 <DiskSize>20</DiskSize> 74 </SystemConfig> 75 </ExampleParallelsConfig> 76 `) 77 ioutil.WriteFile(td+"/config.pvs", config, 0666) 78 79 result, err := getConfigValueFromXpath(td, "//DiskSize") 80 if err != nil { 81 t.Fatalf("Error parsing XML: %s", err) 82 } 83 84 if result != "20" { 85 t.Fatalf("Expected %q, got %q", "20", result) 86 } 87 }