diff options
Diffstat (limited to 'extras/hs-test/utils.go')
-rw-r--r-- | extras/hs-test/utils.go | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/extras/hs-test/utils.go b/extras/hs-test/utils.go new file mode 100644 index 00000000000..304dd4c241b --- /dev/null +++ b/extras/hs-test/utils.go @@ -0,0 +1,80 @@ +package main + +import ( + "fmt" + "io" + "os" + "strings" +) + +const networkTopologyDir string = "topo-network/" +const containerTopologyDir string = "topo-containers/" + +type Stanza struct { + content string + pad int +} + +type ActionResult struct { + Err error + Desc string + ErrOutput string + StdOutput string +} + +type JsonResult struct { + Code int + Desc string + ErrOutput string + StdOutput string +} + +func assertFileSize(f1, f2 string) error { + fi1, err := os.Stat(f1) + if err != nil { + return err + } + + fi2, err1 := os.Stat(f2) + if err1 != nil { + return err1 + } + + if fi1.Size() != fi2.Size() { + return fmt.Errorf("file sizes differ (%d vs %d)", fi1.Size(), fi2.Size()) + } + return nil +} + +func (c *Stanza) newStanza(name string) *Stanza { + c.append("\n" + name + " {") + c.pad += 2 + return c +} + +func (c *Stanza) append(name string) *Stanza { + c.content += strings.Repeat(" ", c.pad) + c.content += name + "\n" + return c +} + +func (c *Stanza) close() *Stanza { + c.content += "}\n" + c.pad -= 2 + return c +} + +func (s *Stanza) toString() string { + return s.content +} + +func (s *Stanza) saveToFile(fileName string) error { + fo, err := os.Create(fileName) + if err != nil { + return err + } + defer fo.Close() + + _, err = io.Copy(fo, strings.NewReader(s.content)) + return err +} |