Commit Graph

69 Commits

Author SHA1 Message Date
Dave Collins 7cfc3ff965 Update test coverage report for new Sdump func. 2013-03-11 18:24:54 -05:00
Dave Collins 35ec0796c8 Add tests for new Sdump function.
This commit adds tests for the new Sdump function both at the package
level and as a part of a ConfigState.
2013-03-11 18:17:45 -05:00
Dave Collins 3a62f585a7 Add support for Sdump.
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-11 18:15:28 -05:00
Dave Collins 9b87fb3e12 Add byte slice to Dump example. 2013-03-08 22:45:50 -06:00
Dave Collins 096da7a702 Update docs for new byte array and slice behavior. 2013-03-08 22:45:02 -06:00
Dave Collins 534ad78b7e Update README.md
Include byte slice hexdump output in sample dump output.
2013-03-08 22:29:03 -06:00
Dave Collins 871cf126b7 Update test coverage for new hexdump behavior.
This commit updates the test coverage report to include the latest
tests for the new byte array and slice hexdump -C behavior.
2013-03-08 22:23:27 -06:00
Dave Collins 8fb5bf1e06 Add tests for byte arrays and slices.
This commit adds tests for the new byte array and slice hexdump
functionality as specified in issue #9.
2013-03-08 22:21:05 -06:00
Dave Collins 70d81533ec Dump byte arrays and slices like hexdump -C.
This commit modifies the Dump family functions to output byte arrays and
slices like hexdump -C as specified in issue #9.
2013-03-08 22:15:12 -06:00
Dave Collins 471552e81e Modify printInt and printUint to accept base.
This paves the way to improve how byte arrays are output as well as
increases the flexibily of the functions.
2013-03-08 19:55:04 -06:00
Dave Collins f92eb047c3 Update test coverage report for ContinueOnMethod.
This commit updates the test coverage report to include the latest tests
for the new ContinueOnMethod option.
2013-03-03 13:24:19 -06:00
Dave Collins 5cc287d265 Add tests for new ContinueOnMethod option. 2013-03-03 13:21:13 -06:00
Dave Collins 9dfc238865 Cleanup documentation on new ContinueOnMethod code.
This commit expands on TShadwell's work attached to issue #8.  It
rounds out the documentation for the new option.
2013-03-03 12:59:13 -06:00
Thomas NJ Shadwell 6d6046a9de Re-added accidentally removed lines 2013-02-26 19:48:56 +00:00
Thomas NJ Shadwell f948516369 revert previous mis-commits, add ability to allow deeper pretty-printing after an error or Stringer interface is encountered. 2013-02-26 19:43:45 +00:00
Dave Collins 3e74359719 Update test coverage report for Sprint* funcs. 2013-02-23 21:59:11 -06:00
Dave Collins 803b1997c4 Add tests for new Sprint* family functions.
This commit adds tests for the new Sprint, Sprintf, and Sprintln functions
at the package level and as part of a ConfigState.
2013-02-23 21:53:16 -06:00
Dave Collins ce74710920 Add support Sprint* family of functions.
This commit implements wrappers for the fmt.Sprint, fmt.Sprintf, and
fmt.Sprintln functions as requested in issue #7.
2013-02-23 21:33:01 -06:00
Dave Collins 17273f26d7 Fix a couple of comment typos. 2013-02-07 18:43:36 -06:00
Dave Collins 9628950a40 Update test coverage report for pad func rename. 2013-02-03 01:44:14 -06:00
Dave Collins 52f41f689f Rename pad function to indent.
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-03 01:35:24 -06:00
Dave Collins e183fe2f19 Update README.md 2013-02-02 19:57:10 -06:00
Dave Collins 333c720067 Update overview doc for correct verb/flag combos. 2013-02-02 01:14:34 -06:00
Dave Collins 5cb4f84194 Update README.md 2013-01-20 22:39:13 -06:00
Dave Collins 7385be34ee Add test coverage report from gocov. 2013-01-20 22:34:34 -06:00
Dave Collins 2fc049e83c Add tests for unrecognized reflect values.
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-20 22:31:09 -06:00
Dave Collins 3b5249e43e Consolidate tests for invalid reflect values. 2013-01-20 22:24:52 -06:00
Dave Collins 23b797ffdf Add tests for invalid reflect values. 2013-01-20 20:48:14 -06:00
Dave Collins a9907c1584 Improve invalid reflect value handling.
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-20 20:44:21 -06:00
Dave Collins f2641d5e6e Add tests for structs with multiple equiv fields.
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-20 19:55:55 -06:00
Dave Collins cddf8663bd Add dump test for max depth option. 2013-01-20 18:56:59 -06:00
Dave Collins ddb71712f6 Add test for max depth option. 2013-01-20 18:43:14 -06:00
Dave Collins a5085b9f9c Move spew tests init into its own function. 2013-01-20 18:24:29 -06:00
Dave Collins 44d9c97c1a Add tests for disable method options.
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-20 17:53:55 -06:00
Dave Collins 6024e0c79e Invoke String/Error methods on addressable vals.
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-20 17:37:24 -06:00
Dave Collins 0cd00fd3ae Add ConfigState to spewTests.
This paves the way for tests against the ConfigState options.
2013-01-20 16:30:54 -06:00
Dave Collins 3ad8c5b5ee Add tests for sub-interfaces. 2013-01-20 15:27:57 -06:00
Dave Collins eba42209a7 Add formatter passthrough tests for non %v verbs. 2013-01-20 14:03:59 -06:00
Dave Collins 89496a6569 Add tests for types with custom Error interface. 2013-01-20 13:41:53 -06:00
Dave Collins 57a610269f Abstract common test types and functions. 2013-01-20 13:31:01 -06:00
Dave Collins ad1d81b355 Add tests for custom type that panics in Stringer. 2013-01-20 12:31:42 -06:00
Dave Collins 5c8d842977 Add tests for maps with multiple entries.
Previously, the tests did not include maps with more than a single entry
since the iteration order is randomized and the tests only accepted a
single valid expected value.  This commit modifies the tests to accept
multiple valid expected values and adds tests for a multi-entry map to
both Dump and Formatter.
2013-01-20 12:02:36 -06:00
Dave Collins 1c16a20c21 Make overview ConfigState options order consistent. 2013-01-19 19:46:13 -06:00
Dave Collins c2fe715681 Update README.md 2013-01-19 19:21:03 -06:00
Dave Collins 13fc9b8d2f Move SpewState methods to ConfigState.
Rather than stuffing a ConfigState instance into a separate SpewState,
just add the functionality directly to the ConfigState.  This provides
simpler syntax for the consumer.

