fix small Read() big rate for slow.Reader
This commit is contained in:
@@ -11,9 +11,23 @@ import (
|
||||
"os"
|
||||
"path"
|
||||
"show-rss/src/slow"
|
||||
"strconv"
|
||||
"golang.org/x/time/rate"
|
||||
"time"
|
||||
)
|
||||
|
||||
var EnvCksumBPS = func() int {
|
||||
s := os.Getenv("CKSUM_BPS")
|
||||
if s == "" {
|
||||
return 50_000_000
|
||||
}
|
||||
n, err := strconv.Atoi(s)
|
||||
if err != nil || n < 1 {
|
||||
panic(err)
|
||||
}
|
||||
return n
|
||||
}()
|
||||
|
||||
func One(ctx context.Context, p string) error {
|
||||
shortp := path.Join("...", path.Base(path.Dir(p)), path.Base(p))
|
||||
|
||||
@@ -86,6 +100,6 @@ func Cksum(ctx context.Context, p string) (string, error) {
|
||||
defer f.Close()
|
||||
|
||||
hasher := md5.New()
|
||||
_, err = io.Copy(hasher, slow.NewReader(ctx, 50_000_000, f))
|
||||
_, err = io.Copy(hasher, slow.NewReader(ctx, rate.Limit(EnvCksumBPS), f))
|
||||
return base64.StdEncoding.EncodeToString(hasher.Sum(nil)), err
|
||||
}
|
||||
|
||||
@@ -17,20 +17,24 @@ func TestOne(t *testing.T) {
|
||||
p := path.Join(d, "f.mkv")
|
||||
os.WriteFile(p, b, os.ModePerm)
|
||||
|
||||
t.Logf("initial cksum...")
|
||||
cksum, _ := asses.Cksum(context.Background(), p)
|
||||
|
||||
t.Logf("one && one...")
|
||||
if err := asses.One(ctx, p); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if err := asses.One(ctx, p); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
t.Logf("test -f...")
|
||||
if _, err := os.Stat(p); err != nil {
|
||||
t.Fatalf("lost original mkv: %v", err)
|
||||
} else if _, err := os.Stat(path.Join(d, "f.srt")); err != nil {
|
||||
t.Fatalf("no new srt: %v", err)
|
||||
}
|
||||
|
||||
t.Logf("final cksum...")
|
||||
newCksum, _ := asses.Cksum(context.Background(), p)
|
||||
if cksum == newCksum {
|
||||
t.Fatalf("cksum unchanged")
|
||||
|
||||
Reference in New Issue
Block a user