utee

package module
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 2, 2019 License: MIT Imports: 31 Imported by: 114

README

utee

utilities for golang

Documentation

Index

Constants

View Source
const (
	MAX_HTTP_CLIENT_CONCURRENT = 1000

	ContentTypeForm = "application/x-www-form-urlencoded"
	ContentTypeJson = "application/json; charset=utf-8"
)

Variables

View Source
var (
	PlainMd5  = Md5Str("")
	PlainSha1 = Sha1Str("")
)
View Source
var (
	ErrEmptyHeaderName = errors.New("header name must not be empty")
)
View Source
var ErrFull = errors.New("queue is full")

Functions

func Chk

func Chk(err error)

func CleanURI

func CleanURI(s string) string

func DeleteMap

func DeleteMap(m map[string]interface{}, ks ...string)

func HmacSha256

func HmacSha256(s string, key string) string

func HttpGet

func HttpGet(getUrl string, credential ...string) ([]byte, error)

func HttpGet2

func HttpGet2(getUrl string, contentType string, opt *HttpOpt) ([]byte, error)

func HttpPost

func HttpPost(postUrl string, q url.Values, credential ...string) ([]byte, error)

func HttpPost2

func HttpPost2(postUrl string, contentType string, body io.Reader, opt *HttpOpt) ([]byte, error)

func IntToInf

func IntToInf(src []int) []interface{}

func IsPemExpire

func IsPemExpire(b []byte) (bool, error)

func Log

func Log(err error, prefix ...string)

func Md5

func Md5(b []byte) []byte

func Md5Str

func Md5Str(salt string) func(string) string

func Millis

func Millis(fmt string, timeStr string) (int64, error)

func ParseAddr

func ParseAddr(s string) (string, int, error)

func PrintJson

func PrintJson(any ...interface{})

func SendMail

func SendMail(user, password, host, to, subject, body, mailtype string) error

func Sha1Str

func Sha1Str(salt string) func(string) string

func Sha256Str

func Sha256Str(salt string) func(string) string

func Shuffle

func Shuffle(src []string) []string

func SplitSlice

func SplitSlice(a []string, n int) [][]string

split a into several parts, no more than n

func StrToInf

func StrToInf(src []string) []interface{}

func Tick

func Tick(t ...time.Time) int64

func TickHour

func TickHour() int64

func TickSec

func TickSec() int64

func Truncate

func Truncate(s string, n int) string

Truncate truncate string

func Unique added in v1.1.1

func Unique(data []interface{}) []interface{}

func UniqueInt added in v1.1.1

func UniqueInt(data []int) []int

func UniqueStr added in v1.1.1

func UniqueStr(data []string) []string

Types

type Ast

type Ast struct {
	Path   string      //jsonq path example "data.items.0.pre" , see github.com/jmoiron/jsonq for detail
	Result interface{} //expected result
	Tp     string      //result type, support "I"(int), "S"(string) , "B"(bool) , "E"(regexp match)
}

Json Assert Object

type BasicAuth

type BasicAuth struct {
	Username string
	Password string
}

type HttpOpt

type HttpOpt struct {
	Headers   map[string]string
	BasicAuth *BasicAuth
}

type HttpTestCase

type HttpTestCase struct {
	Name          string                               //desc
	EndPoint      string                               //request path, no query included
	Method        string                               //support "P" (POST), "G"(GET)
	BasicAuthFunc func(*HttpTestCase) (string, string) //support nil (no auth) / func
	ContentType   string                               //support "", "J" (application/json; charset=utf-8), "F"(application/x-www-form-urlencoded)
	Body          interface{}                          //support nil, string, utee.J , url.Values(auto encode) , io.Reader
	Status        int                                  //http Status Code
	Res           interface{}                          //support nil (no assert action), string, utee.J, utee.Ast (Ast assert against response json)
}

func (HttpTestCase) BuildRequest

