config: Make sure all tests occur on random ports.
Change-Id: I7b9c9ae42aa4b7c02bd2101f6ef6adab3537566d
diff --git a/services/config/lib/config_test.go b/services/config/lib/config_test.go
index 37a69f9..b3bc4dd 100644
--- a/services/config/lib/config_test.go
+++ b/services/config/lib/config_test.go
@@ -4,6 +4,7 @@
"errors"
"fmt"
"io/ioutil"
+ "math/rand"
"os"
"testing"
"time"
@@ -99,14 +100,21 @@
return errors.New("timeout waiting for consistency: " + finalerr.Error())
}
+func pickRandomPort() uint16 {
+ rand.Seed(time.Now().UnixNano())
+ return uint16(rand.Intn(1000)) + 5354
+}
+
func testConfig(fileA, fileB, fileD string) error {
+ port := pickRandomPort()
+
// Write a config to fileA.
if err := ioutil.WriteFile(fileA, []byte(configFileA), 0644); err != nil {
return fmt.Errorf("writing initial %s: %s", fileA, err)
}
// Start a config service with a file and compare the parsed file to the reference.
- csa, err := MDNSConfigService("foo", fileA, true)
+ csa, err := MDNSConfigService("foo", fileA, true, port)
if err != nil {
return fmt.Errorf("creating service %s", err)
}
@@ -116,14 +124,14 @@
}
// Create a second instance with a non existant file.
- csb, err := MDNSConfigService("foo", fileB, true)
+ csb, err := MDNSConfigService("foo", fileB, true, port)
if err != nil {
return fmt.Errorf("creating service %s", err)
}
defer csb.Stop()
// Create a third passive instance with no file.
- csc, err := MDNSConfigService("foo", "", true)
+ csc, err := MDNSConfigService("foo", "", true, port)
if err != nil {
return fmt.Errorf("creating service %s", err)
}
@@ -169,7 +177,7 @@
if err := ioutil.WriteFile(fileD, []byte(configFileA), 0644); err != nil {
return fmt.Errorf("writing initial %s: %s", fileD, err)
}
- csd, err := MDNSConfigService("foo", fileD, true)
+ csd, err := MDNSConfigService("foo", fileD, true, port)
if err != nil {
return fmt.Errorf("creating service %s", err)
}
@@ -213,7 +221,7 @@
defer os.Remove(fileA)
// Start a cs service.
- cs, err := MDNSConfigService("foo", fileA, true)
+ cs, err := MDNSConfigService("foo", fileA, true, pickRandomPort())
if err != nil {
t.Fatal("creating service %s", err)
}