package sysconf import ( "fmt" "testing" ) func Test_SliceIn(t *testing.T) { slice := []string{"ok", "11", "22"} fmt.Println(SliceIn(slice, "ok")) fmt.Println(SliceIn(slice, []rune("22"))) fmt.Println(SliceIn(slice, "342423r")) fmt.Println(SliceIn(slice, 444)) } func Test_Parse(t *testing.T) { data := ` 1.2.3.4 'ok.com' #2.3.4.5 ppp.eor 2.3.4.5 'pp.com' 5.6.7.8 'ok.com' ` cfg := new(SysConf) cfg.SegStart = "[" cfg.SegEnd = "]" cfg.ValueFlag = "'" cfg.EqualFlag = " " //cfg.CommentCR = true cfg.CommentFlag = []string{"#"} cfg.EscapeFlag = "\\" cfg.HaveSegMent = false cfg.segmap = make(map[string]int64) fmt.Println(cfg.Parse([]byte(data))) cfg.Reverse() cfg.Data[0].Delete(`pp.com`) //fmt.Println(cfg.Data[0].Comment) fmt.Println(string(cfg.Build())) } type slicetest struct { A string `seg:"s" key:"a"` B string `seg:"a" key:"b"` } type testme struct { Love slicetest `seg:"love"` Star slicetest `seg:"star"` } func Test_Marshal(t *testing.T) { var info string =` [love] a=abc b=123 [star] a=456 b=789 ` var tmp testme ini:=NewIni() ini.Parse([]byte(info)) ini.Unmarshal(&tmp) fmt.Printf("%+v\n",tmp) b,_:=ini.Marshal(tmp) fmt.Println(string(b)) }