Add test for writable timestamp functionality. Change-Id: I7fb3ae8c5e2819eb2e674203bf6c28c4bd9810e8
diff --git a/fs/gitilesfs_test.go b/fs/gitilesfs_test.go index 1deadf0..78f75ea 100644 --- a/fs/gitilesfs_test.go +++ b/fs/gitilesfs_test.go
@@ -356,6 +356,41 @@ } } +func TestGitilesFSTimeStamps(t *testing.T) { + fix, err := newTestFixture() + if err != nil { + t.Fatal("newTestFixture", err) + } + defer fix.cleanup() + + repoService := fix.service.NewRepoService("platform/build/kati") + treeResp, err := repoService.GetTree("ce34badf691d36e8048b63f89d1a86ee5fa4325c", "", true) + if err != nil { + t.Fatal("Tree:", err) + } + + fs := NewGitilesRoot(fix.cache, treeResp, repoService, GitilesOptions{}) + if err := fix.mount(fs); err != nil { + t.Fatal("mount", err) + } + + fn := filepath.Join(fix.mntDir, "testcase", "addprefix.mk") + + n := time.Now() + if err := os.Chtimes(fn, n, n); err != nil { + t.Errorf("Chtimes: %v", err) + } + + after, err := os.Lstat(fn) + if err != nil { + t.Fatalf("Lstat(%q): %v", fn, err) + } + + if !n.Equal(after.ModTime()) { + t.Errorf("mod time did not change") + } +} + func TestGitilesFSMultiFetch(t *testing.T) { fix, err := newTestFixture() if err != nil {