github.com/timsutton/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  }