...

Source file src/golang.conradwood.net/tests/ctx/server_call_again.go

Documentation: golang.conradwood.net/tests/ctx

     1  package main
     2  
     3  import (
     4  	"context"
     5  	"fmt"
     6  	"golang.conradwood.net/apis/common"
     7  	ge "golang.conradwood.net/apis/getestservice"
     8  	"golang.conradwood.net/go-easyops/authremote"
     9  	"golang.conradwood.net/go-easyops/cmdline"
    10  	"io"
    11  )
    12  
    13  // return current and alternative
    14  func cur_versions() (int, int) {
    15  	cur := cmdline.GetContextBuilderVersion()
    16  	alt := OLD_CONTEXT_VERSION
    17  	if cur == OLD_CONTEXT_VERSION {
    18  		alt = NEW_CONTEXT_VERSION
    19  	}
    20  	return cur, alt
    21  }
    22  
    23  func (g *geServer) CallUnaryFromStream(req *ge.RequiredContext, srv ge.CtxTest_CallUnaryFromStreamServer) error {
    24  	cur, alt := cur_versions()
    25  	cmdline.SetContextBuilderVersion(alt)
    26  	_, err := ge.GetCtxTestClient().TestDeSer(srv.Context(), req)
    27  	if err != nil {
    28  		return err
    29  	}
    30  	cmdline.SetContextBuilderVersion(cur)
    31  	_, err = ge.GetCtxTestClient().TestDeSer(srv.Context(), req)
    32  	if err != nil {
    33  		return err
    34  	}
    35  	return nil
    36  }
    37  
    38  func (g *geServer) CallUnaryFromUnary(ctx context.Context, req *ge.RequiredContext) (*common.Void, error) {
    39  	cur, alt := cur_versions()
    40  	cmdline.SetContextBuilderVersion(alt)
    41  	_, err := ge.GetCtxTestClient().TestDeSer(ctx, req)
    42  	if err != nil {
    43  		fmt.Printf("ufu: %s\n", err)
    44  		return nil, err
    45  	}
    46  	cmdline.SetContextBuilderVersion(cur)
    47  	_, err = ge.GetCtxTestClient().TestDeSer(ctx, req)
    48  	if err != nil {
    49  		fmt.Printf("ufu: %s\n", err)
    50  		return nil, err
    51  	}
    52  	return &common.Void{}, nil
    53  }
    54  func (g *geServer) CallStreamFromStream(req *ge.RequiredContext, srv ge.CtxTest_CallStreamFromStreamServer) error {
    55  	srv2, err := ge.GetCtxTestClient().TestStream(srv.Context(), req)
    56  	if err != nil {
    57  		return err
    58  	}
    59  	for {
    60  		c, err := srv2.Recv()
    61  		if err == io.EOF {
    62  			break
    63  		}
    64  		if err != nil {
    65  			return err
    66  		}
    67  		err = srv.Send(c)
    68  		if err != nil {
    69  			return err
    70  		}
    71  	}
    72  
    73  	return nil
    74  }
    75  func (g *geServer) CallStreamFromUnary(ctx context.Context, req *ge.RequiredContext) (*common.Void, error) {
    76  	m := map[string]string{"provides": "default"}
    77  
    78  	cur, alt := cur_versions()
    79  	cmdline.SetContextBuilderVersion(alt)
    80  
    81  	srv2, err := ge.GetCtxTestClient().TestStream(ctx, req)
    82  	if err != nil {
    83  		return nil, err
    84  	}
    85  	err = checkSrv(srv2)
    86  	if err != nil {
    87  		return nil, err
    88  	}
    89  
    90  	cmdline.SetContextBuilderVersion(cur)
    91  	srv2, err = ge.GetCtxTestClient().TestStream(ctx, req)
    92  	if err != nil {
    93  		return nil, err
    94  	}
    95  	err = checkSrv(srv2)
    96  	if err != nil {
    97  		return nil, err
    98  	}
    99  
   100  	cmdline.SetContextBuilderVersion(alt)
   101  	nctx := authremote.DerivedContextWithRouting(ctx, m, true)
   102  	srv2, err = ge.GetCtxTestClient().TestStream(nctx, req)
   103  	if err != nil {
   104  		return nil, err
   105  	}
   106  	err = checkSrv(srv2)
   107  	if err != nil {
   108  		return nil, err
   109  	}
   110  
   111  	cmdline.SetContextBuilderVersion(cur)
   112  	nctx = authremote.DerivedContextWithRouting(ctx, m, true)
   113  	srv2, err = ge.GetCtxTestClient().TestStream(nctx, req)
   114  	if err != nil {
   115  		return nil, err
   116  	}
   117  	err = checkSrv(srv2)
   118  	if err != nil {
   119  		return nil, err
   120  	}
   121  
   122  	return &common.Void{}, nil
   123  }
   124  

View as plain text