forked from yuxh/gearman-go
		
	package's test-case added
This commit is contained in:
		
							parent
							
								
									bcff8f7e0d
								
							
						
					
					
						commit
						7db97fc31d
					
				@ -41,6 +41,7 @@ const (
 | 
			
		||||
	STATUS_RES      = 20
 | 
			
		||||
	SET_CLIENT_ID   = 22
 | 
			
		||||
	CAN_DO_TIMEOUT  = 23
 | 
			
		||||
	ALL_YOURS       = 24
 | 
			
		||||
	WORK_EXCEPTION  = 25
 | 
			
		||||
	WORK_DATA       = 28
 | 
			
		||||
	WORK_WARNING    = 29
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										62
									
								
								worker/inpack_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										62
									
								
								worker/inpack_test.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,62 @@
 | 
			
		||||
package worker
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"testing"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	inpackcases = map[uint32]map[string]string{
 | 
			
		||||
		NOOP: map[string]string{
 | 
			
		||||
			"src": "\x00RES\x00\x00\x00\x06\x00\x00\x00\x00",
 | 
			
		||||
		},
 | 
			
		||||
		NO_JOB: map[string]string{
 | 
			
		||||
			"src": "\x00RES\x00\x00\x00\x0a\x00\x00\x00\x00",
 | 
			
		||||
		},
 | 
			
		||||
		JOB_ASSIGN: map[string]string{
 | 
			
		||||
			"src":    "\x00RES\x00\x00\x00\x0b\x00\x00\x00\x07a\x00b\x00xyz",
 | 
			
		||||
			"handle": "a",
 | 
			
		||||
			"fn":     "b",
 | 
			
		||||
			"data":   "xyz",
 | 
			
		||||
		},
 | 
			
		||||
		JOB_ASSIGN_UNIQ: map[string]string{
 | 
			
		||||
			"src":    "\x00RES\x00\x00\x00\x1F\x00\x00\x00\x09a\x00b\x00c\x00xyz",
 | 
			
		||||
			"handle": "a",
 | 
			
		||||
			"fn":     "b",
 | 
			
		||||
			"uid":    "c",
 | 
			
		||||
			"data":   "xyz",
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestInPack(t *testing.T) {
 | 
			
		||||
	for k, v := range inpackcases {
 | 
			
		||||
		inpack, _, err := decodeInPack([]byte(v["src"]))
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			t.Error(err)
 | 
			
		||||
		}
 | 
			
		||||
		if inpack.dataType != k {
 | 
			
		||||
			t.Errorf("DataType: %d expected, %d got.", k, inpack.dataType)
 | 
			
		||||
		}
 | 
			
		||||
		if handle, ok := v["handle"]; ok {
 | 
			
		||||
			if inpack.handle != handle {
 | 
			
		||||
				t.Errorf("Handle: %s expected, %s got.", handle, inpack.handle)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if fn, ok := v["fn"]; ok {
 | 
			
		||||
			if inpack.fn != fn {
 | 
			
		||||
				t.Errorf("FuncName: %s expected, %s got.", fn, inpack.fn)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if uid, ok := v["uid"]; ok {
 | 
			
		||||
			if inpack.uniqueId != uid {
 | 
			
		||||
				t.Errorf("UID: %s expected, %s got.", uid, inpack.uniqueId)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		if data, ok := v["data"]; ok {
 | 
			
		||||
			if bytes.Compare([]byte(data), inpack.data) != 0 {
 | 
			
		||||
				t.Errorf("UID: %v expected, %v got.", data, inpack.data)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@ -14,7 +14,7 @@ import (
 | 
			
		||||
type outPack struct {
 | 
			
		||||
	dataType uint32
 | 
			
		||||
	data     []byte
 | 
			
		||||
	handle, uniqueId, fn string
 | 
			
		||||
	handle   string
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getOutPack() (outpack *outPack) {
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										83
									
								
								worker/outpack_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								worker/outpack_test.go
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,83 @@
 | 
			
		||||
package worker
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"testing"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	outpackcases = map[uint32]map[string]string{
 | 
			
		||||
		CAN_DO: map[string]string{
 | 
			
		||||
			"src":  "\x00REQ\x00\x00\x00\x01\x00\x00\x00\x01a",
 | 
			
		||||
			"data": "a",
 | 
			
		||||
		},
 | 
			
		||||
		CAN_DO_TIMEOUT: map[string]string{
 | 
			
		||||
			"src":  "\x00REQ\x00\x00\x00\x17\x00\x00\x00\x06a\x00\x00\x00\x00\x01",
 | 
			
		||||
			"data": "a\x00\x00\x00\x00\x01",
 | 
			
		||||
		},
 | 
			
		||||
		CANT_DO: map[string]string{
 | 
			
		||||
			"src":  "\x00REQ\x00\x00\x00\x02\x00\x00\x00\x01a",
 | 
			
		||||
			"data": "a",
 | 
			
		||||
		},
 | 
			
		||||
		RESET_ABILITIES: map[string]string{
 | 
			
		||||
			"src": "\x00REQ\x00\x00\x00\x03\x00\x00\x00\x00",
 | 
			
		||||
		},
 | 
			
		||||
		PRE_SLEEP: map[string]string{
 | 
			
		||||
			"src": "\x00REQ\x00\x00\x00\x04\x00\x00\x00\x00",
 | 
			
		||||
		},
 | 
			
		||||
		GRAB_JOB: map[string]string{
 | 
			
		||||
			"src": "\x00REQ\x00\x00\x00\x09\x00\x00\x00\x00",
 | 
			
		||||
		},
 | 
			
		||||
		GRAB_JOB_UNIQ: map[string]string{
 | 
			
		||||
			"src": "\x00REQ\x00\x00\x00\x1E\x00\x00\x00\x00",
 | 
			
		||||
		},
 | 
			
		||||
		WORK_DATA: map[string]string{
 | 
			
		||||
			"src":  "\x00REQ\x00\x00\x00\x1C\x00\x00\x00\x03a\x00b",
 | 
			
		||||
			"data": "a\x00b",
 | 
			
		||||
		},
 | 
			
		||||
		WORK_WARNING: map[string]string{
 | 
			
		||||
			"src":  "\x00REQ\x00\x00\x00\x1D\x00\x00\x00\x03a\x00b",
 | 
			
		||||
			"data": "a\x00b",
 | 
			
		||||
		},
 | 
			
		||||
		WORK_STATUS: map[string]string{
 | 
			
		||||
			"src":  "\x00REQ\x00\x00\x00\x0C\x00\x00\x00\x08a\x0050\x00100",
 | 
			
		||||
			"data": "a\x0050\x00100",
 | 
			
		||||
		},
 | 
			
		||||
		WORK_COMPLETE: map[string]string{
 | 
			
		||||
			"src":  "\x00REQ\x00\x00\x00\x0D\x00\x00\x00\x03a\x00b",
 | 
			
		||||
			"data": "a\x00b",
 | 
			
		||||
		},
 | 
			
		||||
		WORK_FAIL: map[string]string{
 | 
			
		||||
			"src":    "\x00REQ\x00\x00\x00\x0E\x00\x00\x00\x01a",
 | 
			
		||||
			"handle": "a",
 | 
			
		||||
		},
 | 
			
		||||
		WORK_EXCEPTION: map[string]string{
 | 
			
		||||
			"src":  "\x00REQ\x00\x00\x00\x19\x00\x00\x00\x03a\x00b",
 | 
			
		||||
			"data": "a\x00b",
 | 
			
		||||
		},
 | 
			
		||||
		SET_CLIENT_ID: map[string]string{
 | 
			
		||||
			"src":  "\x00REQ\x00\x00\x00\x16\x00\x00\x00\x01a",
 | 
			
		||||
			"data": "a",
 | 
			
		||||
		},
 | 
			
		||||
		ALL_YOURS: map[string]string{
 | 
			
		||||
			"src": "\x00REQ\x00\x00\x00\x18\x00\x00\x00\x00",
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestOutPack(t *testing.T) {
 | 
			
		||||
	for k, v := range outpackcases {
 | 
			
		||||
		outpack := getOutPack()
 | 
			
		||||
		outpack.dataType = k
 | 
			
		||||
		if handle, ok := v["handle"]; ok {
 | 
			
		||||
			outpack.handle = handle
 | 
			
		||||
		}
 | 
			
		||||
		if data, ok := v["data"]; ok {
 | 
			
		||||
			outpack.data = []byte(data)
 | 
			
		||||
		}
 | 
			
		||||
		data := outpack.Encode()
 | 
			
		||||
		if bytes.Compare([]byte(v["src"]), data) != 0 {
 | 
			
		||||
			t.Errorf("%d: %X expected, %X got.", k, v["src"], data)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user