forked from rjbs/Test-Deep
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Changes
430 lines (282 loc) · 13.9 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
Revision history for Test-Deep
1.128 2018-04-18
- numerous small improvements to documentation; thanks to
Fabrice Gabolde, Daniel Böhmer, Lance Wicks, Matthew Horsfall
- improved CI setup; thanks to eadjei and Philip J. Ludlam
1.127 2017-05-04
- no code changes from previous release
1.126_001 2017-04-17
- do not eagerly convert simple scalars into tests in the all, any, and
none tests; this was breaking LeafWrapper application
1.126 2016-12-27
- no changes since v1.125_001
1.125_001 2016-12-27
- if objects in the "expected" structured have an as_test_deep_cmp
method, it will be called and its return (which should be a
Test::Deep::Cmp object) will be used as the test for that location in
the structure
- internal undocumented class_base routine has been replaced
with a different, clearly private routine
- the LeafWrapper is also used for objects with an unknown reftype
(like LVALUE or other weird ones)
1.124 2016-11-05
- avoid an uninitialized warning when array_each() compares to a
non-reference (thanks, Максим Вуец!)
1.123 2016-09-09
- remove test suite reliance on "." appearing @INC (thanks, Graham Knop
and Karen Etheridge!)
- when an object with stringification overloading fails to match a
"re" test, its stringification is included in the diagnostics
1.122 2016-09-07
- added $Test::Deep::LeafWrapper to control the behavior of simple
values in the "expected" definition; by default, they are treated as
shallow($x) tests, but you can now say (for example)
C<< $Test::Deep::LeafWrapper = \&str >> to always treat the got value
as a string, even if blessed, etc.
1.121_001 2016-07-19
- documentation improvements
- avoid a few evals, localize $@ in a few places where eval is used
- good bye tabs, hello spaces
1.120 2015-11-27
- no changes since 0.119_01
- this massive version bump was a mistake
0.119_01 2015-11-19
- add none() test; it's like any(), but negative
- fix stringification of any() expectations
0.119 2015-09-29
- remove use of Test::NoWarnings for user-facing tests
0.118 2015-07-27 TRIAL RELEASE
- overloading of & and | no longer can change All or Any objects
found as arguments
- an All as an argument to an All constructed is flattened out into its
All-ed values; the same goes for Any
0.117 2015-06-21
- do not lose argument(s) to import
(fixes https://github.com/rjbs/Test-Deep/issues/29 )
0.116 2015-06-20
- on its own, :preload options uses default group of exports
0.115 2015-01-09
- worked around a bug in chained goto on 5.8.5
0.114 2014-12-11
- improve prereqs metadata (thanks, Karen Etheridge)
- add a noneof() set test (thanks, Peter Haworth)
- regexponly hasn't worked... ever. now it does
- passing :preload to import loads all plugins up front
- a few more tests have been documented
- the many exports of Test::Deep are now documented!
0.113 2014-08-22
- fix a compile error (!!) in RegexpOnly
- fix some documentation typos (thanks, ZOFFIX)
- add license to META file
0.112 2013-11-30
- rebuild MANIFEST, adding two forgotten files
0.111 2013-11-30
- When printing diagnostics, differentiate the type of a blessed object
from the name of the class itself (RT#78288, caused by changes to how
blessed objects are treated in 0.109) (thanks, Karen Etheridge)
- Typo fixes (thanks, David Steinbrunner)
- Fixes to clarity and accuracy of documentation (thanks, Michael Hamlin)
- Add metadata links to repo and issue tracker
- Added obj_isa for testing ->isa without falling back to ref($x)
- Added the *experimental* ":v1" export group to skip importing
Isa, isa, and blessed
0.110 2012-06-16
Allow methods() and listmethods() to work again on class methods
(RT#77804) (thanks, Ricardo Signes!)
0.109 2012-02-16
UNIVERSAL::isa and UNIVERAL::can are no longer called as functions:
this was deprecated in UNIVERSAL 1.03. (RT#74760, Karen Etheridge)
the code that builds the exporter configuration is cleaned up; more
documentation of how it may change (for the better, without breaking
stuff) should appear in the near future
0.108 2010-10-15
simple (stringwise) comparison should now be much faster (thanks,
NCLEATON)
0.107 2009-10-28
New maintainer: Ricardo Signes (rjbs)
On 5.10.0 and newer perl, install to the "site" directory, not the
core perl directory in @INC. (Prior to 5.10.0, @INC ordering was
unfortunate, and fixing the install target would make upgrading
difficult.)
cope with new stringification of qr{} objects in 5.13.x+ (thanks,
ANDK)
fix Pod escaping errors (thanks, FWIE)
0.106
Release after dev.
0.105-dev
Fix for perl 5.010.1 - the code to check the version and act
correctly on regexp refs treated .1 as behaving like 5.011.
0.104
Document behaviour of cmp_bag when a non ARRAY-ref argument is passed
to it. Explicity test for this a die with a useful message.
Document and export cmp_details and deep_diag, thanks to Tom Hukins
for the patch.
0.103
Detect whether isa() is being called with 1 or 2 arguments and
dispatch to the correct function. This is hacky but fixes the problem
of clashing with UNIVERSAL::isa().
0.102
Behave well when a code comparator doesn't give diagnostics. Thanks
to Alex Kapranoff.
0.101
Fix an overloading problem with All and Any. Thanks to Kostas
Chatzikokolakis for reporting the bug and especially for explaining
how to fix it :)
Added a nasty hack to smooth over a problem in Test::Tester.
0.100
Apply patch from Andreas Koenig (ANDK) to cope with Perl 5.11's new
REGEXP objects.
0.099
Don't explode on perl's that don't have weakrefs. If they're not
available, just don't weaken the refs. It means refs can be cached
for longer than desirable but it's better than explodiing.
This doesn't fix all of te problems with perl 5.005 but I'm pushing
it out because the previous version number upsets CPAN.pm.
0.098
Cleaned up Test::Deep::NoTest by making it call Test::Deep's import,
that way it will always be in sync for exports. Also added some POD
docs.
Added notest_extra.t to check that things are correctly exported and
working.
Add cmp_details but left it undocumented. It manages localising the
stack etc. Factored eq_deeply and cmp_deeply through that. This meant
adding an icky hack into deep_diag. I should clean that whole thing
up.
Remove $name from params of eq_deeply, in code and docs, it was
unused.
0.097
Fixed doc typo for re().
Fix diagnostics for code(), it was always printing undef instead of
the got value.
0.096
%WrapCache was keeping references to external data. It's now
local()ised at the start of a comparison just like the other caches
(why I didn't do that when I added it, I don't know). Thanks to
Matthijs Bomhoff for reporting the problem.
0.095
Docs and code didn't match, useclass was actually requireclass,
available as both now
0.094
Changed Set and Bag to no longer issue warnings when undefs are
present. Needed to make the sort and the diagnotics
undef-aware. Thanks to Colin Kuskie for pointing this out.
Added tests for this.
0.093
Fixed inifinte recursion when adding comparators into bags. That
whole area is unpleasant - conceptually as well as
implementation-wise. Comparators no longer inherit a compare method,
so we only call the specialised compare if it exists, otherwise we
just do normal deep comparison.
Removed a debugging print.
0.092
Got the if backwards for loading Test::Builder (again for NoTest -
simples changes...). No ill effects for most people as they load it
via something else any but ApacheSession for example doesn't.
Now tetsing for lack of testing framework.
0.091
Forgot to export lots of stuff via NoTest
0.090
Added Test::Builder::NoTest so that eq_deeply can be use entirely
without Test::Builder.
0.089
Wasn't corrrectly setting $Test::Builder::Level in cmp_bag, cmp_set
and cmp_methods, this caused test error messages to include the wrong
line/file.
Whitespace changes.
0.088
Slight twiddle to silence warnings from the new Test::Tester thanks to
SSORICHE
0.087
cmp_methods, cmp_bag and cmp_set weren't passing on the test name.
Thanks to Alex Kapranoff for the patch.
0.086
Add $tolerance to Number so now you can check that 2 numbers are
equal, give or take a little bit.
Autogenerating most of the convenience constructor routines, deleted
nearly 200 lines of boilerplate. Why didn't I think of that before?
Almost every test script had the same lines at the beginning. These
are now in t/std.pm, another 200 lines of code (well 50% whitespace)
gone. Happy.
Added use warnings to the test scripts, didn't make a difference.
Added inspection of strings captured from a regex and fixed up some
re() doc errors.
0.085
When a hash or array value or amethod does not exist and the expected
value was a reference, the diagnostics were wrong because it headed
into Reftype tests. Now Test::Deep::descend catches "Does not exist"
early on.
Added listmethods()
0.084
Added subhashof and superhashof, restructured various Hash modules to
handle sub and super.
Got rid of unexported hash_elements from Test::Deep.
Fixed a problem with circular set comparisons.
0.083
The cache is more efficient, using a single layer and weak refs, also
previously it could be fooled by reused addresses for objects (this
is not just theoretical).
Now Test::Deep::descend is responsible for pushing onto the stack as
well as pulling, this means most tests don't need to think about the
stack at all
For the stack stuff, had to create lots of "only" modules these are
tests that should never be called on their own as they make
assumptions about the validity of the data, they are used as subtests
inside others
cleaned up lots of copy and paste Data::Dumper and confess and
various other bits and pieces
Test::Deep::Cmp (and it's descendants) autopush themselves onto the
stack of any Test::Deep::* that uses them. Cuts even more cruft.
Now everything uses the compare in Test::Deep::Cmp which just does a
deep comparison. This is not perfect for All and Set but it's as good
as what was happeneing before now.
Wrapping unknown reftypes as shallow
0.082
Got rid of silly use lib in the tests, shouldn't have been in public
Added dependency on Test::More
Moved from type =>, vals => to exp =>, got => in stack entries
Individual descend()s no longer pop their data from the stack, that's
taken care of by Test::Deep::descend. This made things simpler in all
the comparisons.
Added support for sub/super se/bag comparisons, thanks to Boris
Sukholitko <bobatonhu@yahoo.co.uk>
Added scalarref.t
0.081
Got rid of struct mode for num()
Large internal changes, now using a stack object rather than just an
array. This handles rendering the stack.
The comparisons handle rendering the got and expected values now.
num() and str() numify/stringify before comparing, this makes
overload of == or eq irrelevant. This also prevents problems with the
diag when something stringifies differently to it's numificiation or
differently each time you look.
fixed diag of overloaded refs to display the ref value, not the
overloaded value
nicer diags for booleans
0.08
Slight doc fix
Added coderef calling as a test
0.07
Fixed number.t to skip strict test when if Scalar::Util is not right
Major improvement of docs. No longer reads like it was written by a
drunken badger.
0.06
Overhaul of Test::Deep::descend, native types are now wrapped up in a
Test::Deep:Cmp object, moves lots of logic out of descend
Added ArrayLength, HashKeys, RefType, and Blessed comparisons
All tests now use Test::NoWarnings
Broke out descend tests into hash.t, array, regexpref.t, probably
should break out more
Updated version of Scalar::Util dependency, thanks to Steve Purkis
0.05
No longer using overload::StrVal() for looking behind overloads as
it's broken for Regexp refs in some versions of Perl.
0.04
Documented bool and included the files!!
0.03
cmp_deeply(undef, \"") calls overload::StrVal(undef)
added bool test
using Scalar::Util to get reftype and blessed class
0.02
Added prereq to Makefile.PL
0.01
First release