Compare commits
1
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a179fbaa9c |
@@ -752,8 +752,9 @@ func TestWalkPassesOverRemovedPaths(t *testing.T) {
|
||||
|
||||
// TestScanWarnsAboutUnreadablePaths checks that a permission error is
|
||||
// still warned about and counted as skipped, unlike a removed path. The
|
||||
// walk reaches an unreadable directory, and a file in a directory that
|
||||
// can be read but not searched. Another such file is an operand.
|
||||
// walk reaches an unreadable directory. It also reaches a file and a
|
||||
// subdirectory in a directory that can be read but not searched. Another
|
||||
// such file is an operand.
|
||||
//
|
||||
//nolint:paralleltest // captureStderr replaces the process-wide os.Stderr
|
||||
func TestScanWarnsAboutUnreadablePaths(t *testing.T) {
|
||||
@@ -765,6 +766,7 @@ func TestScanWarnsAboutUnreadablePaths(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
tree := filepath.Join(dir, "tree")
|
||||
walked := writeFile(t, tree, "unsearchable/f", []byte("x"))
|
||||
subdir := filepath.Join(filepath.Dir(walked), "d")
|
||||
operand := writeFile(t, dir, "unsearchable/f", []byte("y"))
|
||||
unreadable := filepath.Join(tree, "unreadable")
|
||||
|
||||
@@ -773,6 +775,11 @@ func TestScanWarnsAboutUnreadablePaths(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
err = os.Mkdir(subdir, 0o750)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
modes := map[string]fs.FileMode{
|
||||
unreadable: 0,
|
||||
filepath.Dir(walked): 0o400,
|
||||
@@ -793,14 +800,15 @@ func TestScanWarnsAboutUnreadablePaths(t *testing.T) {
|
||||
}
|
||||
|
||||
st := syncTree(t, openTestDB(t), tree, operand)
|
||||
if st != (scanStats{skipped: 3}) {
|
||||
t.Errorf("stats = %+v, want 3 skipped and nothing else", st)
|
||||
if st != (scanStats{skipped: 4}) {
|
||||
t.Errorf("stats = %+v, want 4 skipped and nothing else", st)
|
||||
}
|
||||
|
||||
got := stderr()
|
||||
for _, warning := range []string{
|
||||
"scan: skipped " + unreadable + " (permission denied)\n",
|
||||
"scan: skipped " + walked + " (permission denied)\n",
|
||||
"scan: skipped " + subdir + " (permission denied)\n",
|
||||
"scan: skipped " + operand + " (permission denied)\n",
|
||||
} {
|
||||
if !strings.Contains(got, warning) {
|
||||
|
||||
Reference in new issue
Block a user