diff options
| author | Ian Lance Taylor <iant@golang.org> | 2021-01-27 17:55:50 -0800 |
|---|---|---|
| committer | Ian Lance Taylor <iant@golang.org> | 2021-01-29 11:04:55 -0800 |
| commit | 726b7aa004d6885388a76521222602b8552a41ee (patch) | |
| tree | 5179037ef840a43dcea0f3be4e07dbcbcfcb2c4a /libgo/go/embed | |
| parent | 91a95ad2ae0e0f2fa953fafe55ff2ec32c8277d5 (diff) | |
| download | gcc-726b7aa004d6885388a76521222602b8552a41ee.zip gcc-726b7aa004d6885388a76521222602b8552a41ee.tar.gz gcc-726b7aa004d6885388a76521222602b8552a41ee.tar.bz2 | |
libgo: update to Go1.16rc1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/287493
Diffstat (limited to 'libgo/go/embed')
| -rw-r--r-- | libgo/go/embed/embed.go | 6 | ||||
| -rw-r--r-- | libgo/go/embed/internal/embedtest/embed_test.go | 49 | ||||
| -rw-r--r-- | libgo/go/embed/internal/embedtest/embedx_test.go | 14 |
3 files changed, 34 insertions, 35 deletions
diff --git a/libgo/go/embed/embed.go b/libgo/go/embed/embed.go index 29e0adf..cc6855e 100644 --- a/libgo/go/embed/embed.go +++ b/libgo/go/embed/embed.go @@ -244,6 +244,9 @@ func (f FS) lookup(name string) *file { if name == "." { return dotFile } + if f.files == nil { + return nil + } // Binary search to find where name would be in the list, // and then check if name is at that position. @@ -261,6 +264,9 @@ func (f FS) lookup(name string) *file { // readDir returns the list of files corresponding to the directory dir. func (f FS) readDir(dir string) []file { + if f.files == nil { + return nil + } // Binary search to find where dir starts and ends in the list // and then return that slice of the list. files := *f.files diff --git a/libgo/go/embed/internal/embedtest/embed_test.go b/libgo/go/embed/internal/embedtest/embed_test.go index c6a7bea..43ae5c7 100644 --- a/libgo/go/embed/internal/embedtest/embed_test.go +++ b/libgo/go/embed/internal/embedtest/embed_test.go @@ -73,24 +73,11 @@ func TestGlobal(t *testing.T) { testString(t, string(glass), "glass", "I can eat glass and it doesn't hurt me.\n") } -func TestLocal(t *testing.T) { - //go:embed testdata/k*.txt - var local embed.FS - testFiles(t, local, "testdata/ken.txt", "If a program is too slow, it must have a loop.\n") - - //go:embed testdata/k*.txt - var s string - testString(t, s, "local variable s", "If a program is too slow, it must have a loop.\n") - - //go:embed testdata/h*.txt - var b []byte - testString(t, string(b), "local variable b", "hello, world\n") -} +//go:embed testdata +var testDirAll embed.FS func TestDir(t *testing.T) { - //go:embed testdata - var all embed.FS - + all := testDirAll testFiles(t, all, "testdata/hello.txt", "hello, world\n") testFiles(t, all, "testdata/i/i18n.txt", "internationalization\n") testFiles(t, all, "testdata/i/j/k/k8s.txt", "kubernetes\n") @@ -102,12 +89,15 @@ func TestDir(t *testing.T) { testDir(t, all, "testdata/i/j/k", "k8s.txt") } -func TestHidden(t *testing.T) { - //go:embed testdata - var dir embed.FS +//go:embed testdata +var testHiddenDir embed.FS - //go:embed testdata/* - var star embed.FS +//go:embed testdata/* +var testHiddenStar embed.FS + +func TestHidden(t *testing.T) { + dir := testHiddenDir + star := testHiddenStar t.Logf("//go:embed testdata") @@ -122,3 +112,20 @@ func TestHidden(t *testing.T) { testDir(t, star, "testdata/.hidden", "fortune.txt", "more/") // but not .more or _more } + +func TestUninitialized(t *testing.T) { + var uninitialized embed.FS + testDir(t, uninitialized, ".") + f, err := uninitialized.Open(".") + if err != nil { + t.Fatal(err) + } + defer f.Close() + fi, err := f.Stat() + if err != nil { + t.Fatal(err) + } + if !fi.IsDir() { + t.Errorf("in uninitialized embed.FS, . is not a directory") + } +} diff --git a/libgo/go/embed/internal/embedtest/embedx_test.go b/libgo/go/embed/internal/embedtest/embedx_test.go index 20d5a28..27fa116 100644 --- a/libgo/go/embed/internal/embedtest/embedx_test.go +++ b/libgo/go/embed/internal/embedtest/embedx_test.go @@ -90,17 +90,3 @@ func TestXGlobal(t *testing.T) { } bbig[0] = old } - -func TestXLocal(t *testing.T) { - //go:embed testdata/*o.txt - var local embed.FS - testFiles(t, local, "testdata/hello.txt", "hello, world\n") - - //go:embed testdata/k*.txt - var s string - testString(t, s, "local variable s", "If a program is too slow, it must have a loop.\n") - - //go:embed testdata/h*.txt - var b []byte - testString(t, string(b), "local variable b", "hello, world\n") -} |
