summaryrefslogtreecommitdiffhomepage
path: root/test/perl
diff options
context:
space:
mode:
authorMax Romanov <max.romanov@nginx.com>2021-12-27 16:37:35 +0300
committerMax Romanov <max.romanov@nginx.com>2021-12-27 16:37:35 +0300
commitf8452838207d56892fb80b5976b37aab1efcaa1e (patch)
tree34ae7e0ab5df034c01377de108f9fc964e9d11d1 /test/perl
parent650784928293bb07b5b4acf4b14d3845b011556d (diff)
downloadunit-f8452838207d56892fb80b5976b37aab1efcaa1e.tar.gz
unit-f8452838207d56892fb80b5976b37aab1efcaa1e.tar.bz2
Perl: creating input and error streams if closed.
Application handler can do anything with a stream object (including close it). Once the stream is closed, Unit creates a new stream. This closes #616 issue on GitHub.
Diffstat (limited to 'test/perl')
-rw-r--r--test/perl/input_buffered_read/psgi.pl17
-rw-r--r--test/perl/input_close/psgi.pl8
2 files changed, 25 insertions, 0 deletions
diff --git a/test/perl/input_buffered_read/psgi.pl b/test/perl/input_buffered_read/psgi.pl
new file mode 100644
index 00000000..4ca699d7
--- /dev/null
+++ b/test/perl/input_buffered_read/psgi.pl
@@ -0,0 +1,17 @@
+use FileHandle;
+
+my $app = sub {
+ my ($environ) = @_;
+
+ $environ->{'psgi.input'}->read(my $body, 1024);
+
+ open my $io, "<", \$body;
+
+ # This makes $io work as FileHandle under 5.8, .10 and .11.
+ bless $io, 'FileHandle';
+
+ $environ->{'psgix.input.buffered'} = 1;
+ $environ->{'psgi.input'} = $io;
+
+ return ['200', ['Content-Length' => length $body], [$body]];
+};
diff --git a/test/perl/input_close/psgi.pl b/test/perl/input_close/psgi.pl
new file mode 100644
index 00000000..4a2d9bb9
--- /dev/null
+++ b/test/perl/input_close/psgi.pl
@@ -0,0 +1,8 @@
+my $app = sub {
+ my ($environ) = @_;
+
+ $environ->{'psgi.input'}->read(my $body, 1024);
+ $environ->{'psgi.input'}->close();
+
+ return ['200', ['Content-Length' => length $body], [$body]];
+};