From c9cf025fadfe043f0f2f679e10d1207d8a158bb6 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 17:01:31 +0200 Subject: Adding debian version 2.4.57-2. Signed-off-by: Daniel Baumann --- debian/perl-framework/t/apache/contentlength.t | 83 ++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 debian/perl-framework/t/apache/contentlength.t (limited to 'debian/perl-framework/t/apache/contentlength.t') diff --git a/debian/perl-framework/t/apache/contentlength.t b/debian/perl-framework/t/apache/contentlength.t new file mode 100644 index 0000000..f141990 --- /dev/null +++ b/debian/perl-framework/t/apache/contentlength.t @@ -0,0 +1,83 @@ +use strict; +use warnings FATAL => 'all'; + +use Apache::Test; +use Apache::TestUtil; +use Apache::TestRequest (); + +my @test_strings = ("", + "0", + "0000000000000000000000000000000000", + "1000000000000000000000000000000000", + "-1", + "123abc", + ); +my @req_strings = ("/echo_post", + "/i_do_not_exist_in_your_wildest_imagination"); + +my $resp_failure; +if (have_min_apache_version('2.2.30') + && (!have_min_apache_version('2.3.0') + || have_min_apache_version('2.4.14'))) { + $resp_failure = "HTTP/1.1 400 Bad Request"; +} +else { + $resp_failure = "HTTP/1.1 413 Request Entity Too Large"; +} +# This is expanded out. +my @resp_strings = ($resp_failure, + $resp_failure, + "HTTP/1.1 200 OK", + "HTTP/1.1 404 Not Found", + "HTTP/1.1 200 OK", + "HTTP/1.1 404 Not Found", + $resp_failure, + $resp_failure, + $resp_failure, + $resp_failure, + $resp_failure, + $resp_failure, + ); + +my $tests = 4 * @test_strings; +my $vars = Apache::Test::vars(); +my $module = 'default'; +my $cycle = 0; + +plan tests => $tests, ['eat_post']; + +print "testing $module\n"; + +for my $data (@test_strings) { + for my $request_uri (@req_strings) { + my $sock = Apache::TestRequest::vhost_socket($module); + ok $sock; + + Apache::TestRequest::socket_trace($sock); + + $sock->print("POST $request_uri HTTP/1.0\r\n"); + $sock->print("Content-Length: $data\r\n"); + $sock->print("\r\n"); + $sock->print("\r\n"); + + # Read the status line + chomp(my $response = Apache::TestRequest::getline($sock) || ''); + $response =~ s/\s$//; + + # Tests with empty content-length have platform-specific behaviour + # until 2.1.0. + skip + $data eq "" && !have_min_apache_version('2.1.0') ? + "skipping tests with empty C-L for httpd < 2.1.0" : 0, + t_cmp($response, $resp_strings[$cycle], + "response codes POST for $request_uri with Content-Length: $data"); + + $cycle++; + + do { + chomp($response = Apache::TestRequest::getline($sock) || ''); + $response =~ s/\s$//; + } + while ($response ne ""); + } +} -- cgit v1.2.3