Imported Upstream version 2.18
[platform/upstream/perl-XML-Simple.git] / t / 0_Config.t
1 # $Id: 0_Config.t,v 1.6 2003/05/20 08:50:10 grantm Exp $
2 # vim: syntax=perl
3
4 use strict;
5 use Test::More tests => 1;
6
7
8 # Build up a list of installed modules
9
10 my @mod_list = qw(XML::Simple Storable XML::Parser XML::SAX);
11
12
13 # If XML::SAX is installed, add a list of installed SAX parsers
14
15 eval " use XML::SAX; ";
16 my $default_parser = '';
17 unless($@) {
18   push @mod_list, 'XML::NamespaceSupport';
19   push @mod_list, map { $_->{Name} } @{XML::SAX->parsers()};
20   $default_parser = ref(XML::SAX::ParserFactory->parser());
21 }
22
23
24 # Extract the version number from each module
25
26 my(%version);
27 foreach my $module (@mod_list) {
28   eval " require $module; ";
29   unless($@) {
30     no strict 'refs';
31     $version{$module} = ${$module . '::VERSION'} || "Unknown";
32   }
33 }
34
35 $default_parser = 'XML::Parser' if(!$default_parser && $version{'XML::Parser'});
36
37
38 # Add version number of the Perl binary
39
40 eval ' use Config; $version{perl} = $Config{version} ';  # Should never fail
41 if($@) {
42   $version{perl} = $];
43 }
44 unshift @mod_list, 'perl';
45
46
47 # Check for preferred parser via environment setting
48
49 my $preferred_parser = $ENV{XML_SIMPLE_PREFERRED_PARSER} || ' ';
50
51
52 # Print details of installed modules on STDERR
53
54 diag(sprintf("\r# %-30s %s\n", 'Package', 'Version'));
55 foreach my $module (@mod_list) {
56   $version{$module} = 'Not Installed' unless(defined($version{$module}));
57   $version{$module} .= " (default parser)" if($module eq $default_parser);
58   $version{$module} .= " (preferred parser)" if($module eq $preferred_parser);
59   diag(sprintf(" %-30s %s\n", $module, $version{$module}));
60 }
61
62 # Housekeeping
63
64 ok(1, "Dumped config");