]> Sergey Matveev's repositories - public-inbox.git/blob - t/config_limiter.t
spamc: retry on EINTR
[public-inbox.git] / t / config_limiter.t
1 # Copyright (C) 2016 all contributors <meta@public-inbox.org>
2 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
3 use strict;
4 use warnings;
5 use Test::More;
6 use PublicInbox::Config;
7 my $cfgpfx = "publicinbox.test";
8 {
9         my $config = PublicInbox::Config->new({
10                 "$cfgpfx.address" => 'test@example.com',
11                 "$cfgpfx.mainrepo" => '/path/to/non/existent',
12                 "$cfgpfx.httpbackendmax" => 12,
13         });
14         my $ibx = $config->lookup_name('test');
15         my $git = $ibx->git;
16         my $old = "$git";
17         my $lim = $git->{-httpbackend_limiter};
18         ok($lim, 'Limiter exists');
19         is($lim->{max}, 12, 'limiter has expected slots');
20         $ibx->{git} = undef;
21         $git = $ibx->git;
22         isnt($old, "$git", 'got new Git object');
23         is("$git->{-httpbackend_limiter}", "$lim", 'same limiter');
24 }
25
26 {
27         my $config = PublicInbox::Config->new({
28                 'publicinboxlimiter.named.max' => 3,
29                 "$cfgpfx.address" => 'test@example.com',
30                 "$cfgpfx.mainrepo" => '/path/to/non/existent',
31                 "$cfgpfx.httpbackendmax" => 'named',
32         });
33         my $ibx = $config->lookup_name('test');
34         my $git = $ibx->git;
35         ok($git, 'got git object');
36         my $old = "$git";
37         my $lim = $git->{-httpbackend_limiter};
38         ok($lim, 'Limiter exists');
39         is($lim->{max}, 3, 'limiter has expected slots');
40         $ibx->{git} = undef;
41         PublicInbox::Inbox::cleanup_task;
42         my $new = $ibx->git;
43         isnt($old, "$new", 'got new Git object');
44         is("$new->{-httpbackend_limiter}", "$lim", 'same limiter');
45         is($lim->{max}, 3, 'limiter has expected slots');
46 }
47
48 done_testing;