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/50config-tag.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/50config-tag.t')
-rw-r--r-- | web/server/h2o/libh2o/t/50config-tag.t | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/web/server/h2o/libh2o/t/50config-tag.t b/web/server/h2o/libh2o/t/50config-tag.t new file mode 100644 index 000000000..dd37f996d --- /dev/null +++ b/web/server/h2o/libh2o/t/50config-tag.t @@ -0,0 +1,111 @@ +use strict; +use warnings; +use File::Temp qw(tempfile); +use Test::More; +use t::Util; + +plan skip_all => 'curl not found' + unless prog_exists('curl'); + +my $curl = "curl --silent --show-error --dump-header /dev/stderr"; + +subtest 'basic' => sub { + my $included = temp_config_file(<< "EOT"); +header.add: &marked "foo: FOO" +file.dir: @{[DOC_ROOT]} +EOT + + my $server = spawn_h2o(<< "EOT"); +hosts: + default: + paths: + /: !file $included +EOT + + my ($stderr, $stdout) = run_prog("$curl http://127.0.0.1:@{[$server->{port}]}/"); + like $stderr, qr{^HTTP/[^ ]+ 200\s}s; + like $stderr, qr{^foo: ?FOO\r$}im; +}; + +subtest 'multi-hop' => sub { + my $included2 = temp_config_file(<< "EOT"); +header.add: &marked "foo: FOO" +file.dir: @{[DOC_ROOT]} +EOT + my $included1 = temp_config_file(<< "EOT"); +!file $included2 +EOT + + my $server = spawn_h2o(<< "EOT"); +hosts: + default: + paths: + /: !file $included1 +EOT + + my ($stderr, $stdout) = run_prog("$curl http://127.0.0.1:@{[$server->{port}]}/"); + like $stderr, qr{^HTTP/[^ ]+ 200\s}s; + like $stderr, qr{^foo: ?FOO\r$}im; +}; + +subtest 'with-alias' => sub { + my $included = temp_config_file(<< "EOT"); +header.add: &marked "foo: FOO" +file.dir: @{[DOC_ROOT]} +EOT + + my $server = spawn_h2o(<< "EOT"); +hosts: + default: + paths: + /: !file $included + /another: + header.add: *marked + file.dir: @{[DOC_ROOT]} +EOT + + subtest 'with_merge' => sub { + my ($stderr, $stdout) = run_prog("$curl http://127.0.0.1:@{[$server->{port}]}/"); + like $stderr, qr{^HTTP/[^ ]+ 200\s}s; + like $stderr, qr{^foo: ?FOO\r$}im; + }; + + subtest 'with_alias' => sub { + my ($stderr, $stdout) = run_prog("$curl http://127.0.0.1:@{[$server->{port}]}/another/"); + like $stderr, qr{^HTTP/[^ ]+ 200\s}s; + like $stderr, qr{^foo: ?FOO\r$}im; + }; +}; + +subtest 'with-merge' => sub { + my $included2 = temp_config_file(<< "EOT"); +header.add: "foo: FOO" +EOT + my $included1 = temp_config_file(<< "EOT"); +<<: !file $included2 +header.append: "bar: BAR" +EOT + + my $server = spawn_h2o(<< "EOT"); +hosts: + default: + paths: + /: + <<: !file $included1 + file.dir: @{[ DOC_ROOT ]} +EOT + + my ($stderr, $stdout) = run_prog("$curl http://127.0.0.1:@{[$server->{port}]}/"); + like $stderr, qr{^HTTP/[^ ]+ 200\s}s; + like $stderr, qr{^foo: ?FOO\r$}im; + like $stderr, qr{^bar: ?BAR\r$}im; +}; + +done_testing(); + +sub temp_config_file { + my ($content) = @_; + my ($fh, $fn) = tempfile(UNLINK => 1); + print $fh $content; + return $fn; +} |