* web: fix deadlock Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org> * add web tests Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
		
			
				
	
	
		
			73 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package web_test
 | |
| 
 | |
| import (
 | |
| 	"context"
 | |
| 	"fmt"
 | |
| 	"sync"
 | |
| 	"testing"
 | |
| 	"time"
 | |
| 
 | |
| 	"github.com/micro/cli/v2"
 | |
| 	"github.com/micro/go-micro/v2"
 | |
| 	"github.com/micro/go-micro/v2/logger"
 | |
| 	"github.com/micro/go-micro/v2/web"
 | |
| )
 | |
| 
 | |
| func TestWeb(t *testing.T) {
 | |
| 	for i := 0; i < 10; i++ {
 | |
| 		fmt.Println("Test nr", i)
 | |
| 		testFunc()
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func testFunc() {
 | |
| 	ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*250)
 | |
| 	defer cancel()
 | |
| 
 | |
| 	s := micro.NewService(
 | |
| 		micro.Name("test"),
 | |
| 		micro.Context(ctx),
 | |
| 		micro.HandleSignal(false),
 | |
| 		micro.Flags(
 | |
| 			&cli.StringFlag{
 | |
| 				Name: "test.timeout",
 | |
| 			},
 | |
| 			&cli.BoolFlag{
 | |
| 				Name: "test.v",
 | |
| 			},
 | |
| 			&cli.StringFlag{
 | |
| 				Name: "test.run",
 | |
| 			},
 | |
| 			&cli.StringFlag{
 | |
| 				Name: "test.testlogfile",
 | |
| 			},
 | |
| 		),
 | |
| 	)
 | |
| 	w := web.NewService(
 | |
| 		web.MicroService(s),
 | |
| 		web.Context(ctx),
 | |
| 		web.HandleSignal(false),
 | |
| 	)
 | |
| 	//s.Init()
 | |
| 	//w.Init()
 | |
| 
 | |
| 	var wg sync.WaitGroup
 | |
| 	wg.Add(2)
 | |
| 	go func() {
 | |
| 		defer wg.Done()
 | |
| 		err := s.Run()
 | |
| 		if err != nil {
 | |
| 			logger.Errorf("micro run error: %v", err)
 | |
| 		}
 | |
| 	}()
 | |
| 	go func() {
 | |
| 		defer wg.Done()
 | |
| 		err := w.Run()
 | |
| 		if err != nil {
 | |
| 			logger.Errorf("web run error: %v", err)
 | |
| 		}
 | |
| 	}()
 | |
| 
 | |
| 	wg.Wait()
 | |
| }
 |