func (p HttpTestCase) BuildRequest() *http.Request

func (HttpTestCase) Exec

func (p HttpTestCase) Exec(handler http.Handler, t *testing.T)

func (HttpTestCase) GetBody

func (p HttpTestCase) GetBody() io.Reader

func (HttpTestCase) GetContentType

func (p HttpTestCase) GetContentType() string

func (HttpTestCase) GetEndPoint

func (p HttpTestCase) GetEndPoint() string

func (HttpTestCase) GetMethod

func (p HttpTestCase) GetMethod() string

type HttpTestSuite

type HttpTestSuite struct {
	Name     string
	CaseList []HttpTestCase
}

func (HttpTestSuite) Exec

func (p HttpTestSuite) Exec(handler http.Handler, t *testing.T)

type J

type J map[string]interface{}

type MemQueue

type MemQueue chan interface{}

MemQueue memory queue

func NewLeakMemQueue

func NewLeakMemQueue(cap, concurrent int, worker func(interface{})) MemQueue

NewLeakMemQueue create memory queue, auto-leak element concurrently to worker

func NewMemQueue

func NewMemQueue(cap int) MemQueue

NewMemQueue create memory queue

func (MemQueue) Cap

func (p MemQueue) Cap() int

Cap queue capacity

func (MemQueue) Deq

func (p MemQueue) Deq() interface{}

Deq

func (MemQueue) DeqN

func (p MemQueue) DeqN(n int) []interface{}

DeqN dequeue less than n in a batch

func (MemQueue) Enq

func (p MemQueue) Enq(data interface{}) error

Enq enqueue, return error if queue is full

func (MemQueue) EnqBlocking

func (p MemQueue) EnqBlocking(data interface{})

EnqBlocking enqueue, block if queue is full

func (MemQueue) Len

func (p MemQueue) Len() int

Len queue length

type PerfLog

type PerfLog struct {
	sync.Mutex
	// contains filtered or unexported fields
}

性能日志

func NewPerfLog

func NewPerfLog(maxMs uint32, logger *logrus.Entry) *PerfLog

生成PerfLog, maxMs 输出阈值,单位为毫秒

func (*PerfLog) Done

func (p *PerfLog) Done()

func (*PerfLog) Tick

func (p *PerfLog) Tick(label interface{})

type SyncMap

type SyncMap struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

func (*SyncMap) Clear

func (p *SyncMap) Clear()

func (*SyncMap) Get

func (p *SyncMap) Get(key interface{}) (interface{}, bool)

func (*SyncMap) Keys

func (p *SyncMap) Keys() []interface{}

func (*SyncMap) Len

func (p *SyncMap) Len() int

func (*SyncMap) Put

func (p *SyncMap) Put(key, val interface{})

func (*SyncMap) Remove

func (p *SyncMap) Remove(key interface{})

type Throttle

type Throttle struct {
	// contains filtered or unexported fields
}

func NewThrottle

func NewThrottle(max int) *Throttle

func (*Throttle) Acquire

func (p *Throttle) Acquire()

func (*Throttle) Available

func (p *Throttle) Available() int

func (*Throttle) Current

func (p *Throttle) Current() int

func (*Throttle) Release

func (p *Throttle) Release()

type TimerCache

type TimerCache struct {
	// contains filtered or unexported fields
}

func NewTimerCache

func NewTimerCache(ttl int, expireCb func(key, value interface{})) *TimerCache

ttl in second expireCb, expire callback

func (*TimerCache) Get

func (p *TimerCache) Get(key interface{}) interface{}

func (*TimerCache) Keys

func (p *TimerCache) Keys() []interface{}

func (*TimerCache) Len

func (p *TimerCache) Len() int

func (*TimerCache) Put

func (p *TimerCache) Put(key, val interface{}) bool

func (*TimerCache) Remove

func (p *TimerCache) Remove(key interface{}) interface{}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL