Fix atime support check for disk cache (#7891)

- add a sleep between Stat operations to
accurately detect atime
master
poornas 5 years ago committed by kannappanr
parent 94f67ad224
commit 20a15567b8
  1. 5
      cmd/disk-cache.go
  2. 17
      cmd/disk-cache_test.go

@ -945,7 +945,10 @@ func checkAtimeSupport(dir string) (err error) {
if err != nil { if err != nil {
return return
} }
if _, err = io.Copy(ioutil.Discard, file); err != io.EOF { // add a sleep to ensure atime change is detected
time.Sleep(10 * time.Millisecond)
if _, err = io.Copy(ioutil.Discard, file); err != nil {
return return
} }

@ -124,17 +124,10 @@ func TestGetCacheFSMaxUse(t *testing.T) {
// test wildcard patterns for excluding entries from cache // test wildcard patterns for excluding entries from cache
func TestCacheExclusion(t *testing.T) { func TestCacheExclusion(t *testing.T) {
fsDirs, err := getRandomDisks(1) cobjects := &cacheObjects{
if err != nil { cache: nil,
t.Fatal(err)
} }
cconfig := CacheConfig{Expiry: 30, Drives: fsDirs}
cobjects, err := newServerCacheObjects(cconfig)
if err != nil {
t.Fatal(err)
}
cobj := cobjects.(*cacheObjects)
GlobalServiceDoneCh <- struct{}{}
testCases := []struct { testCases := []struct {
bucketName string bucketName string
objectName string objectName string
@ -155,8 +148,8 @@ func TestCacheExclusion(t *testing.T) {
} }
for i, testCase := range testCases { for i, testCase := range testCases {
cobj.exclude = []string{testCase.excludePattern} cobjects.exclude = []string{testCase.excludePattern}
if cobj.isCacheExclude(testCase.bucketName, testCase.objectName) != testCase.expectedResult { if cobjects.isCacheExclude(testCase.bucketName, testCase.objectName) != testCase.expectedResult {
t.Fatal("Cache exclusion test failed for case ", i) t.Fatal("Cache exclusion test failed for case ", i)
} }
} }

Loading…
Cancel
Save