Commit | Line | Data |
f579af32 |
1 | use strict; |
2 | use warnings FATAL => 'all'; |
3 | use Test::More; |
4 | use Test::Fatal; |
5 | |
6 | use Role::Tiny (); |
7 | |
8 | use lib 't/lib'; |
9 | |
10 | { |
11 | package TrackLoad; |
12 | our $LOADED = 0; |
13 | } |
14 | |
15 | Role::Tiny::_load_module('TrackLoad'); |
16 | is $TrackLoad::LOADED, 0, 'modules not loaded if symbol table entries exist'; |
17 | |
18 | eval { Role::Tiny::_load_module('BrokenModule') }; |
19 | like "$@", qr/Compilation failed/, |
20 | 'broken modules throw errors'; |
21 | eval { require BrokenModule }; |
22 | like "$@", qr/Compilation failed/, |
23 | ' ... and still fail if required again'; |
24 | |
25 | eval { Role::Tiny::_load_module('FalseModule') }; |
26 | like "$@", qr/did not return a true value/, |
27 | 'modules returning false throw errors'; |
28 | eval { require FalseModule }; |
29 | like "$@", qr/did not return a true value/, |
30 | ' ... and still fail if required again'; |
31 | |
32 | done_testing; |