1
0
mirror of https://github.com/golang/go synced 2024-11-05 14:46:11 -07:00
The Go programming language
Go to file
Joe Henke 5bc19071d3 godoc/vfs/zipfs: add tests; fix handling of "/"
- add tests for Open, ReadDir, and Stat funcs
- add tests for Seek of Open()
- simplify internal handling of absolute vs. "zip" paths
- fix handling of "/"

The fix special cases this scenario, leaving the codepath for all
other file paths the same. Specifically,

- Exported funcs call stat(), so stat("/") is handled by simply
returning 0 to indicate all entries are (effectively) prefixed
by "/" and zipFI{"", nil} because "/" has no name and nil
indicates it is a directory.

- ReadDir("/") is further handled by seeding the existing lookup
logic with "" instead of what would have been "/". This is
necessary because, per the zipfs spec, the zip file entries MUST
NOT start with "/", so using "/" would incorrectly match nothing.
This works because seeding lookup with "" (correctly) matches
all files and then the following, existing logic (correctly) pares
things down to just the files in the root directory; not in any
subdirectories.

Verified that godoc -zip still works.

Fixes golang/go#12743

Change-Id: Icb5f01b8a29cefa4e2820135f318894042970301
Reviewed-on: https://go-review.googlesource.com/16925
Reviewed-by: Andrew Gerrand <adg@golang.org>
2015-11-17 21:45:41 +00:00
benchmark/parse benchmark/parse: fix cosmetic defect in error str. 2015-02-02 17:07:43 +00:00
blog tools: add import comments. 2014-12-09 22:42:16 +00:00
cmd cmd/stringer: prepend "Code" to codegen warning 2015-11-08 08:43:00 +00:00
container/intsets container/intsets: use fast popcount with gccgo 2015-11-11 02:17:02 +00:00
cover cover: accept inaccurate block endings 2015-01-07 02:00:16 +00:00
go go/buildutil: Fix example code for TagsFlag. 2015-11-09 14:36:24 +00:00
godoc godoc/vfs/zipfs: add tests; fix handling of "/" 2015-11-17 21:45:41 +00:00
imports imports: update static stdlib index to go1.5 2015-09-15 05:17:18 +00:00
oracle go/ssa: rename some API features (incompatible change) 2015-08-31 22:20:12 +00:00
playground playground/socket: only buffer messages of one kind, add tests 2015-10-30 06:08:43 +00:00
present present: don't ignore command within text scope 2015-10-30 00:41:15 +00:00
refactor refactor/rename: emacs: set up autoloading of go-rename function 2015-10-27 13:38:02 +00:00
.gitattributes tools: copying .gitattributes to all subrepositories (fixes windows build) 2014-12-23 06:32:51 +00:00
.gitignore dashboard: rearrange tree, in prep for packagification 2015-01-15 02:58:11 +00:00
AUTHORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
codereview.cfg tools: add codereview.cfg 2015-03-18 17:04:00 +00:00
CONTRIBUTING.md doc: add CONTRIBUTING.md 2015-02-18 23:43:38 +00:00
CONTRIBUTORS go.empty: prototype for new subrepository 2012-01-25 14:45:13 -05:00
LICENSE LICENSE: add 2012-03-17 15:20:58 +11:00
PATENTS go.empty: add PATENTS file to the subrepo. 2012-04-16 11:24:04 +10:00
README go.tools/README: minor correction. 2013-10-29 13:20:58 -04:00

This subrepository holds the source for various packages and tools that support
the Go programming language.

Some of the tools, godoc and vet for example, are included in binary Go distributions.
Others, including the Go oracle and the test coverage tool, can be fetched with "go get".

Packages include a type-checker for Go and an implementation of the
Static Single Assignment form (SSA) representation for Go programs.

To submit changes to this repository, see http://golang.org/doc/contribute.html.