code: func (sv *Service) Start(t *testing.T) <-chan error {
  	srv, err := embed.StartEtcd(sv.cfg)
  	if err != nil {
  		t.Fatal(err)
  	}
  	select {
  	case <-srv.Server.ReadyNotify():
  		err = nil
  	case err = <-srv.Err():
  	case <-srv.Server.StopNotify():
  		err = fmt.Errorf("received from etcdserver.Server.StopNotify")
  	}
  	if err != nil {
  		t.Fatal(err)
  	}
  	sv.etcd = srv
  
  	// issue linearized read to ensure leader election
  	cli := v3client.New(srv.Server)
  	_, err = cli.Get(context.Background(), "foo")
  
  	go func() {
  		defer close(sv.httpErrc)
  		if err := sv.httpServer.ListenAndServe(); err != nil && err != http.ErrServerClosed {
  			sv.httpErrc <- err
  			return
  		}
  		sv.httpErrc <- nil
  	}()
  	return sv.httpErrc
  }
docs: // Start starts etcd server and http listener.