From 5294d7e18fb0d43bd467155a57e345a697fd3f6a Mon Sep 17 00:00:00 2001 From: Glenn Strauss Date: Thu, 8 Jul 2021 00:21:48 -0400 Subject: [PATCH] [tests] combine *.t using tests/condition.conf combine tests/*.t using tests/condition.conf into tests/core-condition.t Platforms which are horrifically slow starting processes (e.g. Windows) take much more time to start and stop lighttpd many times for independent *.t instances run through the Perl Test::More framework --- tests/CMakeLists.txt | 1 - tests/Makefile.am | 4 +-- tests/condition.conf | 9 +++++- tests/core-condition.t | 47 +++++++++++++++++++++++++++++-- tests/core-var-include.t | 61 ---------------------------------------- tests/meson.build | 1 - tests/var-include.conf | 41 --------------------------- 7 files changed, 54 insertions(+), 110 deletions(-) delete mode 100755 tests/core-var-include.t delete mode 100644 tests/var-include.conf diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 0b81ba9b..cfb20740 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -5,7 +5,6 @@ set(T_FILES prepare.sh request.t core-condition.t - core-var-include.t mod-fastcgi.t mod-scgi.t cleanup.sh diff --git a/tests/Makefile.am b/tests/Makefile.am index b298f699..3ae5dc62 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -14,7 +14,6 @@ TESTS=\ CONFS=\ condition.conf \ core-condition.t \ - core-var-include.t \ fastcgi-responder.conf \ LightyTest.pm \ mod-fastcgi.t \ @@ -22,8 +21,7 @@ CONFS=\ proxy.conf \ request.t \ scgi-responder.conf \ - var-include-sub.conf \ - var-include.conf + var-include-sub.conf TESTS_ENVIRONMENT=$(srcdir)/wrapper.sh $(srcdir) $(top_builddir) diff --git a/tests/condition.conf b/tests/condition.conf index b28be7b8..bbd2dd1c 100644 --- a/tests/condition.conf +++ b/tests/condition.conf @@ -6,7 +6,7 @@ server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.o server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" server.name = "www.example.org" -server.tag = "Apache 1.3.29" +server.tag = "lighttpd-1.4.x" server.compat-module-load = "disable" server.modules = ( @@ -78,6 +78,13 @@ else $HTTP["host"] == "test4.example.org" { ) } } +else $HTTP["host"] == "test.example.org" { + server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" + server.name = "test.example.org" + var.myvar = "good" + var.one = 1 + include "var-include-sub.conf" +} $HTTP["url"] != "/show/other/server-tag" { } diff --git a/tests/core-condition.t b/tests/core-condition.t index 40647041..2ba70aa9 100755 --- a/tests/core-condition.t +++ b/tests/core-condition.t @@ -8,12 +8,14 @@ BEGIN { use strict; use IO::Socket; -use Test::More tests => 10; +use Test::More tests => 25; use LightyTest; my $tf = LightyTest->new(); my $t; +$ENV{"env_test"} = "good_env"; + $tf->{CONFIGFILE} = 'condition.conf'; ok($tf->start_proc == 0, "Starting lighttpd") or die(); @@ -69,7 +71,7 @@ $t->{REQUEST} = ( <{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Server' => 'Apache 1.3.29' } ]; +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Server' => 'lighttpd-1.4.x' } ]; ok($tf->handle_http($t) == 0, 'condition: handle if before else branches'); $t->{REQUEST} = ( <{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Server' => 'special tag' } ]; ok($tf->handle_http($t) == 0, 'condition: handle if before else branches #2'); + +## config includes + +$t->{REQUEST} = ( "GET /index.html HTTP/1.0\r\nHost: www.example.org\r\n" ); +$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Location' => "/match_1" } ]; +ok($tf->handle_http($t) == 0, 'basic test'); + +my $myvar = "good"; +my $server_name = "test.example.org"; +my $mystr = "string"; +$mystr .= "_append"; +my $tests = { + "include" => "/good_include", + "concat" => "/good_" . "concat", + "servername1" => "/good_" . $server_name, + "servername2" => $server_name . "/good_", + "servername3" => "/good_" . $server_name . "/", + "var.myvar" => "/good_var_myvar" . $myvar, + "myvar" => "/good_myvar" . $myvar, + "env" => "/" . $ENV{"env_test"}, + + "number1" => "/good_number" . "1", + "number2" => "1" . "/good_number", + "array_append" => "/good_array_append", + "string_append" => "/good_" . $mystr, + "number_append" => "/good_" . "2", + + "include_shell" => "/good_include_shell_" . "456" +}; + +foreach my $test (keys %{ $tests }) { + my $expect = $tests->{$test}; + $t->{REQUEST} = ( <{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Location' => $expect } ]; + ok($tf->handle_http($t) == 0, $test); +} + ok($tf->stop_proc == 0, "Stopping lighttpd"); diff --git a/tests/core-var-include.t b/tests/core-var-include.t deleted file mode 100755 index 8161751b..00000000 --- a/tests/core-var-include.t +++ /dev/null @@ -1,61 +0,0 @@ -#!/usr/bin/env perl -BEGIN { - # add current source dir to the include-path - # we need this for make distcheck - (my $srcdir = $0) =~ s,/[^/]+$,/,; - unshift @INC, $srcdir; -} - -use strict; -use IO::Socket; -use Test::More tests => 17; -use LightyTest; - -my $tf = LightyTest->new(); -my $t; - -$ENV{"env_test"} = "good_env"; - -$tf->{CONFIGFILE} = 'var-include.conf'; - -ok($tf->start_proc == 0, "Starting lighttpd") or die(); - -$t->{REQUEST} = ( "GET /index.html HTTP/1.0\r\nHost: www.example.org\r\n" ); -$t->{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Location' => "/redirect" } ]; -ok($tf->handle_http($t) == 0, 'basic test'); - -my $myvar = "good"; -my $server_name = "test.example.org"; -my $mystr = "string"; -$mystr .= "_append"; -my $tests = { - "include" => "/good_include", - "concat" => "/good_" . "concat", - "servername1" => "/good_" . $server_name, - "servername2" => $server_name . "/good_", - "servername3" => "/good_" . $server_name . "/", - "var.myvar" => "/good_var_myvar" . $myvar, - "myvar" => "/good_myvar" . $myvar, - "env" => "/" . $ENV{"env_test"}, - - "number1" => "/good_number" . "1", - "number2" => "1" . "/good_number", - "array_append" => "/good_array_append", - "string_append" => "/good_" . $mystr, - "number_append" => "/good_" . "2", - - "include_shell" => "/good_include_shell_" . "456" -}; - -foreach my $test (keys %{ $tests }) { - my $expect = $tests->{$test}; - $t->{REQUEST} = ( <{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Location' => $expect } ]; - ok($tf->handle_http($t) == 0, $test); -} - -ok($tf->stop_proc == 0, "Stopping lighttpd"); diff --git a/tests/meson.build b/tests/meson.build index c6f03be6..ed4734d0 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -15,7 +15,6 @@ env.set('top_builddir', meson.build_root()) tests = [ 'request.t', 'core-condition.t', - 'core-var-include.t', 'mod-fastcgi.t', 'mod-scgi.t', ] diff --git a/tests/var-include.conf b/tests/var-include.conf deleted file mode 100644 index e300e8e2..00000000 --- a/tests/var-include.conf +++ /dev/null @@ -1,41 +0,0 @@ -debug.log-request-handling = "enable" -#debug.log-condition-handling = "enable" - -server.systemd-socket-activation = "enable" -server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" -server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" -server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" -server.name = "www.example.org" - -server.compat-module-load = "disable" -server.modules = ( - "mod_redirect", - "mod_accesslog", - "mod_staticfile", -) - -accesslog.filename = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.access.log" - -mimetype.assign = ( - ".html" => "text/html", -) - -url.redirect = ( - "" => "/default", -) - -$HTTP["host"] == "www.example.org" { - server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" - server.name = "www.example.org" - url.redirect = ( - "" => "/redirect", - ) -} - -$HTTP["host"] == "test.example.org" { - server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" - server.name = "test.example.org" - var.myvar = "good" - var.one = 1 - include "var-include-sub.conf" -}