@@ -15,7 +15,7 @@ use Test::More;
15
15
BEGIN { use FindBin; chdir ($FindBin::Bin ); }
16
16
17
17
use lib ' lib' ;
18
- use Test::Nginx;
18
+ use Test::Nginx qw/ :DEFAULT http_content / ;
19
19
20
20
# ##############################################################################
21
21
@@ -45,20 +45,19 @@ http {
45
45
listen 127.0.0.1:8080;
46
46
server_name localhost;
47
47
48
+ proxy_limit_rate 20000;
49
+ proxy_buffer_size 4k;
50
+
48
51
location / {
49
52
proxy_pass http://127.0.0.1:8080/data;
50
- proxy_buffer_size 4k;
51
- proxy_limit_rate 20000;
52
- add_header X-Msec $msec;
53
+ add_header X-Msec $msec;
54
+ add_trailer X-Msec $msec;
53
55
}
54
56
55
57
location /keepalive {
56
58
proxy_http_version 1.1;
57
59
proxy_set_header Connection "";
58
60
proxy_pass http://u/data;
59
- proxy_buffer_size 4k;
60
- proxy_limit_rate 20000;
61
- add_header X-Msec $msec;
62
61
}
63
62
64
63
location /data {
@@ -73,15 +72,10 @@ $t->run();
73
72
74
73
# ##############################################################################
75
74
76
- my $r = http_get(' /' );
77
-
78
- my ($t1 ) = $r =~ / X-Msec: (\d +)/ ;
79
- my $diff = time () - $t1 ;
80
-
81
- # four chunks are split with three 1s delays
75
+ my ($body , $t1 , $t2 ) = get(' /' );
82
76
83
- cmp_ok($diff , ' >=' , 1, ' proxy_limit_rate' );
84
- like( $r , qr / ^(XXXXXXXXXX){4000} \x0d ? \x0a ? $ / m , ' response body' );
77
+ cmp_ok($t2 - $t1 , ' >=' , 1, ' proxy_limit_rate' );
78
+ is( $body , ' X ' x 40000 , ' response body' );
85
79
86
80
# in case keepalive connection was saved with the delayed flag,
87
81
# the read timer used to be a delay timer in the next request
@@ -90,3 +84,17 @@ like(http_get('/keepalive'), qr/200 OK/, 'keepalive');
90
84
like(http_get(' /keepalive' ), qr / 200 OK/ , ' keepalive 2' );
91
85
92
86
# ##############################################################################
87
+
88
+ sub get {
89
+ my ($uri ) = @_ ;
90
+ my $r = http(<<EOF );
91
+ GET $uri HTTP/1.1
92
+ Host: localhost
93
+ Connection: close
94
+
95
+ EOF
96
+
97
+ http_content($r ), $r =~ / X-Msec: (\d +)/g ;
98
+ }
99
+
100
+ # ##############################################################################
0 commit comments