Commit Graph

17 Commits

Author SHA1 Message Date
Dave Collins 8aeb47a9ec Update license copyright years.
Several files had been updated since the listed years.  This updates
them accordingly.
2016-10-29 15:38:27 -05:00
Alexander Staubo 04cdfd4297 Adds new config options:
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-10-28 13:58:48 -04:00
Dave Collins 2df174808e Add support for limited mode without unsafe pkg.
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-06-19 15:29:34 -05:00
Josh Rickmar 3fdaf5cea8 Dump non-zero len and cap for applicable types.
Closes #16.
2014-05-05 22:39:05 -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 5cc287d265 Add tests for new ContinueOnMethod option. 2013-03-03 13:21:13 -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 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 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 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 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