From e4afde02c9d7b7c2d1c031d18df418a166c0415f Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 15 Nov 2010 22:48:50 -0600 Subject: initial quite broken implementation of backend switching --- t/90-impl-selection.t | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 t/90-impl-selection.t (limited to 't') 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; -- cgit v1.2.3