The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# $Id: 0_config.t,v 1.1.1.1 2002/12/18 09:21:18 grantm Exp $
# vim: syntax=perl

use strict;
use File::Spec;

use Test::More tests => 1;

# Modules to inspect for version numbers

my @mod_list = qw(
  File::Find::Rule XML::LibXML XML::XPath
);


# Extract the version number from each module

my(%version);
foreach my $module (@mod_list) {
  eval " require $module; ";
  unless($@) {
    no strict 'refs';
    $version{$module} = ${$module . '::VERSION'} || "Unknown";
  }
}


# Add version number of the Perl binary

eval ' use Config; $version{Perl} = $Config{version} ';  # Should never fail
if($@) {
  $version{Perl} = $];
}
unshift @mod_list, 'Perl';


# Print details of installed modules on STDERR

diag(sprintf("\r#%-30s %s\n", 'Package', 'Version'));
foreach my $module (@mod_list) {
  $version{$module} = 'Not Installed' unless(defined($version{$module}));
  diag(sprintf(" %-30s %s\n", $module, $version{$module}));
}


# Now create some test data files

my $path = File::Spec->catfile('t', 'testdata');
mkdir($path, 0755);

while(<DATA>) {
  if(/^>/) {
    my @parts = /([\w\.]+)/g;
    my $path = File::Spec->catfile('t', 'testdata', @parts);
    open(OUT, ">", $path) || die "open($path): $!";
    next;
  }
  print OUT $_;
}
close(OUT);

ok(1);

__DATA__
> hello.xml
<doc>
  <greeting>Hello World!</greeting>
</doc>

> plain.txt
Hello World!

> quote.xml
<doc>
  <para>And then he said <quote>Hello World!</quote>.</para>
</doc>

> unbalanced.xml
<doc>
  <title>Hello World!</title>
  <para>This document should be ignored since it is not well formed.<para>
</doc>