mirror of
				https://github.com/coredns/coredns.git
				synced 2025-11-03 18:53:13 -05:00 
			
		
		
		
	, so that `make test` will pass by default. Also fixed several ineffassign and golint issues. Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package out
 | 
						|
 | 
						|
import (
 | 
						|
	"net"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
func sendOneTCP(tcp *TCP) error {
 | 
						|
	if _, err := tcp.Write([]byte("frame")); err != nil {
 | 
						|
		return err
 | 
						|
	}
 | 
						|
	if err := tcp.Flush(); err != nil {
 | 
						|
		return err
 | 
						|
	}
 | 
						|
	return nil
 | 
						|
}
 | 
						|
func TestTCP(t *testing.T) {
 | 
						|
	tcp := NewTCP("localhost:14000")
 | 
						|
 | 
						|
	if err := sendOneTCP(tcp); err == nil {
 | 
						|
		t.Fatal("Not listening but no error.")
 | 
						|
		return
 | 
						|
	}
 | 
						|
 | 
						|
	l, err := net.Listen("tcp", "localhost:14000")
 | 
						|
	if err != nil {
 | 
						|
		t.Fatal(err)
 | 
						|
		return
 | 
						|
	}
 | 
						|
 | 
						|
	wait := make(chan bool)
 | 
						|
	go func() {
 | 
						|
		acceptOne(t, l)
 | 
						|
		wait <- true
 | 
						|
	}()
 | 
						|
 | 
						|
	if err := sendOneTCP(tcp); err != nil {
 | 
						|
		t.Fatalf("send one: %s", err)
 | 
						|
		return
 | 
						|
	}
 | 
						|
 | 
						|
	<-wait
 | 
						|
 | 
						|
	// TODO: When the server isn't responding according to the framestream protocol
 | 
						|
	// the thread is blocked.
 | 
						|
	/*
 | 
						|
		if err := sendOneTCP(tcp); err == nil {
 | 
						|
			panic("must fail")
 | 
						|
		}
 | 
						|
	*/
 | 
						|
 | 
						|
	go func() {
 | 
						|
		acceptOne(t, l)
 | 
						|
		wait <- true
 | 
						|
	}()
 | 
						|
 | 
						|
	if err := sendOneTCP(tcp); err != nil {
 | 
						|
		t.Fatalf("send one: %s", err)
 | 
						|
		return
 | 
						|
	}
 | 
						|
 | 
						|
	<-wait
 | 
						|
	if err := l.Close(); err != nil {
 | 
						|
		t.Error(err)
 | 
						|
	}
 | 
						|
}
 |