diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-03-09 13:19:22 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-03-09 13:19:22 +0000 |
commit | c21c3b0befeb46a51b6bf3758ffa30813bea0ff0 (patch) | |
tree | 9754ff1ca740f6346cf8483ec915d4054bc5da2d /web/server/h2o/libh2o/t/40env.t | |
parent | Adding upstream version 1.43.2. (diff) | |
download | netdata-c21c3b0befeb46a51b6bf3758ffa30813bea0ff0.tar.xz netdata-c21c3b0befeb46a51b6bf3758ffa30813bea0ff0.zip |
Adding upstream version 1.44.3.upstream/1.44.3
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'web/server/h2o/libh2o/t/40env.t')
-rw-r--r-- | web/server/h2o/libh2o/t/40env.t | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/web/server/h2o/libh2o/t/40env.t b/web/server/h2o/libh2o/t/40env.t new file mode 100644 index 000000000..daaa08665 --- /dev/null +++ b/web/server/h2o/libh2o/t/40env.t @@ -0,0 +1,80 @@ +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); +use File::Temp qw(tempdir); +use Net::EmptyPort qw(check_port empty_port); +use Test::More; +use t::Util; + +subtest "fastcgi" => sub { + my $server = spawn_h2o(<< "EOT"); +file.custom-handler: + extension: .cgi + fastcgi.spawn: "exec \$H2O_ROOT/share/h2o/fastcgi-cgi" + unsetenv: + - "foo" +setenv: + "global": 123 +hosts: + default: + setenv: + "host": 234 + paths: + "/": + setenv: + "path": 345 + "foo": "abc" + file.dir: @{[ DOC_ROOT ]} + "/unset": + unsetenv: "host" + file.dir: @{[ DOC_ROOT ]} +EOT + subtest "basic" => sub { + run_with_curl($server, sub { + my ($proto, $port, $curl) = @_; + my $resp = `$curl --silent $proto://127.0.0.1:$port/printenv.cgi`; + like $resp, qr{^global:123$}m; + like $resp, qr{^host:234$}m; + like $resp, qr{^path:345$}m; + unlike $resp, qr{^foo:}m; + }); + }; + subtest "unsetenv" => sub { + run_with_curl($server, sub { + my ($proto, $port, $curl) = @_; + my $resp = `$curl --silent $proto://127.0.0.1:$port/unset/printenv.cgi`; + like $resp, qr{^global:123$}m; + unlike $resp, qr{^host:}m; + unlike $resp, qr{^path:}m; + unlike $resp, qr{^foo:}m; + }); + }; +}; + +subtest "mruby" => sub { + plan skip_all => 'mruby support is off' + unless server_features()->{mruby}; + my $server = spawn_h2o(<< 'EOT'); +hosts: + default: + paths: + "/": + setenv: + foo: 123 + mruby.handler: | + Proc.new do |env| + [ + 200, + {"content-type" => "text/plain; charset=utf-8"}, + [(env.map {|k, v| k + ":" + String(v) + "\n"}).join] + ] + end +EOT + run_with_curl($server, sub { + my ($proto, $port, $curl) = @_; + my $resp = `$curl --silent $proto://127.0.0.1:$port/`; + like $resp, qr{^foo:123$}m; + }); +}; + +done_testing(); |