summaryrefslogtreecommitdiff
path: root/spew
AgeCommit message (Collapse)Author
2024-01-14flatten pathsv1.1.3Jeff Carr
Signed-off-by: Jeff Carr <[email protected]>
2024-01-14add commentsv1.1.2Jeff Carr
Signed-off-by: Jeff Carr <[email protected]>
2024-01-14clean go modJeff Carr
Signed-off-by: Jeff Carr <[email protected]>
2018-02-03simpler, more robust bypassRoger Peppe
We make the bypass implementation a little simpler by inferring the flag field position from available reflect information and more robust by checking that the flags that are set actually match the semantics we expect. We can restrict the use of unsafe to a single function: flagField.
2018-01-21vet: fix vet warningsDavid Hill
2017-10-03Update tests for cgo changes to Go tip.Dave Collins
2017-07-11travis: test against 1.8.xDavid Hill
2017-07-11travis: Use gometalinterDavid Hill
2017-06-27correct misspell on spew/common.go#L183Bill Q
2016-10-29Correct a copy of misspellings found by misspell.v1.1.0Dave Collins
2016-10-29Update license copyright years.Dave Collins
Several files had been updated since the listed years. This updates them accordingly.
2016-10-29Update doc.go/README.md with new config options.Dave Collins
2016-10-28Adds new config options:Alexander Staubo
DisablePointerAddresses: Specifies whether to disable the printing of pointer addresses. DisableCapacities specifies whether to disable the printing of capacities for arrays, slices, maps and channels. These are useful when diffing data structures in tests. Printing pointers and capacities would otherwise lead to false negatives.
2016-09-07Deprecate "disableunsafe" tag in favor of "safe".Dave Collins
This adds a new build tag named "safe" which serves the exact same purpose as the current "disableunsafe" tag. This is being done, as recommended by @shurcooL, since it is emerging as the standard way to do it in several high profile packages, it mirrors the "unsafe" package nicely, it is shorter, and users generally seem to prefer it. However, to avoid breaking existing infrastructure, the disableunsafe tag is still available and simply is being deprecated.
2016-09-07Disable unsafe for GopherJS compiler.Jonathan Hall
* Disable unsafe for GopherJS compiler. * Update comments to reflect GopherJS build constraints
2016-08-16Update Travis to test multiple golang versions.v1.0.0David Hill
2015-11-05Add logic to deal with reflect pkg changes on tip.Dave Collins
This commit adds logic to gracefully the internal reflect.Value flag bit changes as of golang commit adf9b30e5594 while maintaining support all the back to Go 1.0. It accomplishes this by adding code to the init time inspection to detect the change and set the flag positions accordingly. While here, also removes a TODO comment since it was already done previously.
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.
2015-02-23Add support for sorting keys that are arrays.Anaminus
2015-01-19make nil maps appear different than empty mapsdeads2k
2014-11-15Improve unsafe reflect value handling.Dave Collins
This commit modifies the unsafeReflectValue function to recognize reference types even when the indirection flag is not set for the series of golang commits after ecccf07e7f9d and before 82f48826c6c7 which introduced the additional scalar field in the reflect.Value struct. That additional field has since been removed, but the intention of this code is to work properly across all Go versions and other packages make use of the logic. Thanks to @shurcooL for providing example code which wasn't working properly with the function when it was exported and therefore being called in ways which spew itself does not.
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-05-05Dump non-zero len and cap for applicable types.Josh Rickmar
Closes #16.
2014-03-27Update TravisCI to use Go 1.2.Dave Collins
Also fix a comment typo in doc.go under the custom formatter section.
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-12-01tests: fix TestSortValues on 32-bits platformsPatrick Mezard
reflect.DeepEqual fails when comparing reflect.Value containing float64. I think it cannot make sense of reflect.Value pointer tricks and directly compare reflect.Value.val fields which contain the float value in 64 bits, but a pointer to the float in 32 bits. Fortunately, interface{} which have a similar memory layout, compare correctly, so we just turn the []reflect.Value into []interface{}.
2013-11-16Add SortKeys option to doco for NewDefaultConfig.Dave Collins
2013-11-16Update README and doc.go with new SortKeys option.Dave Collins
2013-11-14Add additional tests for new sortValues code.Dave Collins
This brings the test coverage back to 100%.
2013-11-14Correct valuesSorter.Less function for uintptr.Dave Collins
The function sort be sorting the uintptr itself, not the address of it. Also, the previous code could easily panic on an unaddressable reflect.Value since it was trying to take an address.
2013-11-14Reorder Less function cases to consistent order.Dave Collins
2013-11-14Update imports for previous.Dave Collins
2013-11-14Move TestSortValues to common_test.go.Dave Collins
This commit moves the TestSortValues function from dump_test.go to common_test.go to mirror the new implementation location. It also slightly formats the tests to be consistent with the rest of the package.
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-11-14Fix a few style issues pointed out by golint.Dave Collins
2013-10-28dump: make SortKeys default to string representation instead of nothingPatrick Mezard
The previous version of SortKeys was sorting only native types. Now, if the type is unknown it defaults to its reflect.Value.String() representation which at least guarantees display stability.
2013-10-27config: add SortKeys option to sort native map keys before displayPatrick Mezard
If ConfigState.SortKeys is true, then dump and format will sort map keys before displaying them. Only native types (bool, ints, uint, uintptr, string) are supported, other slices are left unchanged. The motivation is to have more diffable output, mostly for test purpose.
2013-09-21Add tests for recent cgo handling updates.Dave Collins
This commit adds tests for the recent cgo handling of char, unsigned char, and uint8_t arrays. In addition, it adds an architecture for the cgo specific testing based on build constraints. This was done because spew itself does not require cgo, but in order to test its handling of the cgo types it needs to be fed cgo data. Rather than force all users to have a system which supports cgo and an external compiler just to run the tests, the cgo test support must explicitly be turned on via a build tag.
2013-09-21Add better support for dumping cgo char arrays.Dave Collins
This commit adds support for dumping a few cgo types like hexdump -C as requested in issue #11. In particular, it now handles char [#], unsigned char [#], and uint8_t [#].
2013-09-09Add tests for nil slice change.Dave Collins
This commit adds tests for the nil slice change.
2013-09-09Detect nil slices and print them as <nil>.Dave Collins
This commit modifies the code to detect nil slices and display them as <nil> (as opposed to simply empty slices). For most instances a nil slice can be treated the same as an empty slice, but there is a difference and things like reflect.DeepEqual notice. This change makes it clear whether the type in question is a nil slice or an empty slice.
2013-03-27Add tests for packed nil interfaces.Dave Collins
This commit adds tests for nil interfaces packed inside maps and slices to test the recently added fix for issue #12.
2013-03-27Fix incorrect val display on packed nil interfaces.Dave Collins
This was reported by shurcooL as issue #12.
2013-03-11Update docs for new Sdump function.Dave Collins
2013-03-11Add tests for new Sdump function.Dave Collins
This commit adds tests for the new Sdump function both at the package level and as a part of a ConfigState.
2013-03-11Add support for Sdump.Dave Collins
This commit adds a function named Sdump which works exactly like Dump and Fdump except it returns the formatted output as a string. This serves the same purpose as the the Sprint* family of functions.
2013-03-08Add byte slice to Dump example.Dave Collins
2013-03-08Update docs for new byte array and slice behavior.Dave Collins
2013-03-08Add tests for byte arrays and slices.Dave Collins
This commit adds tests for the new byte array and slice hexdump functionality as specified in issue #9.