mirror of
https://github.com/minio/minio.git
synced 2025-03-30 17:23:42 -04:00
Migrate pkg/quick from mc
This commit is contained in:
parent
e4dc8ee7b4
commit
e9c5a51bc6
@ -45,7 +45,7 @@ type Config interface {
|
|||||||
|
|
||||||
// config - implements quick.Config interface
|
// config - implements quick.Config interface
|
||||||
type config struct {
|
type config struct {
|
||||||
data *interface{}
|
data interface{}
|
||||||
lock *sync.RWMutex
|
lock *sync.RWMutex
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,14 +76,14 @@ func New(data interface{}) (Config, *probe.Error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
d := new(config)
|
d := new(config)
|
||||||
d.data = &data
|
d.data = data
|
||||||
d.lock = new(sync.RWMutex)
|
d.lock = new(sync.RWMutex)
|
||||||
return d, nil
|
return d, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Version returns the current config file format version
|
// Version returns the current config file format version
|
||||||
func (d config) Version() string {
|
func (d config) Version() string {
|
||||||
st := structs.New(*d.data)
|
st := structs.New(d.data)
|
||||||
|
|
||||||
f, ok := st.FieldOk("Version")
|
f, ok := st.FieldOk("Version")
|
||||||
if !ok {
|
if !ok {
|
||||||
@ -100,7 +100,7 @@ func (d config) Version() string {
|
|||||||
|
|
||||||
// String converts JSON config to printable string
|
// String converts JSON config to printable string
|
||||||
func (d config) String() string {
|
func (d config) String() string {
|
||||||
configBytes, _ := json.MarshalIndent(*d.data, "", "\t")
|
configBytes, _ := json.MarshalIndent(d.data, "", "\t")
|
||||||
return string(configBytes)
|
return string(configBytes)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -128,8 +128,8 @@ func (d config) Save(filename string) *probe.Error {
|
|||||||
|
|
||||||
// Load - loads JSON config from file and merge with currently set values
|
// Load - loads JSON config from file and merge with currently set values
|
||||||
func (d *config) Load(filename string) *probe.Error {
|
func (d *config) Load(filename string) *probe.Error {
|
||||||
(*d).lock.Lock()
|
d.lock.Lock()
|
||||||
defer (*d).lock.Unlock()
|
defer d.lock.Unlock()
|
||||||
|
|
||||||
_, err := os.Stat(filename)
|
_, err := os.Stat(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -145,16 +145,16 @@ func (d *config) Load(filename string) *probe.Error {
|
|||||||
fileData = []byte(strings.Replace(string(fileData), "\r\n", "\n", -1))
|
fileData = []byte(strings.Replace(string(fileData), "\r\n", "\n", -1))
|
||||||
}
|
}
|
||||||
|
|
||||||
err = json.Unmarshal(fileData, (*d).data)
|
err = json.Unmarshal(fileData, d.data)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return probe.NewError(err)
|
return probe.NewError(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := CheckData(*(*d).data); err != nil {
|
if err := CheckData(d.data); err != nil {
|
||||||
return err.Trace()
|
return err.Trace()
|
||||||
}
|
}
|
||||||
|
|
||||||
st := structs.New(*(*d).data)
|
st := structs.New(d.data)
|
||||||
f, ok := st.FieldOk("Version")
|
f, ok := st.FieldOk("Version")
|
||||||
if !ok {
|
if !ok {
|
||||||
return probe.NewError(fmt.Errorf("Argument struct [%s] does not contain field \"Version\".", st.Name()))
|
return probe.NewError(fmt.Errorf("Argument struct [%s] does not contain field \"Version\".", st.Name()))
|
||||||
@ -169,7 +169,7 @@ func (d *config) Load(filename string) *probe.Error {
|
|||||||
|
|
||||||
// Data - grab internal data map for reading
|
// Data - grab internal data map for reading
|
||||||
func (d config) Data() interface{} {
|
func (d config) Data() interface{} {
|
||||||
return *d.data
|
return d.data
|
||||||
}
|
}
|
||||||
|
|
||||||
//Diff - list fields that are in A but not in B
|
//Diff - list fields that are in A but not in B
|
||||||
|
@ -16,13 +16,14 @@
|
|||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package quick
|
package quick_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
. "github.com/minio/minio/internal/gopkg.in/check.v1"
|
. "github.com/minio/minio/internal/gopkg.in/check.v1"
|
||||||
|
"github.com/minio/minio/pkg/quick"
|
||||||
)
|
)
|
||||||
|
|
||||||
func Test(t *testing.T) { TestingT(t) }
|
func Test(t *testing.T) { TestingT(t) }
|
||||||
@ -32,7 +33,7 @@ type MySuite struct{}
|
|||||||
var _ = Suite(&MySuite{})
|
var _ = Suite(&MySuite{})
|
||||||
|
|
||||||
func (s *MySuite) TestCheckData(c *C) {
|
func (s *MySuite) TestCheckData(c *C) {
|
||||||
err := CheckData(nil)
|
err := quick.CheckData(nil)
|
||||||
c.Assert(err, Not(IsNil))
|
c.Assert(err, Not(IsNil))
|
||||||
|
|
||||||
type myStructBad struct {
|
type myStructBad struct {
|
||||||
@ -41,7 +42,7 @@ func (s *MySuite) TestCheckData(c *C) {
|
|||||||
Folders []string
|
Folders []string
|
||||||
}
|
}
|
||||||
saveMeBad := myStructBad{"guest", "nopassword", []string{"Work", "Documents", "Music"}}
|
saveMeBad := myStructBad{"guest", "nopassword", []string{"Work", "Documents", "Music"}}
|
||||||
err = CheckData(&saveMeBad)
|
err = quick.CheckData(&saveMeBad)
|
||||||
c.Assert(err, Not(IsNil))
|
c.Assert(err, Not(IsNil))
|
||||||
|
|
||||||
type myStructGood struct {
|
type myStructGood struct {
|
||||||
@ -52,7 +53,7 @@ func (s *MySuite) TestCheckData(c *C) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
saveMeGood := myStructGood{"1", "guest", "nopassword", []string{"Work", "Documents", "Music"}}
|
saveMeGood := myStructGood{"1", "guest", "nopassword", []string{"Work", "Documents", "Music"}}
|
||||||
err = CheckData(&saveMeGood)
|
err = quick.CheckData(&saveMeGood)
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -65,13 +66,13 @@ func (s *MySuite) TestSaveLoad(c *C) {
|
|||||||
Folders []string
|
Folders []string
|
||||||
}
|
}
|
||||||
saveMe := myStruct{"1", "guest", "nopassword", []string{"Work", "Documents", "Music"}}
|
saveMe := myStruct{"1", "guest", "nopassword", []string{"Work", "Documents", "Music"}}
|
||||||
config, err := New(&saveMe)
|
config, err := quick.New(&saveMe)
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
c.Assert(config, Not(IsNil))
|
c.Assert(config, Not(IsNil))
|
||||||
config.Save("test.json")
|
config.Save("test.json")
|
||||||
|
|
||||||
loadMe := myStruct{Version: "1"}
|
loadMe := myStruct{Version: "1"}
|
||||||
newConfig, err := New(&loadMe)
|
newConfig, err := quick.New(&loadMe)
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
c.Assert(newConfig, Not(IsNil))
|
c.Assert(newConfig, Not(IsNil))
|
||||||
newConfig.Load("test.json")
|
newConfig.Load("test.json")
|
||||||
@ -91,7 +92,7 @@ func (s *MySuite) TestDiff(c *C) {
|
|||||||
Folders []string
|
Folders []string
|
||||||
}
|
}
|
||||||
saveMe := myStruct{"1", "guest", "nopassword", []string{"Work", "Documents", "Music"}}
|
saveMe := myStruct{"1", "guest", "nopassword", []string{"Work", "Documents", "Music"}}
|
||||||
config, err := New(&saveMe)
|
config, err := quick.New(&saveMe)
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
c.Assert(config, Not(IsNil))
|
c.Assert(config, Not(IsNil))
|
||||||
|
|
||||||
@ -103,7 +104,7 @@ func (s *MySuite) TestDiff(c *C) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
mismatch := myNewStruct{"1", "nopassword", []string{"Work", "documents", "Music"}}
|
mismatch := myNewStruct{"1", "nopassword", []string{"Work", "documents", "Music"}}
|
||||||
newConfig, err := New(&mismatch)
|
newConfig, err := quick.New(&mismatch)
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
c.Assert(newConfig, Not(IsNil))
|
c.Assert(newConfig, Not(IsNil))
|
||||||
|
|
||||||
@ -125,12 +126,12 @@ func (s *MySuite) TestDeepDiff(c *C) {
|
|||||||
Folders []string
|
Folders []string
|
||||||
}
|
}
|
||||||
saveMe := myStruct{"1", "guest", "nopassword", []string{"Work", "Documents", "Music"}}
|
saveMe := myStruct{"1", "guest", "nopassword", []string{"Work", "Documents", "Music"}}
|
||||||
config, err := New(&saveMe)
|
config, err := quick.New(&saveMe)
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
c.Assert(config, Not(IsNil))
|
c.Assert(config, Not(IsNil))
|
||||||
|
|
||||||
mismatch := myStruct{"1", "Guest", "nopassword", []string{"Work", "documents", "Music"}}
|
mismatch := myStruct{"1", "Guest", "nopassword", []string{"Work", "documents", "Music"}}
|
||||||
newConfig, err := New(&mismatch)
|
newConfig, err := quick.New(&mismatch)
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
c.Assert(newConfig, Not(IsNil))
|
c.Assert(newConfig, Not(IsNil))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user