NAME
Test::NoXS - Prevent a module from loading its XS code
VERSION
version 1.04
SYNOPSIS
use Test::NoXS 'Class::Load::XS';
use Module::Implementation;
eval "use Class::Load";
is(
Module::Implementation::implementation_for("Class::Load"),
"PP",
"Class::Load using PP"
);
# Disable all XS loading
use Test::NoXS ':all';
# Disable all XS loading except core or dual-life modules
use Test::NoXS ':xs_core_or_dual';
# Disable all XS loading except modules that shipped in core
use Test::NoXS ':xs_core_only';
DESCRIPTION
This modules hijacks DynaLoader and XSLoader to prevent them from loading XS code for designated modules. This is intended to help test how modules react to missing XS, e.g. by dying with a message or by falling back to a pure-Perl alternative.
USAGE
Arguments on the use line control which XS modules are allowed. One and only one of the following options are allowed:
:all
— all XS loading is disabled:xs_core_or_dual
— XS loading is disabled except for modules that are core modules in the current perl, even if they have been subsequently upgraded from CPAN:xs_core_only
— XS loading is disabled except for modules that shipped with the current perl. Modules upgraded from CPAN will have XS disabled. This vaguely simulates upgrading dual-life modules on a system without a compiler.a list of module names — disables XS loading for these specific modules only
SUPPORT
Bugs / Feature Requests
Please report any bugs or feature requests through the issue tracker at https://github.com/dagolden/Test-NoXS/issues. You will be notified automatically of any progress on your issue.
Source Code
This is open source software. The code repository is available for public review and contribution under the terms of the license.
https://github.com/dagolden/Test-NoXS
git clone https://github.com/dagolden/Test-NoXS.git
AUTHOR
David Golden <dagolden@cpan.org>
CONTRIBUTOR
Sam Kaufman <sam@socialflow.com>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2018 by David Golden.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004