MCPcopy
hub / github.com/git-lfs/git-lfs / fillFile

Function fillFile

tools/util_windows_test.go:72–111  ·  view source on GitHub ↗
(target *os.File, size int64)

Source from the content-addressed store, hash-verified

70}
71
72func fillFile(target *os.File, size int64) (hash string, err error) {
73 str := make([]byte, 1024)
74 for i := 0; i < 1023; i++ {
75 str[i] = fmt.Sprintf("%x", i%16)[0]
76 }
77 str[1023] = '\n'
78
79 for i := int64(0); i < size; i += 1024 {
80 _, err := target.Write(str)
81 if err != nil {
82 panic(err)
83 }
84 }
85
86 err = target.Truncate(size)
87 if err != nil {
88 return "", err
89 }
90
91 err = target.Sync()
92 if err != nil {
93 return "", err
94 }
95
96 _, err = target.Seek(0, io.SeekStart)
97 if err != nil {
98 return "", err
99 }
100
101 sha := sha256.New()
102 copySize, err := io.Copy(sha, target)
103 if err != nil {
104 return "", err
105 }
106 if size != copySize {
107 return "", errors.New("size mismatch")
108 }
109
110 return hex.EncodeToString(sha.Sum(nil)), nil
111}

Callers 1

TestCloneFileFunction · 0.85

Calls 3

NewFunction · 0.92
SeekMethod · 0.80
WriteMethod · 0.45

Tested by

no test coverage detected