b688669c81d2eaaea5141bd50a0b3612f23f9ec3
[dbsrgits/DBIx-Class.git] / t / 39load_namespaces_stress.t
1 BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) }
2
3 use strict;
4 use warnings;
5 use Test::More;
6 use Time::HiRes qw/gettimeofday/;
7
8
9 use DBICTest; # do not remove even though it is not used
10
11 our $src_count = 100;
12
13 for (1 .. $src_count) {
14   eval <<EOM or die $@;
15
16   package DBICTest::NS::Stress::Schema::Result::T$_;
17   use base qw/DBIx::Class::Core/;
18   __PACKAGE__->table($_);
19   __PACKAGE__->add_columns (
20     id => { data_type => 'integer', is_auto_increment => 1 },
21     data => { data_type => 'varchar', size => 255 },
22   );
23   __PACKAGE__->set_primary_key('id');
24   __PACKAGE__->add_unique_constraint(['data']);
25
26 EOM
27 }
28
29 {
30   package DBICTest::NS::Stress::Schema;
31
32   use base qw/DBIx::Class::Schema/;
33
34   sub _findallmod {
35     return $_[1] eq ( __PACKAGE__ . '::Result' )
36       ? ( map { __PACKAGE__ . "::Result::T$_" } 1 .. $::src_count )
37       : ()
38     ;
39   }
40 }
41
42 is (DBICTest::NS::Stress::Schema->sources, 0, 'Start with no sources');
43
44
45 note gettimeofday . ":\tload_namespaces start";
46 DBICTest::NS::Stress::Schema->load_namespaces;
47 note gettimeofday . ":\tload_namespaces finished";
48
49 is (DBICTest::NS::Stress::Schema->sources, $src_count, 'All sources attached');
50
51 done_testing;