diff options
author | Jesse Luehrs <doy@tozt.net> | 2010-11-16 01:34:21 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2010-11-16 01:34:21 -0600 |
commit | a5129e538980a4e414dffc8ded23c921642e2dea (patch) | |
tree | 11feedd27c4e446db40a3948dc7492bc0892b818 /t/impl-selection/03-var.t | |
parent | e4afde02c9d7b7c2d1c031d18df418a166c0415f (diff) | |
download | package-stash-a5129e538980a4e414dffc8ded23c921642e2dea.tar.gz package-stash-a5129e538980a4e414dffc8ded23c921642e2dea.zip |
okay, working implementation selection
Diffstat (limited to 't/impl-selection/03-var.t')
-rw-r--r-- | t/impl-selection/03-var.t | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/t/impl-selection/03-var.t b/t/impl-selection/03-var.t new file mode 100644 index 0000000..dd5e7d8 --- /dev/null +++ b/t/impl-selection/03-var.t @@ -0,0 +1,29 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; + +# XXX: work around dumb core segfault bug when you delete stashes +sub get_impl { eval '$Package::Stash::IMPLEMENTATION' } +sub set_impl { eval '$Package::Stash::IMPLEMENTATION = "' . $_[0] . '"' } + +{ + $Package::Stash::IMPLEMENTATION = 'PP'; + require Package::Stash; + is(get_impl, 'PP', "autodetected properly: PP"); + can_ok('Package::Stash', 'new'); +} + +delete $Package::{'Stash::'}; +delete $INC{'Package/Stash.pm'}; +delete $INC{'Package/Stash/PP.pm'}; + +SKIP: { + skip "no XS", 2 unless eval "require Package::Stash::XS; 1"; + $Package::Stash::IMPLEMENTATION = 'XS'; + require Package::Stash; + is(get_impl, 'XS', "autodetected properly: XS"); + can_ok('Package::Stash', 'new'); +} + +done_testing; |