Add test for volume upload and download
This commit is contained in:
parent
9adcb04498
commit
714fd9efff
@ -17,6 +17,7 @@
|
|||||||
package libvirt
|
package libvirt
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"encoding/xml"
|
"encoding/xml"
|
||||||
"net"
|
"net"
|
||||||
"sync"
|
"sync"
|
||||||
@ -252,6 +253,58 @@ func TestXMLIntegration(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestVolumeUploadDownloadIntegration(t *testing.T) {
|
||||||
|
testdata := []byte("Hello, world!")
|
||||||
|
l := New(testConn(t))
|
||||||
|
|
||||||
|
if err := l.Connect(); err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
}
|
||||||
|
defer l.Disconnect()
|
||||||
|
|
||||||
|
pool, err := l.StoragePool("test")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
var volObj struct {
|
||||||
|
XMLName xml.Name `xml:"volume"`
|
||||||
|
Name string `xml:"name"`
|
||||||
|
Capacity struct {
|
||||||
|
Value uint64 `xml:",chardata"`
|
||||||
|
} `xml:"capacity"`
|
||||||
|
Target struct {
|
||||||
|
Format struct {
|
||||||
|
Type string `xml:"type,attr"`
|
||||||
|
} `xml:"format"`
|
||||||
|
} `xml:"target"`
|
||||||
|
}
|
||||||
|
volObj.Name = "testvol"
|
||||||
|
volObj.Capacity.Value = uint64(len(testdata))
|
||||||
|
volObj.Target.Format.Type = "raw"
|
||||||
|
xmlVol, err := xml.Marshal(volObj)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
vol, err := l.StorageVolCreateXML(pool, string(xmlVol), 0)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
defer l.StorageVolDelete(vol, 0)
|
||||||
|
err = l.StorageVolUpload(vol, bytes.NewBuffer(testdata), 0, 0, 0)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
var buf bytes.Buffer
|
||||||
|
err = l.StorageVolDownload(vol, &buf, 0, 0, 0)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
if bytes.Compare(testdata, buf.Bytes()) != 0 {
|
||||||
|
t.Fatal("download not what we uploaded")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// verify we're able to concurrently communicate with libvirtd.
|
// verify we're able to concurrently communicate with libvirtd.
|
||||||
// see: https://github.com/digitalocean/go-libvirt/pull/52
|
// see: https://github.com/digitalocean/go-libvirt/pull/52
|
||||||
func Test_concurrentWrite(t *testing.T) {
|
func Test_concurrentWrite(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user