mirror of
https://github.com/golang/go
synced 2024-11-18 15:44:41 -07:00
ac136b6c2d
The directory slice gets created first from newDirTree and then gets appended again after reading from the dirchs channel. Hence we need to sort the slice after all the entries are added. Fixes golang/go#24601 Change-Id: I9282e8643a4448b2c1c84495b7642610f6c56d50 Reviewed-on: https://go-review.googlesource.com/103955 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Kevin Burke <kev@inburke.com> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
41 lines
879 B
Go
41 lines
879 B
Go
// Copyright 2018 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package godoc
|
|
|
|
import (
|
|
"runtime"
|
|
"sort"
|
|
"testing"
|
|
|
|
"golang.org/x/tools/godoc/vfs"
|
|
"golang.org/x/tools/godoc/vfs/gatefs"
|
|
)
|
|
|
|
func TestNewDirTree(t *testing.T) {
|
|
fsGate := make(chan bool, 20)
|
|
rootfs := gatefs.New(vfs.OS(runtime.GOROOT()), fsGate)
|
|
fs := vfs.NameSpace{}
|
|
fs.Bind("/", rootfs, "/", vfs.BindReplace)
|
|
|
|
c := NewCorpus(fs)
|
|
// 3 levels deep is enough for testing
|
|
dir := c.newDirectory("/", 3)
|
|
|
|
processDir(t, dir)
|
|
}
|
|
|
|
func processDir(t *testing.T, dir *Directory) {
|
|
var list []string
|
|
for _, d := range dir.Dirs {
|
|
list = append(list, d.Name)
|
|
// recursively process the lower level
|
|
processDir(t, d)
|
|
}
|
|
|
|
if sort.StringsAreSorted(list) == false {
|
|
t.Errorf("list: %v is not sorted\n", list)
|
|
}
|
|
}
|