summaryrefslogtreecommitdiff
path: root/spew
AgeCommit message (Collapse)Author
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.
2013-03-08Dump byte arrays and slices like hexdump -C.Dave Collins
This commit modifies the Dump family functions to output byte arrays and slices like hexdump -C as specified in issue #9.
2013-03-08Modify printInt and printUint to accept base.Dave Collins
This paves the way to improve how byte arrays are output as well as increases the flexibily of the functions.
2013-03-03Add tests for new ContinueOnMethod option.Dave Collins
2013-03-03Cleanup documentation on new ContinueOnMethod code.Dave Collins
This commit expands on TShadwell's work attached to issue #8. It rounds out the documentation for the new option.
2013-02-26Re-added accidentally removed linesThomas NJ Shadwell
2013-02-26revert previous mis-commits, add ability to allow deeper pretty-printing ↵Thomas NJ Shadwell
after an error or Stringer interface is encountered.
2013-02-23Add tests for new Sprint* family functions.Dave Collins
This commit adds tests for the new Sprint, Sprintf, and Sprintln functions at the package level and as part of a ConfigState.
2013-02-23Add support Sprint* family of functions.Dave Collins
This commit implements wrappers for the fmt.Sprint, fmt.Sprintf, and fmt.Sprintln functions as requested in issue #7.
2013-02-07Fix a couple of comment typos.Dave Collins
2013-02-03Rename pad function to indent.Dave Collins
The name indent better describes the function. This also will help differentiate the function from planned functions that are intended to perform padding for the purposes of aligning fields, types, and values.
2013-02-02Update overview doc for correct verb/flag combos.Dave Collins
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
2013-01-20Improve invalid reflect value handling.Dave Collins
It was previously possible for an invalid reflect value to lead to a panic in certain obscure cases. Rather than adding multiple checks for the invalid reflect value, handle invalid reflect values immediately.
2013-01-20Add tests for structs with multiple equiv fields.Dave Collins
This commit adds tests for a struct which has an embedded struct pointer and a field that is a pointer to the same object. This ensures the cycle detection is properly reset between fields.
2013-01-20Add dump test for max depth option.Dave Collins
2013-01-20Add test for max depth option.Dave Collins
2013-01-20Move spew tests init into its own function.Dave Collins
2013-01-20Add tests for disable method options.Dave Collins
This commit adds tests for the DisableMethods and DisablePointerMethods options. All combinations of method options and Stringer interface invocation for both pointer receivers and non-pointer receivers are tested.
2013-01-20Invoke String/Error methods on addressable vals.Dave Collins
If a type implements a Stringer or error interface with a pointer receiver and the value being formatted is addressable, the interface should be invoked even when the DisablePointerMethods option is set. DisablePointerMethods is only intended to prevent the potentially unsafe action of stepping around type-safety restriction to invoke a Stringer or error interface with a pointer to an unaddressable value.
2013-01-20Add ConfigState to spewTests.Dave Collins
This paves the way for tests against the ConfigState options.
2013-01-20Add tests for sub-interfaces.Dave Collins
2013-01-20Add formatter passthrough tests for non %v verbs.Dave Collins