annotate perl_ssi.t @ 1897:38f1fd9ca3e6

Tests: unbreak reading new stderr data after eof. Tests don't expect to stop reading redirected stderr when end of file is reached, but rather to read new data being appended, similar to "tail -f". The behaviour is found changed in Ubuntu 23.04's Perl 5.36, which applies the upstream patch [1] expected for inclusion in the upcoming Perl 5.38. The fix is to clear the filehandle's error state to continue reading. [1] https://github.com/Perl/perl5/commit/80c1f1e45e8e Updated mail_error_log.t and stream_error_log.t for consistency.
author Sergey Kandaurov <pluknet@nginx.com>
date Mon, 29 May 2023 17:27:11 +0400
parents 3a3a7f68c6d7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1074
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for embedded perl module.
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24 my $t = Test::Nginx->new()->has(qw/http perl ssi/)->plan(3)
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25 ->write_file_expand('nginx.conf', <<'EOF');
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27 %%TEST_GLOBALS%%
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29 daemon off;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31 events {
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 }
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34 http {
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 %%TEST_GLOBALS_HTTP%%
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37 server {
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 listen 127.0.0.1:8080;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 server_name localhost;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41 location / {
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 ssi on;
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 }
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45 location /dummy {
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 perl 'sub foo { my $r = shift; $r->print(join ",", @_); }';
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47 }
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 }
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49 }
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51 EOF
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 $t->write_file('t1.html', 'X<!--#perl sub="foo" arg="arg1" -->X');
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54 $t->write_file('t2.html', 'X<!--#perl sub="foo" arg="arg1" arg="arg2" -->X');
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 $t->write_file('noargs.html', 'X<!--#perl sub="foo" -->X');
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 $t->run();
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 ###############################################################################
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 like(http_get('/t1.html'), qr/Xarg1X/, 'perl ssi response');
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62 like(http_get('/t2.html'), qr/Xarg1,arg2X/, 'perl ssi two args');
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63 like(http_get('/noargs.html'), qr/XX/, 'perl ssi noargs');
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64
a2b6997b4d48 Tests: perl ssi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65 ###############################################################################