Added a simple stress test that hits every URI in the test suite
[catagits/Catalyst-Runtime.git] / t / optional / stress.t
1 #!perl\r
2 \r
3 use strict;\r
4 use warnings;\r
5 \r
6 use FindBin;\r
7 use lib "$FindBin::Bin/../live/lib";\r
8 \r
9 use Test::More;\r
10 use Catalyst::Test 'TestApp';\r
11 use YAML;\r
12 \r
13 our ($iters, $tests);\r
14 BEGIN { \r
15     plan skip_all => 'set CAT_STRESS to enable this test' unless $ENV{CAT_STRESS};\r
16     \r
17     $iters = $ENV{CAT_STRESS} || 10;\r
18     $tests = YAML::LoadFile( "$FindBin::Bin/stress.yml" );\r
19     \r
20     my $total_tests = 0;\r
21     map { $total_tests += scalar @{ $tests->{$_} } } keys %{$tests};\r
22     plan tests => $iters * $total_tests;\r
23 }\r
24 \r
25 for ( 1 .. $iters ) {\r
26     run_tests();\r
27 }\r
28 \r
29 sub run_tests {\r
30     foreach my $test_group ( keys %{$tests} ) {\r
31         foreach my $test ( @{ $tests->{$test_group} } ) {\r
32             ok( request( $test ), $test_group . ' - ' . $test );\r
33         }\r
34     }\r
35 }\r