comparison h2.t @ 766:a764054d457f

Tests: adopt h2.t to the changed max_field_size behaviour.
author Sergey Kandaurov <pluknet@nginx.com>
date Wed, 28 Oct 2015 00:11:46 +0300
parents 14d6f69b7d9d
children fc846cf75c34
comparison
equal deleted inserted replaced
765:14d6f69b7d9d 766:a764054d457f
30 eval { IO::Socket::SSL::SSL_VERIFY_NONE(); }; 30 eval { IO::Socket::SSL::SSL_VERIFY_NONE(); };
31 plan(skip_all => 'IO::Socket::SSL too old') if $@; 31 plan(skip_all => 'IO::Socket::SSL too old') if $@;
32 32
33 my $t = Test::Nginx->new()->has(qw/http http_ssl http_v2 proxy cache/) 33 my $t = Test::Nginx->new()->has(qw/http http_ssl http_v2 proxy cache/)
34 ->has(qw/limit_conn rewrite realip shmem/) 34 ->has(qw/limit_conn rewrite realip shmem/)
35 ->has_daemon('openssl')->plan(279); 35 ->has_daemon('openssl')->plan(282);
36 36
37 # Some systems may have also a bug in not treating zero writev iovcnt as EINVAL 37 # Some systems may have also a bug in not treating zero writev iovcnt as EINVAL
38 38
39 $t->todo_alerts(); 39 $t->todo_alerts();
40 40
195 195
196 server { 196 server {
197 listen 127.0.0.1:8087 http2; 197 listen 127.0.0.1:8087 http2;
198 server_name localhost; 198 server_name localhost;
199 199
200 http2_max_field_size 32; 200 http2_max_field_size 22;
201 } 201 }
202 202
203 server { 203 server {
204 listen 127.0.0.1:8088 http2; 204 listen 127.0.0.1:8088 http2;
205 server_name localhost; 205 server_name localhost;
1838 1838
1839 } 1839 }
1840 1840
1841 # max_field_size 1841 # max_field_size
1842 1842
1843 TODO: {
1844 local $TODO = 'not yet';
1845
1843 $sess = new_session(8087); 1846 $sess = new_session(8087);
1844 $sid = new_stream($sess, { headers => [ 1847 $sid = new_stream($sess, { headers => [
1845 { name => ':method', value => 'GET', mode => 0 }, 1848 { name => ':method', value => 'GET', mode => 0 },
1846 { name => ':scheme', value => 'http', mode => 0 }, 1849 { name => ':scheme', value => 'http', mode => 0 },
1847 { name => ':path', value => '/t2.html', mode => 1 }, 1850 { name => ':path', value => '/t2.html', mode => 1 },
1848 { name => ':authority', value => 'localhost', mode => 1 }, 1851 { name => ':authority', value => 'localhost', mode => 1 },
1849 { name => 'longname10', value => 'valu5' x 4 . 'x', mode => 2 }]}); 1852 { name => 'longname10' x 2 . 'x', value => 'value', mode => 2 }]});
1850 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]); 1853 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]);
1851 1854
1852 ($frame) = grep { $_->{type} eq 'DATA' } @$frames; 1855 ($frame) = grep { $_->{type} eq 'DATA' } @$frames;
1853 ok($frame, 'field size less'); 1856 ok($frame, 'field name size less');
1854 1857
1855 $sid = new_stream($sess, { headers => [ 1858 $sid = new_stream($sess, { headers => [
1856 { name => ':method', value => 'GET', mode => 0 }, 1859 { name => ':method', value => 'GET', mode => 0 },
1857 { name => ':scheme', value => 'http', mode => 0 }, 1860 { name => ':scheme', value => 'http', mode => 0 },
1858 { name => ':path', value => '/t2.html', mode => 1 }, 1861 { name => ':path', value => '/t2.html', mode => 1 },
1859 { name => ':authority', value => 'localhost', mode => 1 }, 1862 { name => ':authority', value => 'localhost', mode => 1 },
1860 { name => 'longname10', value => 'valu5' x 4 . 'x', mode => 2 }]}); 1863 { name => 'longname10' x 2 . 'x', value => 'value', mode => 2 }]});
1861 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]); 1864 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]);
1862 1865
1863 ($frame) = grep { $_->{type} eq 'DATA' } @$frames; 1866 ($frame) = grep { $_->{type} eq 'DATA' } @$frames;
1864 ok($frame, 'field size second'); 1867 ok($frame, 'field name size second');
1865 1868
1866 $sess = new_session(8087); 1869 $sess = new_session(8087);
1867 $sid = new_stream($sess, { headers => [ 1870 $sid = new_stream($sess, { headers => [
1868 { name => ':method', value => 'GET', mode => 0 }, 1871 { name => ':method', value => 'GET', mode => 0 },
1869 { name => ':scheme', value => 'http', mode => 0 }, 1872 { name => ':scheme', value => 'http', mode => 0 },
1870 { name => ':path', value => '/t2.html', mode => 1 }, 1873 { name => ':path', value => '/t2.html', mode => 1 },
1871 { name => ':authority', value => 'localhost', mode => 1 }, 1874 { name => ':authority', value => 'localhost', mode => 1 },
1872 { name => 'longname10', value => 'valu5' x 4 . 'xx', mode => 2 }]}); 1875 { name => 'longname10' x 2 . 'xx', value => 'value', mode => 2 }]});
1873 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]); 1876 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]);
1874 1877
1875 ($frame) = grep { $_->{type} eq 'DATA' } @$frames; 1878 ($frame) = grep { $_->{type} eq 'DATA' } @$frames;
1876 ok($frame, 'field size equal'); 1879 ok($frame, 'field name size equal');
1880
1881 }
1877 1882
1878 $sess = new_session(8087); 1883 $sess = new_session(8087);
1879 $sid = new_stream($sess, { headers => [ 1884 $sid = new_stream($sess, { headers => [
1880 { name => ':method', value => 'GET', mode => 0 }, 1885 { name => ':method', value => 'GET', mode => 0 },
1881 { name => ':scheme', value => 'http', mode => 0 }, 1886 { name => ':scheme', value => 'http', mode => 0 },
1882 { name => ':path', value => '/t2.html', mode => 1 }, 1887 { name => ':path', value => '/t2.html', mode => 1 },
1883 { name => ':authority', value => 'localhost', mode => 1 }, 1888 { name => ':authority', value => 'localhost', mode => 1 },
1884 { name => 'longname10', value => 'valu5' x 4 . 'xxx', mode => 2 }]}); 1889 { name => 'longname10' x 2 . 'xxx', value => 'value', mode => 2 }]});
1885 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]); 1890 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]);
1886 1891
1887 ($frame) = grep { $_->{type} eq 'DATA' } @$frames; 1892 ($frame) = grep { $_->{type} eq 'DATA' } @$frames;
1888 is($frame, undef, 'field size greater'); 1893 is($frame, undef, 'field name size greater');
1894
1895 TODO: {
1896 local $TODO = 'not yet';
1897
1898 $sess = new_session(8087);
1899 $sid = new_stream($sess, { headers => [
1900 { name => ':method', value => 'GET', mode => 0 },
1901 { name => ':scheme', value => 'http', mode => 0 },
1902 { name => ':path', value => '/t2.html', mode => 1 },
1903 { name => ':authority', value => 'localhost', mode => 1 },
1904 { name => 'name', value => 'valu5' x 4 . 'x', mode => 2 }]});
1905 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]);
1906
1907 ($frame) = grep { $_->{type} eq 'DATA' } @$frames;
1908 ok($frame, 'field value size less');
1909
1910 $sess = new_session(8087);
1911 $sid = new_stream($sess, { headers => [
1912 { name => ':method', value => 'GET', mode => 0 },
1913 { name => ':scheme', value => 'http', mode => 0 },
1914 { name => ':path', value => '/t2.html', mode => 1 },
1915 { name => ':authority', value => 'localhost', mode => 1 },
1916 { name => 'name', value => 'valu5' x 4 . 'xx', mode => 2 }]});
1917 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]);
1918
1919 ($frame) = grep { $_->{type} eq 'DATA' } @$frames;
1920 ok($frame, 'field value size equal');
1921
1922 }
1923
1924 $sess = new_session(8087);
1925 $sid = new_stream($sess, { headers => [
1926 { name => ':method', value => 'GET', mode => 0 },
1927 { name => ':scheme', value => 'http', mode => 0 },
1928 { name => ':path', value => '/t2.html', mode => 1 },
1929 { name => ':authority', value => 'localhost', mode => 1 },
1930 { name => 'name', value => 'valu5' x 4 . 'xxx', mode => 2 }]});
1931 $frames = h2_read($sess, all => [{ sid => $sid, fin => 1 }]);
1932
1933 ($frame) = grep { $_->{type} eq 'DATA' } @$frames;
1934 is($frame, undef, 'field value size greater');
1889 1935
1890 # max_header_size 1936 # max_header_size
1891 1937
1892 $sess = new_session(8088); 1938 $sess = new_session(8088);
1893 $sid = new_stream($sess, { headers => [ 1939 $sid = new_stream($sess, { headers => [