Changeset 13216
- Timestamp:
- 06/04/08 17:11:03 (5 years ago)
- Location:
- lang/perl/XMPP-Bomber/trunk
- Files:
-
- 4 modified
-
eg/simple.yaml (modified) (1 diff)
-
lib/XMPP/Bomber.pm (modified) (2 diffs)
-
lib/XMPP/Bomber/RecipientChooser/Static.pm (modified) (1 diff)
-
lib/XMPP/Bomber/Types.pm (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/XMPP-Bomber/trunk/eg/simple.yaml
r13191 r13216 1 hostname: 192.168.0.5 2 domain: endeworks.jp 3 content_provider: 4 module: Gibberish 1 clients: 2 - module: Flooder 5 3 args: 6 min_length: 512 7 max_length: 4096 8 sender_provider: 9 module: Static 10 args: 11 users: 12 - username: daisuke 13 password: hoge 14 domain: endeworks.jp 15 receiver_provider: 16 module: OpenFire::Random 17 args: 4 timeout: 3600 5 server: 6 hostname: 192.168.0.5 7 port: 5222 18 8 domain: endeworks.jp 19 count: 10 20 connect_info: 21 - dbi:mysql:dbname=openfire 22 - root 23 - 24 - RaiseError: 1 25 AutoCommit: 1 9 accounts: 10 - username: daisuke 11 password: hoge 12 domain: endeworks.jp 13 recipients: [] 14 content_provider: 15 module: Gibberish 16 args: 17 min_length: 512 18 max_length: 4096 19 recipient_chooser: 20 module: Static 21 args: 22 static_recipient: 23 username: daisuke 24 password: hoge 25 domain: endeworks.jp 26 -
lang/perl/XMPP-Bomber/trunk/lib/XMPP/Bomber.pm
r13199 r13216 5 5 use XMPP::Bomber::Types; 6 6 7 has ' hostname' => (7 has 'clients' => ( 8 8 is => 'rw', 9 isa => 'Str', 10 required => 1, 11 ); 12 13 has 'port' => ( 14 is => 'rw', 15 isa => 'Int', 16 required => 1, 17 default => 5222, 18 ); 19 20 has 'domain' => ( 21 is => 'rw', 22 isa => 'Str', 23 required => 1, 24 ); 25 26 has 'receiver_count' => ( 27 is => 'rw', 28 isa => 'Int' 29 ); 30 31 has 'senders' => ( 32 is => 'rw', 33 isa => 'ArrayRef[XMPP::Bomber::Sender]', 34 default => sub { [] }, 35 ); 36 37 has 'receivers' => ( 38 is => 'rw', 39 isa => 'ArrayRef[XMPP::Bomber::Recever]', 40 default => sub { [] }, 41 ); 42 43 has 'sender_provider' => ( 44 is => 'rw', 45 does => 'XMPP::Bomber::Role::UserProvider', 46 coerce => 1, 47 required => 1, 48 ); 49 50 has 'receiver_provider' => ( 51 is => 'rw', 52 does => 'XMPP::Bomber::Role::UserProvider', 53 coerce => 1, 54 required => 1, 55 ); 56 57 has 'content_provider' => ( 58 is => 'rw', 59 does => 'XMPP::Bomber::Role::ContentProvider', 9 isa => 'ClientList', 10 auto_deref => 1, 60 11 coerce => 1, 61 12 required => 1, … … 83 34 my ($self) = @_; 84 35 85 $self->start_receivers(); 86 $self->start_senders(); 87 $self->condvar->wait; 88 $self->stop_senders(); 89 $self->stop_receivers(); 36 $self->run_clients; 37 38 wait(); 39 } 40 41 sub run_clients 42 { 43 my $self = shift; 44 45 foreach my $client ($self->clients) { 46 my $pid = fork(); 47 if (! defined $pid) { 48 die "Failed to fork!"; 49 } 50 51 if (! $pid ) { 52 eval { 53 $client->run; 54 }; 55 exit $@ ? 1 : 0; 56 } 57 } 90 58 } 91 59 -
lang/perl/XMPP-Bomber/trunk/lib/XMPP/Bomber/RecipientChooser/Static.pm
r13205 r13216 9 9 is => 'rw', 10 10 isa => 'XMPP::Bomber::Account', 11 coerce => 1, 11 12 required => 1, 12 13 ); -
lang/perl/XMPP-Bomber/trunk/lib/XMPP/Bomber/Types.pm
r13211 r13216 6 6 use XMPP::Bomber::Role::ContentProvider; 7 7 use XMPP::Bomber::Role::Client; 8 use XMPP::Bomber::Role::RecipientChooser; 8 9 use XMPP::Bomber::Role::UserProvider; 9 10 … … 52 53 ; 53 54 55 coerce 'XMPP::Bomber::Role::RecipientChooser' 56 => from 'HashRef' 57 => via { 58 __auto_object_from_hash($_, "XMPP::Bomber::RecipientChooser"); 59 } 60 ; 61 54 62 coerce 'XMPP::Bomber::Server' 55 63 => from 'HashRef' 56 64 => via { 57 65 __object_from_hash($_, "XMPP::Bomber::Server"); 66 } 67 ; 68 69 70 coerce 'XMPP::Bomber::Account' 71 => from 'HashRef' 72 => via { 73 __object_from_hash($_, "XMPP::Bomber::Account"); 58 74 } 59 75 ; … … 75 91 my ($h, $prefix) = @_; 76 92 my $module = __resolve_module_name($h->{module}, $prefix); 77 __object_from_hash($h , $module);93 __object_from_hash($h->{args}, $module); 78 94 } 79 95 80 96 sub __object_from_hash { 81 97 my ($h, $module) = @_; 82 $module->new( % {$h->{args}});98 $module->new( %$h ); 83 99 } 84 100
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)