X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fsort.t;h=8828083066c5b9110f683d2aa147fb7c6d809621;hb=6d5637c3050c14fb5c11ec5a05db33dce9e4a7a8;hp=fbeaacfb5f603a39484b045331b0bed0816bbf93;hpb=78210658cae7b303c01be2599b05071639c1f618;p=p5sagit%2Fp5-mst-13.2.git diff --git a/lib/sort.t b/lib/sort.t index fbeaacf..8828083 100644 --- a/lib/sort.t +++ b/lib/sort.t @@ -28,7 +28,8 @@ use warnings; use Test::More tests => @TestSizes * 2 # sort() tests * 4 # number of pragmas to test + 1 # extra test for qsort instability - + 3; # tests for sort::current + + 3 # tests for sort::current + + 3; # tests for "defaults" and "no sort" # Generate array of specified size for testing sort. # @@ -136,9 +137,8 @@ main(0); # XXX We're using this eval "..." trick to force recompilation, # to ensure that the correct pragma is enabled when main() is run. -# Currently 'use sort' modifies $^H{SORT} at compile-time, but -# pp_sort() fetches its value at run-time : thus the lexical scoping -# of %^H is of no utility. +# Currently 'use sort' modifies $sort::hints at compile-time, but +# pp_sort() fetches its value at run-time. # The order of those evals is important. eval q{ @@ -161,3 +161,23 @@ eval q{ main(0); }; die $@ if $@; + +# Tests added to check "defaults" subpragma, and "no sort" + +eval q{ + no sort qw(_qsort); + is(sort::current(), 'stable', 'sort::current after no _qsort'); +}; +die $@ if $@; + +eval q{ + use sort qw(defaults _qsort); + is(sort::current(), 'quicksort', 'sort::current after defaults _qsort'); +}; +die $@ if $@; + +eval q{ + use sort qw(defaults stable); + is(sort::current(), 'stable', 'sort::current after defaults stable'); +}; +die $@ if $@;