github.com/qiuhoude/go-web@v0.0.0-20220223060959-ab545e78f20d/prepare/08_file/demo/demo_test.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "io/fs" 6 "os" 7 "regexp" 8 "strconv" 9 "strings" 10 "testing" 11 "text/template" 12 "time" 13 ) 14 15 func TestRm(t *testing.T) { 16 os.Chdir("ver_1.6.22.80") 17 fn := "ver_1.6.22.80.zip" 18 if _, err := os.Stat(fn); err == nil { 19 os.Remove(fn) 20 } 21 } 22 23 func TestFileName(t *testing.T) { 24 dir := "ver_1.6.22.80" 25 zipFile := "ver_1.6.22.80.zip" 26 os.Chdir(dir) 27 listFile := listDir("./", func(f fs.FileInfo) bool { 28 if f.IsDir() { 29 return false 30 } 31 if strings.HasSuffix(f.Name(), "cache.manifest") || f.Name() == zipFile { 32 return false 33 } 34 return true 35 }) 36 t.Log(len(listFile)) 37 //for _, fName := range listFile { 38 // t.Log(fName) 39 //} 40 41 compressZip(zipFile, listFile...) 42 md5Str, sz, err := hashFileMd5AndSize(zipFile) 43 if err != nil { 44 t.Error(err) 45 } 46 t.Log(md5Str, sz) 47 48 } 49 50 func TestHashFileMd5(t *testing.T) { 51 52 md5Str, sz, err := hashFileMd5AndSize("./ver_1.6.22.80.zip") 53 if err != nil { 54 t.Error(err) 55 } 56 t.Log(md5Str, sz) 57 } 58 59 //func TestLuaParse(t *testing.T) { 60 // L := lua.NewState() 61 // defer L.Close() 62 // if err := L.DoFile("version.manifest"); err != nil { 63 // t.Error(err) 64 // } 65 // 66 // lv := L.Get(-1) 67 // if tbl, ok := lv.(*lua.LTable); ok { 68 // // lv is LTable 69 // //tbl.ForEach(tableCb 70 // fmt.Println(tbl.RawGetString("updateCode").String()) 71 // //stageTbl := tbl.RawGetString("stage") 72 // } 73 //} 74 // 75 //func tableCb(k, val lua.LValue) { 76 // if tab, ok := val.(*lua.LTable); ok { 77 // tab.ForEach(tableCb) 78 // } else { 79 // fmt.Println(k, val) 80 // } 81 //} 82 83 func TestReadLine(t *testing.T) { 84 // (\w+)\s*=\s*"([\w|_|\.|\d|]+)" 85 re := regexp.MustCompile(`(\w+)\s*=\s*"([\w|_|\.|\d|]+)"`) 86 err := readFileLine("version.manifest", func(line string) { 87 submatchArr := re.FindAllStringSubmatch(line, -1) 88 if len(submatchArr) > 0 { 89 t.Logf("%v", submatchArr) 90 } 91 }) 92 if err != nil { 93 t.Fatal(err) 94 } 95 } 96 97 func TestReadVersionManifest(t *testing.T) { 98 v, err := readVersionManifest("version.manifest") 99 if err != nil { 100 t.Fatal(err) 101 } 102 v.UpdateCode = "2021091002" 103 luaTemplate := template.Must(template.New("").Parse(` 104 local m={ 105 updateCode = "{{.UpdateCode}}", 106 stage={ 107 {{- range .Stage }} 108 {{"\t\t"}}{name="{{.Name}}",updateCode="{{.UpdateCode}}",code="{{.Code}}",size="{{.Size}}}"}, 109 {{- end }} 110 } 111 } 112 return m 113 `)) 114 err = luaTemplate.Execute(os.Stdout, v) 115 if err != nil { 116 t.Fatal(err) 117 } 118 } 119 120 func TestCode(t *testing.T) { 121 code := "2021102501" 122 sz := len(code) 123 dateStr := string(code[:sz-2]) 124 vStr := string(code[sz-2:]) 125 i, err := strconv.Atoi(vStr) 126 if err != nil { 127 t.Error(err) 128 } 129 i++ 130 now := time.Now() 131 dateStr = now.Format("20060102") 132 newcode := fmt.Sprintf("%s%02d", dateStr, i) 133 t.Logf("date:%s version:%s newVersion:%s", dateStr, vStr, newcode) 134 var ssz int64 = 100000 135 t.Log(strconv.FormatInt(ssz, 10)) 136 137 }