NAME Test::Puppet::Compile - Puppet catalog testing SYNOPSIS use Test::Puppet::Compile; my $TPC = Test::Puppet::Compile::->new({ 'name' => 'synopsis', 'manifests' => [glob 'manifests/*.pp'], 'basedir' => `pwd`, 'tpldir' => '/your/template/dir', # must contain: hiera.yaml.tt, node.yaml.tt and puppet.conf.tt 'reqenvs' => [qw(development staging superlive)], 'moduledirs' => [qw(modules supermodules services subservices)], 'warnings' => 1, 'domainpattern' => [ { match => qr/^int-/, domain => 'integrationdomain', } ], 'defaultdomain' => 'localdomain', }); $TPC->test(); METHODS test After successfull initializtation call this method to detect all nodes and compile a catalog for each node. HOWTO USE THIS MODULE See the synopsis REDHAT If you want to simulate another OS just copy all templates to a directory of your choice and adjust them acording to your needs. Then set tpldir to point to that directory. Q&A WHY PERL Because I'm most prolific with perl. WHY IS IT SO SLOW Because it does lots of computations. Some performance hints: Use a ramfs Your temp directory, usually /tmp, should be located on a sufficiently large ramdisk Use forkprove You should split your tests into multiple t files, each testing on environment, and process them w/ forkprove, e.g. forkprove -j -MMoose -MTest::More -MTest::Puppet::Compile t/ AUTHOR Dominik Schulz COPYRIGHT AND LICENSE This software is copyright (c) 2013 by Dominik Schulz. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.