diff options
author | Jesse Luehrs <doy@tozt.net> | 2010-11-15 22:48:50 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2010-11-15 22:48:50 -0600 |
commit | e4afde02c9d7b7c2d1c031d18df418a166c0415f (patch) | |
tree | caa41921009cc822145361dde98e0361871ac38a /t | |
parent | b6f2c7d8338f012c146e01cd57ee3e0e2e5e61a3 (diff) | |
download | package-stash-e4afde02c9d7b7c2d1c031d18df418a166c0415f.tar.gz package-stash-e4afde02c9d7b7c2d1c031d18df418a166c0415f.zip |
initial quite broken implementation of backend switching
Diffstat (limited to 't')
-rw-r--r-- | t/90-impl-selection.t | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/t/90-impl-selection.t b/t/90-impl-selection.t new file mode 100644 index 0000000..4457dbe --- /dev/null +++ b/t/90-impl-selection.t @@ -0,0 +1,67 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; + +sub clear_load { + delete $Package::{'Stash::'}; + delete $INC{'Package/Stash.pm'}; + delete $INC{'Package/Stash/PP.pm'}; + delete $INC{'Package/Stash/XS.pm'}; +} + +my $has_xs; + +{ + $has_xs = eval "require Package::Stash::XS; 1"; + clear_load; +} + +{ + require Package::Stash; + warn $Package::Stash::IMPLEMENTATION; + is($Package::Stash::IMPLEMENTATION, $has_xs ? 'XS' : 'PP', + "autodetected properly"); + can_ok('Package::Stash', 'new', "and got some methods"); + clear_load; +} + +{ + $ENV{PACKAGE_STASH_IMPLEMENTATION} = 'PP'; + require Package::Stash; + is($Package::Stash::IMPLEMENTATION, 'PP', + "autodetected properly"); + can_ok('Package::Stash', 'new', "and got some methods"); + clear_load; +} + +SKIP: { + skip "no XS", 2 unless $has_xs; + $ENV{PACKAGE_STASH_IMPLEMENTATION} = 'XS'; + require Package::Stash; + is($Package::Stash::IMPLEMENTATION, 'XS', + "autodetected properly"); + can_ok('Package::Stash', 'new', "and got some methods"); + clear_load; +} + +{ + $Package::Stash::IMPLEMENTATION = 'PP'; + require Package::Stash; + is($Package::Stash::IMPLEMENTATION, 'PP', + "autodetected properly"); + can_ok('Package::Stash', 'new', "and got some methods"); + clear_load; +} + +SKIP: { + skip "no XS", 2 unless $has_xs; + $Package::Stash::IMPLEMENTATION = 'XS'; + require Package::Stash; + is($Package::Stash::IMPLEMENTATION, 'XS', + "autodetected properly"); + can_ok('Package::Stash', 'new', "and got some methods"); + clear_load; +} + +done_testing; |