summaryrefslogtreecommitdiffstats
path: root/debian/perl-framework/t/security/CVE-2009-1195.t
diff options
context:
space:
mode:
Diffstat (limited to 'debian/perl-framework/t/security/CVE-2009-1195.t')
-rw-r--r--debian/perl-framework/t/security/CVE-2009-1195.t1120
1 files changed, 1120 insertions, 0 deletions
diff --git a/debian/perl-framework/t/security/CVE-2009-1195.t b/debian/perl-framework/t/security/CVE-2009-1195.t
new file mode 100644
index 0000000..70663c4
--- /dev/null
+++ b/debian/perl-framework/t/security/CVE-2009-1195.t
@@ -0,0 +1,1120 @@
+use strict;
+use warnings FATAL => 'all';
+
+use Apache::Test;
+use Apache::TestRequest;
+use Apache::TestUtil;
+
+
+plan tests => 221, need 'include', need_min_apache_version('2.2');
+
+Apache::TestRequest::module('mod_include'); #use this module's port
+
+my $r;
+my $body;
+
+### Test #1, context: Options None : AllowOverride Options=IncludesNoExec : Options +Includes
+
+$r = GET("/modules/include/ssi-exec/1/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #1; 500 response expected");
+
+### Test #2, context: Options None : AllowOverride Options=IncludesNoExec : Options +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/2/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #2; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #2");
+
+### Test #3, context: Options None : AllowOverride Options=IncludesNoExec : Options Includes
+
+$r = GET("/modules/include/ssi-exec/3/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #3; 500 response expected");
+
+### Test #4, context: Options None : AllowOverride Options=IncludesNoExec : Options IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/4/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #4; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #4");
+
+### Test #5, context: Options None : AllowOverride Options=IncludesNoExec : Options -Includes
+
+$r = GET("/modules/include/ssi-exec/5/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #5; 500 response expected");
+
+### Test #6, context: Options None : AllowOverride Options=IncludesNoExec : Options -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/6/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #6; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #6");
+
+### Test #7, context: Options None : AllowOverride Options=IncludesNoExec : Options -Includes +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/7/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #7; 500 response expected");
+
+### Test #8, context: Options None : AllowOverride Options=IncludesNoExec : Options +Includes -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/8/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #8; 500 response expected");
+
+### Test #9, context: Options None : AllowOverride Options=IncludesNoExec : Options -IncludesNoExec +Includes
+
+$r = GET("/modules/include/ssi-exec/9/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #9; 500 response expected");
+
+### Test #10, context: Options None : AllowOverride Options=IncludesNoExec : Options +IncludesNoExec -Includes
+
+$r = GET("/modules/include/ssi-exec/10/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #10; 500 response expected");
+
+### Test #11, context: Options None : AllowOverride Options=Includes : Options +Includes
+
+$r = GET("/modules/include/ssi-exec/11/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #11; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #11");
+
+### Test #12, context: Options None : AllowOverride Options=Includes : Options +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/12/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #12; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #12");
+
+### Test #13, context: Options None : AllowOverride Options=Includes : Options Includes
+
+$r = GET("/modules/include/ssi-exec/13/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #13; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #13");
+
+### Test #14, context: Options None : AllowOverride Options=Includes : Options IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/14/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #14; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #14");
+
+### Test #15, context: Options None : AllowOverride Options=Includes : Options -Includes
+
+$r = GET("/modules/include/ssi-exec/15/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #15; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #15");
+
+### Test #16, context: Options None : AllowOverride Options=Includes : Options -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/16/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #16; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #16");
+
+### Test #17, context: Options None : AllowOverride Options=Includes : Options -Includes +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/17/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #17; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #17");
+
+### Test #18, context: Options None : AllowOverride Options=Includes : Options +Includes -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/18/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #18; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #18");
+
+### Test #19, context: Options None : AllowOverride Options=Includes : Options -IncludesNoExec +Includes
+
+$r = GET("/modules/include/ssi-exec/19/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #19; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #19");
+
+### Test #20, context: Options None : AllowOverride Options=Includes : Options +IncludesNoExec -Includes
+
+$r = GET("/modules/include/ssi-exec/20/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #20; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #20");
+
+### Test #21, context: Options None : AllowOverride All : Options +Includes
+
+$r = GET("/modules/include/ssi-exec/21/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #21; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #21");
+
+### Test #22, context: Options None : AllowOverride All : Options +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/22/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #22; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #22");
+
+### Test #23, context: Options None : AllowOverride All : Options Includes
+
+$r = GET("/modules/include/ssi-exec/23/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #23; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #23");
+
+### Test #24, context: Options None : AllowOverride All : Options IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/24/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #24; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #24");
+
+### Test #25, context: Options None : AllowOverride All : Options -Includes
+
+$r = GET("/modules/include/ssi-exec/25/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #25; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #25");
+
+### Test #26, context: Options None : AllowOverride All : Options -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/26/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #26; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #26");
+
+### Test #27, context: Options None : AllowOverride All : Options -Includes +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/27/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #27; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #27");
+
+### Test #28, context: Options None : AllowOverride All : Options +Includes -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/28/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #28; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #28");
+
+### Test #29, context: Options None : AllowOverride All : Options -IncludesNoExec +Includes
+
+$r = GET("/modules/include/ssi-exec/29/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #29; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #29");
+
+### Test #30, context: Options None : AllowOverride All : Options +IncludesNoExec -Includes
+
+$r = GET("/modules/include/ssi-exec/30/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #30; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #30");
+
+### Test #31, context: Options None : AllowOverride None : Options +Includes
+
+$r = GET("/modules/include/ssi-exec/31/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #31; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #31");
+
+### Test #32, context: Options None : AllowOverride None : Options +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/32/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #32; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #32");
+
+### Test #33, context: Options None : AllowOverride None : Options Includes
+
+$r = GET("/modules/include/ssi-exec/33/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #33; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #33");
+
+### Test #34, context: Options None : AllowOverride None : Options IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/34/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #34; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #34");
+
+### Test #35, context: Options None : AllowOverride None : Options -Includes
+
+$r = GET("/modules/include/ssi-exec/35/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #35; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #35");
+
+### Test #36, context: Options None : AllowOverride None : Options -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/36/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #36; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #36");
+
+### Test #37, context: Options None : AllowOverride None : Options -Includes +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/37/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #37; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #37");
+
+### Test #38, context: Options None : AllowOverride None : Options +Includes -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/38/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #38; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #38");
+
+### Test #39, context: Options None : AllowOverride None : Options -IncludesNoExec +Includes
+
+$r = GET("/modules/include/ssi-exec/39/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #39; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #39");
+
+### Test #40, context: Options None : AllowOverride None : Options +IncludesNoExec -Includes
+
+$r = GET("/modules/include/ssi-exec/40/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #40; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #40");
+
+### Test #41, context: Options IncludesNoExec : AllowOverride Options=IncludesNoExec : Options +Includes
+
+$r = GET("/modules/include/ssi-exec/41/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #41; 500 response expected");
+
+### Test #42, context: Options IncludesNoExec : AllowOverride Options=IncludesNoExec : Options +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/42/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #42; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #42");
+
+### Test #43, context: Options IncludesNoExec : AllowOverride Options=IncludesNoExec : Options Includes
+
+$r = GET("/modules/include/ssi-exec/43/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #43; 500 response expected");
+
+### Test #44, context: Options IncludesNoExec : AllowOverride Options=IncludesNoExec : Options IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/44/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #44; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #44");
+
+### Test #45, context: Options IncludesNoExec : AllowOverride Options=IncludesNoExec : Options -Includes
+
+$r = GET("/modules/include/ssi-exec/45/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #45; 500 response expected");
+
+### Test #46, context: Options IncludesNoExec : AllowOverride Options=IncludesNoExec : Options -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/46/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #46; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #46");
+
+### Test #47, context: Options IncludesNoExec : AllowOverride Options=IncludesNoExec : Options -Includes +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/47/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #47; 500 response expected");
+
+### Test #48, context: Options IncludesNoExec : AllowOverride Options=IncludesNoExec : Options +Includes -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/48/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #48; 500 response expected");
+
+### Test #49, context: Options IncludesNoExec : AllowOverride Options=IncludesNoExec : Options -IncludesNoExec +Includes
+
+$r = GET("/modules/include/ssi-exec/49/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #49; 500 response expected");
+
+### Test #50, context: Options IncludesNoExec : AllowOverride Options=IncludesNoExec : Options +IncludesNoExec -Includes
+
+$r = GET("/modules/include/ssi-exec/50/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #50; 500 response expected");
+
+### Test #51, context: Options IncludesNoExec : AllowOverride Options=Includes : Options +Includes
+
+$r = GET("/modules/include/ssi-exec/51/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #51; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #51");
+
+### Test #52, context: Options IncludesNoExec : AllowOverride Options=Includes : Options +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/52/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #52; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #52");
+
+### Test #53, context: Options IncludesNoExec : AllowOverride Options=Includes : Options Includes
+
+$r = GET("/modules/include/ssi-exec/53/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #53; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #53");
+
+### Test #54, context: Options IncludesNoExec : AllowOverride Options=Includes : Options IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/54/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #54; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #54");
+
+### Test #55, context: Options IncludesNoExec : AllowOverride Options=Includes : Options -Includes
+
+$r = GET("/modules/include/ssi-exec/55/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #55; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #55");
+
+### Test #56, context: Options IncludesNoExec : AllowOverride Options=Includes : Options -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/56/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #56; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #56");
+
+### Test #57, context: Options IncludesNoExec : AllowOverride Options=Includes : Options -Includes +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/57/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #57; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #57");
+
+### Test #58, context: Options IncludesNoExec : AllowOverride Options=Includes : Options +Includes -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/58/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #58; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #58");
+
+### Test #59, context: Options IncludesNoExec : AllowOverride Options=Includes : Options -IncludesNoExec +Includes
+
+$r = GET("/modules/include/ssi-exec/59/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #59; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #59");
+
+### Test #60, context: Options IncludesNoExec : AllowOverride Options=Includes : Options +IncludesNoExec -Includes
+
+$r = GET("/modules/include/ssi-exec/60/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #60; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #60");
+
+### Test #61, context: Options IncludesNoExec : AllowOverride All : Options +Includes
+
+$r = GET("/modules/include/ssi-exec/61/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #61; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #61");
+
+### Test #62, context: Options IncludesNoExec : AllowOverride All : Options +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/62/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #62; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #62");
+
+### Test #63, context: Options IncludesNoExec : AllowOverride All : Options Includes
+
+$r = GET("/modules/include/ssi-exec/63/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #63; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #63");
+
+### Test #64, context: Options IncludesNoExec : AllowOverride All : Options IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/64/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #64; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #64");
+
+### Test #65, context: Options IncludesNoExec : AllowOverride All : Options -Includes
+
+$r = GET("/modules/include/ssi-exec/65/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #65; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #65");
+
+### Test #66, context: Options IncludesNoExec : AllowOverride All : Options -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/66/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #66; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #66");
+
+### Test #67, context: Options IncludesNoExec : AllowOverride All : Options -Includes +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/67/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #67; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #67");
+
+### Test #68, context: Options IncludesNoExec : AllowOverride All : Options +Includes -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/68/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #68; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #68");
+
+### Test #69, context: Options IncludesNoExec : AllowOverride All : Options -IncludesNoExec +Includes
+
+$r = GET("/modules/include/ssi-exec/69/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #69; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #69");
+
+### Test #70, context: Options IncludesNoExec : AllowOverride All : Options +IncludesNoExec -Includes
+
+$r = GET("/modules/include/ssi-exec/70/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #70; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #70");
+
+### Test #71, context: Options IncludesNoExec : AllowOverride None : Options +Includes
+
+$r = GET("/modules/include/ssi-exec/71/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #71; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #71");
+
+### Test #72, context: Options IncludesNoExec : AllowOverride None : Options +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/72/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #72; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #72");
+
+### Test #73, context: Options IncludesNoExec : AllowOverride None : Options Includes
+
+$r = GET("/modules/include/ssi-exec/73/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #73; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #73");
+
+### Test #74, context: Options IncludesNoExec : AllowOverride None : Options IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/74/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #74; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #74");
+
+### Test #75, context: Options IncludesNoExec : AllowOverride None : Options -Includes
+
+$r = GET("/modules/include/ssi-exec/75/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #75; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #75");
+
+### Test #76, context: Options IncludesNoExec : AllowOverride None : Options -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/76/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #76; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #76");
+
+### Test #77, context: Options IncludesNoExec : AllowOverride None : Options -Includes +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/77/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #77; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #77");
+
+### Test #78, context: Options IncludesNoExec : AllowOverride None : Options +Includes -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/78/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #78; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #78");
+
+### Test #79, context: Options IncludesNoExec : AllowOverride None : Options -IncludesNoExec +Includes
+
+$r = GET("/modules/include/ssi-exec/79/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #79; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #79");
+
+### Test #80, context: Options IncludesNoExec : AllowOverride None : Options +IncludesNoExec -Includes
+
+$r = GET("/modules/include/ssi-exec/80/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #80; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #80");
+
+### Test #81, context: Options Includes : AllowOverride Options=IncludesNoExec : Options +Includes
+
+$r = GET("/modules/include/ssi-exec/81/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #81; 500 response expected");
+
+### Test #82, context: Options Includes : AllowOverride Options=IncludesNoExec : Options +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/82/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #82; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #82");
+
+### Test #83, context: Options Includes : AllowOverride Options=IncludesNoExec : Options Includes
+
+$r = GET("/modules/include/ssi-exec/83/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #83; 500 response expected");
+
+### Test #84, context: Options Includes : AllowOverride Options=IncludesNoExec : Options IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/84/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #84; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #84");
+
+### Test #85, context: Options Includes : AllowOverride Options=IncludesNoExec : Options -Includes
+
+$r = GET("/modules/include/ssi-exec/85/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #85; 500 response expected");
+
+### Test #86, context: Options Includes : AllowOverride Options=IncludesNoExec : Options -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/86/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #86; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #86");
+
+### Test #87, context: Options Includes : AllowOverride Options=IncludesNoExec : Options -Includes +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/87/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #87; 500 response expected");
+
+### Test #88, context: Options Includes : AllowOverride Options=IncludesNoExec : Options +Includes -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/88/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #88; 500 response expected");
+
+### Test #89, context: Options Includes : AllowOverride Options=IncludesNoExec : Options -IncludesNoExec +Includes
+
+$r = GET("/modules/include/ssi-exec/89/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #89; 500 response expected");
+
+### Test #90, context: Options Includes : AllowOverride Options=IncludesNoExec : Options +IncludesNoExec -Includes
+
+$r = GET("/modules/include/ssi-exec/90/exec.shtml");
+ok t_cmp($r->code, 500, "Options should not be allowed for script #90; 500 response expected");
+
+### Test #91, context: Options Includes : AllowOverride Options=Includes : Options +Includes
+
+$r = GET("/modules/include/ssi-exec/91/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #91; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #91");
+
+### Test #92, context: Options Includes : AllowOverride Options=Includes : Options +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/92/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #92; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #92");
+
+### Test #93, context: Options Includes : AllowOverride Options=Includes : Options Includes
+
+$r = GET("/modules/include/ssi-exec/93/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #93; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #93");
+
+### Test #94, context: Options Includes : AllowOverride Options=Includes : Options IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/94/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #94; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #94");
+
+### Test #95, context: Options Includes : AllowOverride Options=Includes : Options -Includes
+
+$r = GET("/modules/include/ssi-exec/95/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #95; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #95");
+
+### Test #96, context: Options Includes : AllowOverride Options=Includes : Options -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/96/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #96; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #96");
+
+### Test #97, context: Options Includes : AllowOverride Options=Includes : Options -Includes +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/97/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #97; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #97");
+
+### Test #98, context: Options Includes : AllowOverride Options=Includes : Options +Includes -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/98/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #98; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #98");
+
+### Test #99, context: Options Includes : AllowOverride Options=Includes : Options -IncludesNoExec +Includes
+
+$r = GET("/modules/include/ssi-exec/99/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #99; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #99");
+
+### Test #100, context: Options Includes : AllowOverride Options=Includes : Options +IncludesNoExec -Includes
+
+$r = GET("/modules/include/ssi-exec/100/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #100; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #100");
+
+### Test #101, context: Options Includes : AllowOverride All : Options +Includes
+
+$r = GET("/modules/include/ssi-exec/101/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #101; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #101");
+
+### Test #102, context: Options Includes : AllowOverride All : Options +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/102/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #102; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #102");
+
+### Test #103, context: Options Includes : AllowOverride All : Options Includes
+
+$r = GET("/modules/include/ssi-exec/103/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #103; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #103");
+
+### Test #104, context: Options Includes : AllowOverride All : Options IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/104/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #104; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #104");
+
+### Test #105, context: Options Includes : AllowOverride All : Options -Includes
+
+$r = GET("/modules/include/ssi-exec/105/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #105; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #105");
+
+### Test #106, context: Options Includes : AllowOverride All : Options -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/106/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #106; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #106");
+
+### Test #107, context: Options Includes : AllowOverride All : Options -Includes +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/107/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #107; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, '[an error occurred while processing this directive]', "SSI should be evaluated but exec not permitted for script #107");
+
+### Test #108, context: Options Includes : AllowOverride All : Options +Includes -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/108/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #108; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #108");
+
+### Test #109, context: Options Includes : AllowOverride All : Options -IncludesNoExec +Includes
+
+$r = GET("/modules/include/ssi-exec/109/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #109; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #109");
+
+### Test #110, context: Options Includes : AllowOverride All : Options +IncludesNoExec -Includes
+
+$r = GET("/modules/include/ssi-exec/110/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #110; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, qr/--\#exec cgi=/, "SSI should not be evaluated for script #110");
+
+### Test #111, context: Options Includes : AllowOverride None : Options +Includes
+
+$r = GET("/modules/include/ssi-exec/111/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #111; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #111");
+
+### Test #112, context: Options Includes : AllowOverride None : Options +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/112/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #112; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #112");
+
+### Test #113, context: Options Includes : AllowOverride None : Options Includes
+
+$r = GET("/modules/include/ssi-exec/113/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #113; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #113");
+
+### Test #114, context: Options Includes : AllowOverride None : Options IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/114/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #114; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #114");
+
+### Test #115, context: Options Includes : AllowOverride None : Options -Includes
+
+$r = GET("/modules/include/ssi-exec/115/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #115; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #115");
+
+### Test #116, context: Options Includes : AllowOverride None : Options -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/116/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #116; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #116");
+
+### Test #117, context: Options Includes : AllowOverride None : Options -Includes +IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/117/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #117; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #117");
+
+### Test #118, context: Options Includes : AllowOverride None : Options +Includes -IncludesNoExec
+
+$r = GET("/modules/include/ssi-exec/118/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #118; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #118");
+
+### Test #119, context: Options Includes : AllowOverride None : Options -IncludesNoExec +Includes
+
+$r = GET("/modules/include/ssi-exec/119/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #119; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #119");
+
+### Test #120, context: Options Includes : AllowOverride None : Options +IncludesNoExec -Includes
+
+$r = GET("/modules/include/ssi-exec/120/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #120; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #120");
+
+### Test #121, context: Options Includes : AllowOverride None : No options in subdir, no .htaccess
+
+$r = GET("/modules/include/ssi-exec/121/subdir/exec.shtml");
+ok t_cmp($r->code, 200, "Options should be allowed for script #121; 200 response expected");
+
+$body = $r->content;
+chomp $body;
+
+ok t_cmp($body, 'perl cgi', "SSI should be evaluated with exec allowed for script #121");
+