util/mock: optimize mock.NewContext (#7411)

This commit is contained in:
Ewan Chou
2018-08-16 14:51:52 +08:00
committed by GitHub
parent bbec68304e
commit 5fbf5ce613
2 changed files with 15 additions and 12 deletions

View File

@ -15,32 +15,28 @@ package variable
// MockGlobalAccessor implements GlobalVarAccessor interface. it's used in tests
type MockGlobalAccessor struct {
vars map[string]string
}
// NewMockGlobalAccessor implements GlobalVarAccessor interface.
func NewMockGlobalAccessor() *MockGlobalAccessor {
m := &MockGlobalAccessor{
vars: make(map[string]string),
}
for name, val := range SysVars {
m.vars[name] = val.Value
}
return m
return new(MockGlobalAccessor)
}
// GetGlobalSysVar implements GlobalVarAccessor.GetGlobalSysVar interface.
func (m *MockGlobalAccessor) GetGlobalSysVar(name string) (string, error) {
return m.vars[name], nil
v, ok := SysVars[name]
if ok {
return v.Value, nil
}
return "", nil
}
// SetGlobalSysVar implements GlobalVarAccessor.SetGlobalSysVar interface.
func (m *MockGlobalAccessor) SetGlobalSysVar(name string, value string) error {
m.vars[name] = value
return nil
panic("not supported")
}
// GetAllSysVars implements GlobalVarAccessor.GetAllSysVars interface.
func (m *MockGlobalAccessor) GetAllSysVars() (map[string]string, error) {
return m.vars, nil
panic("not supported")
}

View File

@ -50,3 +50,10 @@ func (s *testMockSuite) TestContext(c *C) {
v = ctx.Value(contextKey)
c.Assert(v, IsNil)
}
func BenchmarkNewContext(b *testing.B) {
b.ReportAllocs()
for i := 0; i < b.N; i++ {
NewContext()
}
}