One side effect of this change is that, unlike a zero value SpewState, a
zero value ConfigState doesn't provide default values which means the
Indent field is set to provide no indentation.  The consumer is now
expected to set the indent to their desired value when declaring an
instance of ConfigState.

Alternatively, the consumer can call a new function, NewDefaultConfig,
which returns a ConfigState with default values, including a default
indentation of a single space.

For example, to change the indent to a tab, the previous syntax was:

ss := new(spew.SpewState) // or var ss spew.SpewState
scs := ss.Config()
scs.Indent = "\t"
scs.Dump(whatever)

The new syntax is simply:

scs := spew.ConfigState{Indent: "\t"}
scs.Dump(whatever)
2013-01-19 19:00:25 -06:00
Dave Collins 6026234f2b Add tests for public package and SpewState funcs. 2013-01-18 01:51:25 -06:00
Dave Collins e48df78db8 Update test summaries. 2013-01-17 21:40:54 -06:00
Dave Collins 9df67c91eb Add dump tests for interface arrays and slices. 2013-01-17 21:35:19 -06:00
Dave Collins 596fe65916 Update README.md 2013-01-17 19:17:58 -06:00
Dave Collins 8591790312 Add test for new %#v and %#+v Formatter flags. 2013-01-17 18:51:47 -06:00