blob: e6a6871ca97e6f13d0dbc29780be54441d60f7d5 [file] [log] [blame]
// Copyright 2021 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package main
import (
"bytes"
"context"
"log"
"net"
"testing"
"go.chromium.org/chromiumos/config/go/build/api"
"google.golang.org/grpc"
)
// MetadataServer handles empty GetDeviceConfig
func TestMetadataServer_GetDeviceConfig_Empty(t *testing.T) {
var logBuf bytes.Buffer
l, err := net.Listen("tcp", ":0")
if err != nil {
t.Fatal("Failed to create a net listener: ", err)
}
ctx := context.Background()
srv, err := newMetadataServer(
l,
log.New(&logBuf, "", log.LstdFlags|log.LUTC),
)
if err != nil {
t.Fatalf("Failed to start MetadataServer: %v", err)
}
go srv.Serve(l)
defer srv.Stop()
conn, err := grpc.Dial(l.Addr().String(), grpc.WithInsecure())
if err != nil {
t.Fatalf("Failed to dial: %v", err)
}
defer conn.Close()
cl := api.NewMetadataServiceClient(conn)
response, err := cl.GetDeviceConfig(ctx, &api.GetDeviceConfigRequest{})
if err != nil {
t.Fatalf("Failed at MetadataServer.GetDeviceConfig: %v", err)
}
if err != nil {
t.Fatalf("Failed at get response: %v", err)
}
if response == nil {
t.Fatalf("Failed to handle empty request")
}
}