Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jacobsa-fuse
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
jacobsa-fuse
Commits
8d1ca91b
Commit
8d1ca91b
authored
Mar 17, 2015
by
Aaron Jacobs
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
AttributeCachingTest.StatRenumberMtimeStat_ViaFileDescriptor
parent
0fe8ed14
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
65 additions
and
0 deletions
+65
-0
samples/cachingfs/caching_fs_test.go
samples/cachingfs/caching_fs_test.go
+65
-0
No files found.
samples/cachingfs/caching_fs_test.go
View file @
8d1ca91b
...
...
@@ -115,6 +115,37 @@ func (t *cachingFSTest) statAll() (foo, dir, bar os.FileInfo) {
return
}
func
(
t
*
cachingFSTest
)
openFiles
()
(
foo
,
dir
,
bar
*
os
.
File
)
{
var
err
error
foo
,
err
=
os
.
Open
(
path
.
Join
(
t
.
dir
,
"foo"
))
AssertEq
(
nil
,
err
)
dir
,
err
=
os
.
Open
(
path
.
Join
(
t
.
dir
,
"dir"
))
AssertEq
(
nil
,
err
)
bar
,
err
=
os
.
Open
(
path
.
Join
(
t
.
dir
,
"bar"
))
AssertEq
(
nil
,
err
)
return
}
func
(
t
*
cachingFSTest
)
statFiles
(
f
,
g
,
h
*
os
.
File
)
(
foo
,
dir
,
bar
os
.
FileInfo
)
{
var
err
error
foo
,
err
=
f
.
Stat
()
AssertEq
(
nil
,
err
)
dir
,
err
=
g
.
Stat
()
AssertEq
(
nil
,
err
)
bar
,
err
=
h
.
Stat
()
AssertEq
(
nil
,
err
)
return
}
func
getInodeID
(
fi
os
.
FileInfo
)
uint64
{
return
fi
.
Sys
()
.
(
*
syscall
.
Stat_t
)
.
Ino
}
...
...
@@ -448,3 +479,37 @@ func (t *AttributeCachingTest) StatRenumberMtimeStat() {
ExpectThat
(
dirAfter
.
ModTime
(),
timeutil
.
TimeEq
(
newMtime
))
ExpectThat
(
barAfter
.
ModTime
(),
timeutil
.
TimeEq
(
newMtime
))
}
func
(
t
*
AttributeCachingTest
)
StatRenumberMtimeStat_ViaFileDescriptor
()
{
newMtime
:=
t
.
initialMtime
.
Add
(
time
.
Second
)
// Open everything, fixing a particular inode number for each.
foo
,
dir
,
bar
:=
t
.
openFiles
()
fooBefore
,
dirBefore
,
barBefore
:=
t
.
statFiles
(
foo
,
dir
,
bar
)
t
.
fs
.
RenumberInodes
()
t
.
fs
.
SetMtime
(
newMtime
)
fooAfter
,
dirAfter
,
barAfter
:=
t
.
statFiles
(
foo
,
dir
,
bar
)
// We should still see the old cached mtime with the old inode ID.
ExpectEq
(
getInodeID
(
fooBefore
),
getInodeID
(
fooAfter
))
ExpectEq
(
getInodeID
(
dirBefore
),
getInodeID
(
dirAfter
))
ExpectEq
(
getInodeID
(
barBefore
),
getInodeID
(
barAfter
))
ExpectThat
(
fooAfter
.
ModTime
(),
timeutil
.
TimeEq
(
fooBefore
.
ModTime
()))
ExpectThat
(
dirAfter
.
ModTime
(),
timeutil
.
TimeEq
(
dirBefore
.
ModTime
()))
ExpectThat
(
barAfter
.
ModTime
(),
timeutil
.
TimeEq
(
barBefore
.
ModTime
()))
// After waiting for the attribute cache to expire, we should see the fresh
// mtime, still with the old inode ID.
time
.
Sleep
(
2
*
t
.
getattrTimeout
)
fooAfter
,
dirAfter
,
barAfter
=
t
.
statAll
()
ExpectEq
(
getInodeID
(
fooBefore
),
getInodeID
(
fooAfter
))
ExpectEq
(
getInodeID
(
dirBefore
),
getInodeID
(
dirAfter
))
ExpectEq
(
getInodeID
(
barBefore
),
getInodeID
(
barAfter
))
ExpectThat
(
fooAfter
.
ModTime
(),
timeutil
.
TimeEq
(
newMtime
))
ExpectThat
(
dirAfter
.
ModTime
(),
timeutil
.
TimeEq
(
newMtime
))
ExpectThat
(
barAfter
.
ModTime
(),
timeutil
.
TimeEq
(
newMtime
))
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment