MCPcopy
hub / github.com/go-git/go-git / TestIssue55

Function TestIssue55

storage/filesystem/dotgit/dotgit_test.go:1127–1183  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1125}
1126
1127func TestIssue55(t *testing.T) {
1128 t.Parallel()
1129
1130 writeObject := func(fs billy.Filesystem) {
1131 t.Helper()
1132
1133 dir := New(fs)
1134 err := dir.Initialize()
1135 require.NoError(t, err)
1136
1137 w, err := dir.NewObject()
1138 require.NoError(t, err)
1139
1140 err = w.WriteHeader(plumbing.BlobObject, 14)
1141 require.NoError(t, err)
1142 n, err := w.Write([]byte("this is a test"))
1143 require.NoError(t, err)
1144 assert.Equal(t, 14, n)
1145
1146 assert.Equal(t, "a8a940627d132695a9769df883f85992f0ff4a43", w.Hash().String())
1147
1148 err = w.Close()
1149 require.NoError(t, err)
1150 }
1151
1152 for _, tc := range []struct {
1153 name string
1154 fs billy.Filesystem
1155 }{
1156 {"BoundOS", osfs.New(t.TempDir(), osfs.WithBoundOS())},
1157 {"ChrootOS", osfs.New(t.TempDir(), osfs.WithChrootOS())},
1158 } {
1159 t.Run(tc.name, func(t *testing.T) {
1160 t.Parallel()
1161 path := filepath.Join("objects", "a8", "a940627d132695a9769df883f85992f0ff4a43")
1162
1163 writeObject(tc.fs)
1164 i, err := tc.fs.Stat(path)
1165 require.NoError(t, err)
1166 assert.Equal(t, int64(34), i.Size())
1167
1168 ro, err := isReadOnly(tc.fs, path)
1169 require.NoError(t, err)
1170 assert.True(t, ro, "file %q is not read-only", path)
1171
1172 // Recreate the same object.
1173 writeObject(tc.fs)
1174 i, err = tc.fs.Stat(path)
1175 require.NoError(t, err)
1176 assert.Equal(t, int64(34), i.Size())
1177
1178 ro, err = isReadOnly(tc.fs, path)
1179 require.NoError(t, err)
1180 assert.True(t, ro, "file %q is not read-only", path)
1181 })
1182 }
1183}

Callers

nothing calls this directly

Calls 12

InitializeMethod · 0.80
NewObjectMethod · 0.80
WriteHeaderMethod · 0.80
JoinMethod · 0.80
NewFunction · 0.70
isReadOnlyFunction · 0.70
StringMethod · 0.65
HashMethod · 0.65
CloseMethod · 0.65
StatMethod · 0.65
SizeMethod · 0.65
WriteMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…