Merge remote-tracking branch 'origin/v3' into v3
# Conflicts: # client/noop.go # errors/errors_test.go # logger/unwrap/unwrap_test.go # register/memory/memory_test.go # server/noop_test.go # service.go # util/dns/cache.go # util/dns/conn.go # util/structfs/metadata_ec2.go # util/time/duration.go
This commit is contained in:
@@ -221,6 +221,7 @@ func getValue(name string, iface interface{}, tag string) ([]byte, error) {
|
||||
return nil, fmt.Errorf("failed to find %s in interface %T", name, iface)
|
||||
}
|
||||
|
||||
/*
|
||||
func hasValidType(obj interface{}, types []reflect.Kind) bool {
|
||||
for _, t := range types {
|
||||
if reflect.TypeOf(obj).Kind() == t {
|
||||
@@ -230,6 +231,7 @@ func hasValidType(obj interface{}, types []reflect.Kind) bool {
|
||||
|
||||
return false
|
||||
}
|
||||
*/
|
||||
|
||||
func reflectValue(obj interface{}) reflect.Value {
|
||||
var val reflect.Value
|
||||
|
||||
@@ -61,7 +61,7 @@ var doOrig = []byte(`{
|
||||
}
|
||||
`)
|
||||
|
||||
func server(t *testing.T) {
|
||||
func server(t *testing.T, ch chan error) {
|
||||
stfs := DigitalOceanMetadata{}
|
||||
err := json.Unmarshal(doOrig, &stfs.Metadata.V1)
|
||||
if err != nil {
|
||||
@@ -71,7 +71,7 @@ func server(t *testing.T) {
|
||||
http.Handle("/metadata/v1/", FileServer(&stfs, "json", time.Now()))
|
||||
http.Handle("/metadata/v1.json", &stfs)
|
||||
go func() {
|
||||
t.Fatal(http.ListenAndServe("127.0.0.1:8080", nil))
|
||||
ch <- http.ListenAndServe("127.0.0.1:8080", nil)
|
||||
}()
|
||||
time.Sleep(2 * time.Second)
|
||||
}
|
||||
@@ -86,7 +86,8 @@ func get(path string) ([]byte, error) {
|
||||
}
|
||||
|
||||
func TestAll(t *testing.T) {
|
||||
server(t)
|
||||
ch := make(chan error)
|
||||
server(t, ch)
|
||||
|
||||
tests := []struct {
|
||||
in string
|
||||
@@ -100,34 +101,44 @@ func TestAll(t *testing.T) {
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
buf, err := get(tt.in)
|
||||
select {
|
||||
case err := <-ch:
|
||||
t.Fatal(err)
|
||||
default:
|
||||
buf, err := get(tt.in)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if string(buf) != tt.out {
|
||||
t.Errorf("req %s output %s not match requested %s", tt.in, string(buf), tt.out)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
select {
|
||||
case err := <-ch:
|
||||
t.Fatal(err)
|
||||
default:
|
||||
doTest, err := get("http://127.0.0.1:8080/metadata/v1.json")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if string(buf) != tt.out {
|
||||
t.Errorf("req %s output %s not match requested %s", tt.in, string(buf), tt.out)
|
||||
|
||||
oSt := DigitalOceanMetadata{}
|
||||
err = json.Unmarshal(doOrig, &oSt.Metadata.V1)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
nSt := DigitalOceanMetadata{}
|
||||
|
||||
err = json.Unmarshal(doTest, &nSt.Metadata.V1)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if !reflect.DeepEqual(oSt, nSt) {
|
||||
t.Fatalf("%v not match %v", oSt, nSt)
|
||||
}
|
||||
}
|
||||
|
||||
doTest, err := get("http://127.0.0.1:8080/metadata/v1.json")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
oSt := DigitalOceanMetadata{}
|
||||
err = json.Unmarshal(doOrig, &oSt.Metadata.V1)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
nSt := DigitalOceanMetadata{}
|
||||
|
||||
err = json.Unmarshal(doTest, &nSt.Metadata.V1)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if !reflect.DeepEqual(oSt, nSt) {
|
||||
t.Fatalf("%v not match %v", oSt, nSt)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user