summaryrefslogtreecommitdiff
path: root/spew/internal_test.go
AgeCommit message (Collapse)Author
2024-01-14flatten pathsv1.1.3Jeff Carr
Signed-off-by: Jeff Carr <[email protected]>
2017-07-11travis: Use gometalinterDavid Hill
2016-10-29Update license copyright years.Dave Collins
Several files had been updated since the listed years. This updates them accordingly.
2015-06-19Add support for limited mode without unsafe pkg.Dave Collins
This commit adds support for compiling spew without the unsafe package. When compiled without the unsafe package, some of the more advanced features such as invoking stringers on pointers from non-pointer variables and unexported struct fields are not available. By default, spew will be compiled in the limited mode for Google App Engine since the unsafe package is not available there. Additionally, spew can be compiled without the unsafe package manually by specifying the "disableunsafe" build tag. Finally, a new package-level constant named "UnsafeDisabled" has been exposed which can be used to programmatically determine if spew was compiled with access to the unsafe package.
2015-04-10Enable methods to sort map keys and spew itself as last resortTim Hockin
If enabled by flags, try to use methods to stringify map keys and sort on that. If we can't use primitive sorting and we can't use methods, we can still fall back on spew itself. If SpewKeys is enabled, use Sprintf("%#v") to generate a string and sort by that.
2014-10-24Add logic to deal with reflect pkg changes on tip.Dave Collins
This commit adds logic to gracefully handle the new internal reflect.Value structure on tip as of golang commit 82f48826c6c7 as well as the internal reflect.Value flag bit changes as of golang commit 90a7c3c86944. It accomplishes this by doing some inspection at init time and choosing the appropriate offsets and flag positions accordingly. There was some previous logic which dealt with a similar issue for golang commit ecccf07e7f9d. However, since the more recent commits essentially reverted the change and also modify the flag bit positions, it made more sense to rework the detection logic. In particular, the new logic examines the size of the reflect.Value struct to determine the difference and extracts the kind from the flags to determine if the flags have been changed. As a result, this commit allows spew to work properly with tip all the back to Go 1.0.
2014-01-08Add logic to deal with reflect pkg changes on tip.Dave Collins
This commit adds logic to gracefully handle the new internal reflect.Value structure on tip as of golang commit ecccf07e7f9d. It accomplishes this by doing some inspection at init time and choosing the appropriate offsets as well as modifying which offset is used for the value accordingly. As a result, this allows spew to work properly with both the current release version of Go as well as tip. Fixes #15.
2013-11-14Reorganize the new map key sorting functionality.Dave Collins
This commit moves the new code related to sorting reflect.Value items into common.go since it is accessed by both the formatter and the dumper. It also adds comments to the new functions and unexports SortValues since it should be an internal function only.
2013-01-20Add tests for unrecognized reflect values.Dave Collins
In order to help future proof itself, spew handles unrecognized reflect values by passing them on to the standard fmt library. Since spew handles all current reflect values in the language, this condition has to be manually tested with a bit of hackery by using unsafe to change the kind to a nonexistent value. As of this commit, there is now 100% test coverage.
2013-01-20Consolidate tests for invalid reflect values.Dave Collins
2013-01-20Add tests for invalid reflect values.Dave Collins