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
 | 
						STATUS_RES      = 20
 | 
				
			||||||
	SET_CLIENT_ID   = 22
 | 
						SET_CLIENT_ID   = 22
 | 
				
			||||||
	CAN_DO_TIMEOUT  = 23
 | 
						CAN_DO_TIMEOUT  = 23
 | 
				
			||||||
 | 
						ALL_YOURS       = 24
 | 
				
			||||||
	WORK_EXCEPTION  = 25
 | 
						WORK_EXCEPTION  = 25
 | 
				
			||||||
	WORK_DATA       = 28
 | 
						WORK_DATA       = 28
 | 
				
			||||||
	WORK_WARNING    = 29
 | 
						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)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -12,9 +12,9 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
// Worker side job
 | 
					// Worker side job
 | 
				
			||||||
type outPack struct {
 | 
					type outPack struct {
 | 
				
			||||||
	dataType             uint32
 | 
						dataType uint32
 | 
				
			||||||
	data                 []byte
 | 
						data     []byte
 | 
				
			||||||
	handle, uniqueId, fn string
 | 
						handle   string
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func getOutPack() (outpack *outPack) {
 | 
					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