+++ /dev/null
-use strict;
-use warnings;
-use lib qw(t/lib lib);
-use L7lib;
-use Test::More tests => 1;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-
-SKIP: {
- skip 'Test::More version 0.59_01 required', 1 if $Test::More::VERSION < 0.59_01;
- require_ok('./l7directord');
-}
-
-L7lib::comment_in();
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use File::Copy;
-use L7lib;
-use Test::More tests => 75;
-use POSIX;
-use Cwd qw(abs_path);
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-require_file();
-override();
-
-close *STDOUT;
-open *STDOUT, '>', '/dev/null';
-close *STDERR;
-open *STDERR, '>', '/dev/null';
-
-#...............................................
-# test start
-# - main
-# - parse_cmd
-# - parse_option
-# - initial_setting
-# - search_config_file
-# - search_l7vsadm_file
-
-test_default();
-
-test_argv('no ARGV', 10, qw());
-test_argv('ARGV="usage"', 10, qw(usage));
-test_argv('unknown ARGV', 10, qw(foobar hogehoge));
-test_argv('ARGV="help"', 9, qw(help));
-test_argv('ARGV="--help"', 9, qw(--help));
-test_argv('ARGV="--h"', 9, qw(--h));
-test_argv('ARGV="-h"', 9, qw(-h));
-test_argv('ARGV="version"', 8, qw(version));
-test_argv('ARGV="--version"', 8, qw(--version));
-test_argv('ARGV="-v"', 8, qw(-v));
-test_argv('ARGV="--v"', 8, qw(--v));
-test_argv('ARGV="configtest"', 7, qw(configtest));
-test_argv('ARGV="--configtest"', 10, qw(--configtest));
-test_argv('ARGV="-t"', 7, qw(-t));
-test_argv('ARGV="--t"', 7, qw(--t));
-test_argv('ARGV="--test"', 10, qw(--test));
-test_argv('ARGV="status"', 6, qw(status));
-test_argv('ARGV="reload"', 5, qw(reload));
-test_argv('ARGV="try-restart"', 4, qw(try-restart));
-test_argv('ARGV="restart"', 3, qw(restart));
-test_argv('ARGV="stop"', 2, qw(stop));
-test_argv('ARGV="start"', 1, qw(start));
-test_argv('ARGV="--help start"', 9, qw(--help start));
-test_argv('ARGV="--version stop"', 8, qw(--version stop));
-test_argv('ARGV="--help --version"', 9, qw(--help --version));
-test_argv('ARGV="-t --version"', 8, qw(-t --version));
-test_argv('ARGV="-t -d"', 7, qw(-t -d));
-
-test_argv('ARGV="-d"', 10, qw(-d));
-is $main::DEBUG_LEVEL, 3, 'default debug level';
-
-test_argv('ARGV="-d 1"', 10, qw(-d 1));
-is $main::DEBUG_LEVEL, 1, 'set debug level';
-
-test_argv('ARGV="-d 0"', 10, qw(-d 0));
-is $main::DEBUG_LEVEL, 0, 'set debug level zero';
-
-test_argv('ARGV="-d -1"', 10, qw(-d -1));
-is $main::DEBUG_LEVEL, -1, 'set debug level minus';
-
-SKIP: {
- skip '/etc/hosts not found', 3 if (!-f '/etc/hosts');
- test_argv('ARGV="/etc/hosts start"', 1, qw(/etc/hosts start));
- is $main::CONFIG_FILE{path}, '/etc/hosts', 'set config path(1)';
- is $main::CONFIG_FILE{filename}, 'hosts', 'set config filename';
-}
-
-SKIP: {
- skip '/etc/hosts not found', 3 if (!-f '/etc/hosts');
- test_argv('ARGV="-d 20 --version /etc/hosts start"', 8, qw(-d 20 --version /etc/hosts start));
- is $main::DEBUG_LEVEL, 20, 'set debug level';
- is $main::CONFIG_FILE{path}, '/etc/hosts', 'set config path';
- is $main::CONFIG_FILE{filename}, 'hosts', 'set config filename';
-}
-
-SKIP: {
- skip '/etc/ld.so.conf not found', 3 if (!-f '/etc/ld.so.conf');
- test_argv('ARGV="/etc/ld.so.conf stop"', 2, qw(/etc/ld.so.conf stop));
- is $main::CONFIG_FILE{path}, '/etc/ld.so.conf', 'set config path(2)';
- is $main::CONFIG_FILE{filename}, 'ld.so', 'set config filename, omit ".conf"';
-}
-
-SKIP: {
- skip '/etc/mail/sendmail.cf not found', 3 if (!-f '/etc/mail/sendmail.cf');
- test_argv('ARGV="/etc/mail/sendmail.cf restart"', 3, qw(/etc/mail/sendmail.cf restart));
- is $main::CONFIG_FILE{path}, '/etc/mail/sendmail.cf', 'set config path(3)';
- is $main::CONFIG_FILE{filename}, 'sendmail', 'set config filename, omit ".cf"';
-}
-
-SKIP: {
- skip '/a/b/c exist', 1 if (-f '/a/b/c');
- local @ARGV = qw(/a/b/c reload);
- eval { main(); };
- is $@, "init_error\n", 'config not found';
-}
-
-SKIP: {
- my $fail = 0;
- my $made = 0;
- if (!-f './l7directord.cf') {
- if (!open my $f, '>', './l7directord.cf') {
- $fail = 1;
- } else { $made = 1; close $f; }
- }
- if ($fail) {
- if ($made) { unlink './l7directord.cf'; }
- skip 'cannot make ./l7directord.cf', 3;
- }
- test_argv('ARGV="reload"', 5, qw(reload));
- is $main::CONFIG_FILE{path}, abs_path('./l7directord.cf'), 'search config path(1)';
- is $main::CONFIG_FILE{filename}, 'l7directord', 'search config filename';
- if ($made) { unlink './l7directord.cf'; }
-}
-
-SKIP: {
- my $fail = 0;
- my $made = 0;
- my $mkdir = 0;
- my $bak1 = 0;
- if (-f './l7directord.cf') {
- if (move './l7directord.cf', 'l7d.bak1') {
- $bak1 = 1;
- } else {
- $fail = 1;
- }
- }
- if (!$fail && !-d '/etc/ha.d/conf') {
- if (!mkdir '/etc/ha.d/conf') {
- $fail = 1;
- } else { $mkdir = 1; }
- }
- if (!$fail && !-f '/etc/ha.d/conf/l7directord.cf') {
- if (!open my $f, '>', '/etc/ha.d/conf/l7directord.cf') {
- $fail = 1;
- } else { $made = 1; }
- }
- if ($fail) {
- if ($made) { unlink '/etc/ha.d/conf/l7directord.cf'; }
- if ($mkdir) { rmdir '/etc/ha.d/conf'; }
- if ($bak1) { move 'l7d.bak1', './l7directord.cf'; }
- skip 'cannot make /etc/ha.d/conf/l7directord.cf', 3;
- }
- test_argv('ARGV="try-restart"', 4, qw(try-restart));
- is $main::CONFIG_FILE{path}, '/etc/ha.d/conf/l7directord.cf', 'search config path(2)';
- is $main::CONFIG_FILE{filename}, 'l7directord', 'search config filename(2)';
- if ($made) { unlink '/etc/ha.d/conf/l7directord.cf'; }
- if ($mkdir) { rmdir '/etc/ha.d/conf'; }
- if ($bak1) { move 'l7d.bak1', './l7directord.cf'; }
-}
-
-SKIP: {
- my $fail = 0;
- my $made = 0;
- my $mkdir = 0;
- my $bak1 = 0;
- my $bak2 = 0;
- if (-f './l7directord.cf') {
- if (move './l7directord.cf', 'l7d.bak1') {
- $bak1 = 1;
- } else {
- $fail = 1;
- }
- }
- if (!$fail && -f '/etc/ha.d/conf/l7directord.cf') {
- if (move '/etc/ha.d/conf/l7directord.cf', 'l7d.bak2') {
- $bak2 = 1;
- } else {
- $fail = 1;
- }
- }
- if (!$fail && !-d '/etc/ha.d') {
- if (!mkdir '/etc/ha.d') {
- $fail = 1;
- } else { $mkdir = 1; }
- }
- if (!$fail && !-f '/etc/ha.d/l7directord.cf') {
- if (!open my $f, '>', '/etc/ha.d/l7directord.cf') {
- $fail = 1;
- } else { $made = 1; }
- }
- if ($fail) {
- if ($made) { unlink '/etc/ha.d/l7directord.cf'; }
- if ($mkdir) { rmdir '/etc/ha.d'; }
- if ($bak1) { move 'l7d.bak1', './l7directord.cf'; }
- if ($bak2) { move 'l7d.bak2', '/etc/ha.d/conf/l7directord.cf'; }
- skip 'cannot make /etc/ha.d/l7directord.cf', 3;
- }
- test_argv('ARGV="restart"', 3, qw(restart));
- is $main::CONFIG_FILE{path}, '/etc/ha.d/l7directord.cf', 'search config path(3)';
- is $main::CONFIG_FILE{filename}, 'l7directord', 'search config filename(3)';
- if ($made) { unlink '/etc/ha.d/l7directord.cf'; }
- if ($mkdir) { rmdir '/etc/ha.d'; }
- if ($bak1) { move 'l7d.bak1', './l7directord.cf'; }
- if ($bak2) { move 'l7d.bak2', '/etc/ha.d/conf/l7directord.cf'; }
-}
-
-SKIP: {
- my $fail = 0;
- my $bak1 = 0;
- my $bak2 = 0;
- my $bak3 = 0;
- if (-f './l7directord.cf') {
- if (move './l7directord.cf', 'l7d.bak1') {
- $bak1 = 1;
- } else {
- $fail = 1;
- }
- }
- if (!$fail && -f '/etc/ha.d/conf/l7directord.cf') {
- if (move '/etc/ha.d/conf/l7directord.cf', 'l7d.bak2') {
- $bak2 = 1;
- } else {
- $fail = 1;
- }
- }
- if (!$fail && -f '/etc/ha.d/l7directord.cf') {
- if (move '/etc/ha.d/l7directord.cf', 'l7d.bak3') {
- $bak3 = 1;
- } else {
- $fail = 1;
- }
- }
- if ($fail) {
- if ($bak1) { move 'l7d.bak1', './l7directord.cf'; }
- if ($bak2) { move 'l7d.bak2', '/etc/ha.d/conf/l7directord.cf'; }
- if ($bak2) { move 'l7d.bak3', '/etc/ha.d/l7directord.cf'; }
- skip 'cannot move config search path file', 1;
- }
- local @ARGV = qw(status);
- eval { main(); };
- is $@, "init_error\n", 'config not found';
- if ($bak1) { move 'l7d.bak1', './l7directord.cf'; }
- if ($bak2) { move 'l7d.bak2', '/etc/ha.d/conf/l7directord.cf'; }
- if ($bak2) { move 'l7d.bak3', '/etc/ha.d/l7directord.cf'; }
-}
-
-SKIP: {
- my $fail = 0;
- my $made = 0;
- if (!-f './l7vsadm') {
- if (!open my $f, '>', './l7vsadm') {
- $fail = 1;
- } else { $made = 1; close $f; }
- }
- if (!-x './l7vsadm') {
- if (!chmod 0755, './l7vsadm') {
- $fail = 1;
- }
- }
- skip 'cannot make ./l7vsadm', 2 if ($fail);
- test_argv('ARGV="stop"', 2, qw(stop));
-## is $main::PROC_ENV{l7vsadm}, abs_path('./l7vsadm'), 'search l7vsadm(1)';
- ### Test Enviroment"/home/megu/svnsource/l7vsd-3.x-ramiel/l7directord/l7vsadm"
- is '/home/megu/svnsource/l7vsd-3.x-ramiel/l7directord/l7vsadm', abs_path('./l7vsadm'), 'search l7vsadm(1)';
- if ($made) { unlink './l7vsadm'; }
-}
-
-SKIP: {
- my $fail = 0;
- my $made = 0;
- my $mkdir = 0;
- my $bak1 = 0;
- if (-f './l7vsadm') {
- if (move './l7vsadm', 'l7v.bak1') {
- $bak1 = 1;
- } else {
- $fail = 1;
- }
- }
- if (!$fail && !-d '/usr/sbin') {
- if (!mkdir '/usr/sbin') {
- $fail = 1;
- } else { $mkdir = 1; }
- }
- if (!$fail && !-f '/usr/sbin/l7vsadm') {
- if (!open my $f, '>', '/usr/sbin/l7vsadm') {
- $fail = 1;
- } else { $made = 1; }
- }
- if (!$fail && !-x '/usr/sbin/l7vsadm') {
- if (!chmod 0755, '/usr/sbin/l7vsadm') {
- $fail = 1;
- }
- }
- skip 'cannot make /usr/sbin/l7vsadm', 2 if ($fail);
- test_argv('ARGV="start"', 1, qw(start));
- is $main::PROC_ENV{l7vsadm}, '/usr/sbin/l7vsadm', 'search l7vsadm(2)';
- if ($made) { unlink './l7vsadm'; }
- if ($mkdir) { rmdir '/usr/sbin'; }
- if ($bak1) {
- move 'l7v.bak1', './l7vsadm';
- chmod '0755', './l7vsadm';
- }
-}
-
-SKIP: {
- my $fail = 0;
- my $made = 0;
- my $mkdir = 0;
- my $bak1 = 0;
- my $bak2 = 0;
- if (-f './l7vsadm') {
- if (move './l7vsadm', 'l7v.bak1') {
- $bak1 = 1;
- } else {
- $fail = 1;
- }
- }
- if (!$fail && -f '/usr/sbin/l7vsadm') {
- if (move '/usr/sbin/l7vsadm', 'l7v.bak2') {
- $bak2 = 1;
- } else {
- $fail = 1;
- }
- }
- if (!$fail && (!-d '/sbin')) {
- if (!mkdir '/sbin') {
- $fail = 1;
- } else { $mkdir = 1; }
- }
- if (!$fail && !-f '/sbin/l7vsadm') {
- if (!open my $f, '>', '/sbin/l7vsadm') {
- $fail = 1;
- } else { $made = 1; }
- }
- if (!$fail && !-x '/sbin/l7vsadm') {
- if (!chmod 0755, '/sbin/l7vsadm') {
- $fail = 1;
- }
- }
- if ($fail) {
- if ($made) { unlink '/sbin/l7vsadm'; }
- if ($mkdir) { rmdir '/sbin'; }
- if ($bak1) {
- move 'l7v.bak1', './l7vsadm';
- chmod '0755', './l7vsadm';
- }
- if ($bak2) {
- move 'l7v.bak2', '/usr/sbin/l7vsadm';
- chmod '0755', '/usr/sbin/l7vsadm';
- }
- skip 'cannot make /sbin/l7vsadm', 2;
- }
- test_argv('ARGV="configtest"', 7, qw(configtest));
- is $main::PROC_ENV{l7vsadm}, '/sbin/l7vsadm', 'search l7vsadm(3)';
- if ($made) { unlink '/sbin/l7vsadm'; }
- if ($mkdir) { rmdir '/sbin'; }
- if ($bak1) {
- move 'l7v.bak1', './l7vsadm';
- chmod '0755', './l7vsadm';
- }
- if ($bak2) {
- move 'l7v.bak2', '/usr/sbin/l7vsadm';
- chmod '0755', '/usr/sbin/l7vsadm';
- }
-}
-
-SKIP: {
- my $fail = 0;
- my $bak1 = 0;
- my $bak2 = 0;
- my $bak3 = 0;
- if (-f './l7vsadm') {
- if (move './l7vsadm', 'l7v.bak1') {
- $bak1 = 1;
- } else {
- $fail = 1;
- }
- }
- if (!$fail && -f '/usr/sbin/l7vsadm') {
- if (move '/usr/sbin/l7vsadm', 'l7v.bak2') {
- $bak2 = 1;
- } else {
- $fail = 1;
- }
- }
- if (!$fail && -f '/sbin/l7vsadm') {
- if (move '/sbin/l7vsadm', 'l7v.bak3') {
- $bak3 = 1;
- } else {
- $fail = 1;
- }
- }
- if ($fail) {
- if ($bak1) {
- move 'l7v.bak1', './l7vsadm';
- chmod '0755', './l7vsadm';
- }
- if ($bak2) {
- move 'l7v.bak2', '/usr/sbin/l7vsadm';
- chmod '0755', '/usr/sbin/l7vsadm';
- }
- if ($bak3) {
- move 'l7v.bak3', '/sbin/l7vsadm';
- chmod '0755', '/sbin/l7vsadm';
- }
- skip 'cannot move l7vsadm search path file', 1;
- }
- local @ARGV = qw(status);
- eval { main(); };
- is $@, "init_error\n", 'l7vsadm not found';
- if ($bak1) {
- move 'l7v.bak1', './l7vsadm';
- chmod '0755', './l7vsadm';
- }
- if ($bak2) {
- move 'l7v.bak2', '/usr/sbin/l7vsadm';
- chmod '0755', '/usr/sbin/l7vsadm';
- }
- if ($bak3) {
- move 'l7v.bak3', '/sbin/l7vsadm';
- chmod '0755', '/sbin/l7vsadm';
- }
-}
-
-{
- local $ENV{HOSTNAME} = 'test_host_name';
- test_argv('ARGV="status"', 6, qw(status));
- is $main::PROC_ENV{hostname}, 'test_host_name', 'set env HOSTNAME';
-}
-
-{
- local $ENV{HOSTNAME};
- test_argv('ARGV="status"', 6, qw(status));
- is $main::PROC_ENV{hostname}, (POSIX::uname())[1], 'set HOSTNAME from uname';
-}
-
-
-
-sub test_default {
- is $main::DEBUG_LEVEL, 0, 'default - debug level';
- is $main::PROC_ENV{l7vsadm}, undef, 'default - l7vsadm path';
- is $main::CONFIG_FILE{path}, undef, 'default - config path';
- is $main::CONFIG_FILE{filename}, undef, 'default - config filename';
- is $main::PROC_ENV{hostname}, undef, 'default - hostname';
-}
-
-sub test_argv {
- my $name = shift;
- my $expected = shift;
- local @ARGV = @_;
- my $return = main();
- is $return, $expected, $name;
-}
-
-# test end
-#...............................................
-
-remove_file();
-L7lib::comment_in();
-
-sub require_file {
- open my $d, '>', './l7directord.cf';
- close $d;
- open my $v, '>', './l7vsadm';
- close $v;
- chmod 0755, './l7vsadm';
-}
-sub remove_file {
- unlink './l7directord.cf';
- unlink './l7vsadm';
-}
-sub override {
- *cmd_start = \&__cmd_start;
- *cmd_stop = \&__cmd_stop;
- *cmd_restart = \&__cmd_restart;
- *cmd_try_restart = \&__cmd_try_restart;
- *cmd_reload = \&__cmd_reload;
- *cmd_status = \&__cmd_status;
- *cmd_configtest = \&__cmd_configtest;
- *cmd_version = \&__cmd_version;
- *cmd_help = \&__cmd_help;
- *cmd_usage = \&__cmd_usage;
- *init_error = \&__init_error;
- *ld_exit = \&__ld_exit;
- *ld_log = \&__ld_log;
-}
-sub __cmd_start {
- return 1;
-}
-sub __cmd_stop {
- return 2;
-}
-sub __cmd_restart {
- return 3;
-}
-sub __cmd_try_restart {
- return 4;
-}
-sub __cmd_reload {
- return 5;
-}
-sub __cmd_status {
- return 6;
-}
-sub __cmd_configtest {
- return 7;
-}
-sub __cmd_version {
- return 8;
-}
-sub __cmd_help {
- return 9;
-}
-sub __cmd_usage {
- return 10;
-}
-sub __init_error {
- die "init_error\n";
-}
-sub __ld_exit {
- return shift;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use L7lib;
-use Test::More tests => 73;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-default_value();
-
-our $signal = undef;
-our $read_config_called = 0;
-our $ld_log_called = 0;
-our @read_pid_return = ();
-our @children_command = ();
-our $system_command = undef;
-our $cmd_start_return = undef;
-our $cmd_stop_return = undef;
-our $set_ld_handler_called = 0;
-our $ld_setup_called = 0;
-our $ld_daemon_called = 0;
-our $run_pid = 0;
-our $ld_main_called = 0;
-our $remove_pid_called = 0;
-
-close *STDOUT;
-open *STDOUT, '>', '/dev/null';
-close *STDERR;
-open *STDERR, '>', '/dev/null';
-
-#...............................................
-# test start
-# - cmd_start
-{
- local $set_ld_handler_called = 0;
- local $read_config_called = 0;
- local $ld_setup_called = 0;
- local @read_pid_return = ();
- local $ld_log_called = 0;
- local $ld_daemon_called = 0;
- local $run_pid = 0;
- local @children_command = ();
- local $remove_pid_called = 0;
- my $got = cmd_start();
- is $got, 0, 'cmd_start - run as daemon';
- is $set_ld_handler_called, 1, 'cmd_start - set_ld_handler';
- is $read_config_called, 1, 'cmd_start - read_config';
- is $ld_setup_called, 1, 'cmd_start - ld_setup';
- is $ld_log_called, 2, 'cmd_start - ld_log';
- is $ld_daemon_called, 1, 'cmd_start - ld_daemon';
- is $main::PROC_STAT{pid}, $$, 'cmd_start - save pid';
- is $run_pid, $$, 'cmd_start - write_pid';
- is_deeply \@children_command, ['start', 'stop'], 'cmd_start - ld_cmd_children';
- is $ld_main_called, 1, 'cmd_start - ld_main';
- is $remove_pid_called, 1, 'cmd_start - remove_pid';
-}
-{
- local $set_ld_handler_called = 0;
- local $read_config_called = 0;
- local $ld_setup_called = 0;
- local @read_pid_return = ();
- local $ld_log_called = 0;
- local $ld_daemon_called = 0;
- local $run_pid = 0;
- local @children_command = ();
- local $ld_main_called = 0;
- local $remove_pid_called = 0;
- local $main::CONFIG{supervised} = 1;
- local $main::DEBUG_LEVEL = 0;
- local $main::PROC_STAT{pid} = 10000;
- my $got = cmd_start();
- is $got, 0, 'cmd_start - run supervised mode';
- is $set_ld_handler_called, 1, 'cmd_start - set_ld_handler';
- is $read_config_called, 1, 'cmd_start - read_config';
- is $ld_setup_called, 1, 'cmd_start - ld_setup';
- is $ld_log_called, 2, 'cmd_start - ld_log';
- is $ld_daemon_called, 0, 'cmd_start - no ld_daemon';
- is $run_pid, 10000, 'cmd_start - write_pid';
- is_deeply \@children_command, ['start', 'stop'], 'cmd_start - ld_cmd_children';
- is $ld_main_called, 1, 'cmd_start - ld_main';
- is $remove_pid_called, 1, 'cmd_start - remove_pid';
-}
-{
- local $set_ld_handler_called = 0;
- local $read_config_called = 0;
- local $ld_setup_called = 0;
- local @read_pid_return = ();
- local $ld_log_called = 0;
- local $ld_daemon_called = 0;
- local $run_pid = 0;
- local @children_command = ();
- local $ld_main_called = 0;
- local $remove_pid_called = 0;
- local $main::CONFIG{supervised} = 0;
- local $main::DEBUG_LEVEL = 3;
- local $main::PROC_STAT{pid} = 20000;
- my $got = cmd_start();
- is $got, 0, 'cmd_start - run debug mode';
- is $set_ld_handler_called, 1, 'cmd_start - set_ld_handler';
- is $read_config_called, 1, 'cmd_start - read_config';
- is $ld_setup_called, 1, 'cmd_start - ld_setup';
- is $ld_log_called, 2, 'cmd_start - ld_log';
- is $ld_daemon_called, 0, 'cmd_start - no ld_daemon';
- is $run_pid, 20000, 'cmd_start - write_pid';
- is_deeply \@children_command, ['start', 'stop'], 'cmd_start - ld_cmd_children';
- is $ld_main_called, 1, 'cmd_start - ld_main';
- is $remove_pid_called, 1, 'cmd_start - remove_pid';
-}
-{
- local $set_ld_handler_called = 0;
- local $read_config_called = 0;
- local $ld_setup_called = 0;
- local @read_pid_return = (100);
- my $got = cmd_start();
- is $got, 1, 'cmd_start - already running';
- is $set_ld_handler_called, 1, 'cmd_start - set_ld_handler';
- is $read_config_called, 1, 'cmd_start - read_config';
- is $ld_setup_called, 1, 'cmd_start - ld_setup';
-}
-# - cmd_stop
-{
- local @read_pid_return = ();
- my $got = cmd_stop();
- is $got, 2, 'cmd_stop - not running(1)';
-}
-{
- local @read_pid_return = (undef, undef);
- my $got = cmd_stop();
- is $got, 2, 'cmd_stop - not running(2)';
-}
-{
- local @read_pid_return = (undef, 100);
- my $got = cmd_stop();
- is $got, 2, 'cmd_stop - stale pid exist';
-}
-##{
-## local $SIG{TERM} = sub { $signal = shift; };
-## local @read_pid_return = ($$);
-## my $got = cmd_stop();
-## is $got, 0, 'cmd_stop - running';
-## is $signal, 'TERM', 'cmd_stop - signal send';
-##}
-{
- local @read_pid_return = (99999);
- local $ld_log_called = 0;
- my $got = cmd_stop();
- is $got, 3, 'cmd_stop - signal error';
- is $ld_log_called, 0, 'cmd_stop - ld_log';
-}
-# - cmd_restart
-{
- local *cmd_start = \&__cmd_start;
- local *cmd_stop = \&__cmd_stop;
- {
- local $cmd_stop_return = 0;
- local $cmd_start_return = 0;
- my $got = cmd_restart();
- is $got, 0, 'cmd_restart - stop success, start success';
- }
- {
- local $cmd_stop_return = 0;
- local $cmd_start_return = 1;
- my $got = cmd_restart();
- is $got, 1, 'cmd_restart - stop success, start fail';
- }
- {
- local $cmd_stop_return = 1;
- local $cmd_start_return = 0;
- my $got = cmd_restart();
- is $got, 0, 'cmd_restart - stop fail, start success';
- }
- {
- local $cmd_stop_return = 1;
- local $cmd_start_return = 1;
- my $got = cmd_restart();
- is $got, 1, 'cmd_restart - stop fail, start fail';
- }
-}
-# - cmd_try_restart
-{
- local *cmd_start = \&__cmd_start;
- local *cmd_stop = \&__cmd_stop;
- {
- local $cmd_stop_return = 0;
- local $cmd_start_return = 0;
- my $got = cmd_try_restart();
- is $got, 0, 'cmd_try_restart - stop success, start success';
- }
- {
- local $cmd_stop_return = 0;
- local $cmd_start_return = 1;
- my $got = cmd_try_restart();
- is $got, 1, 'cmd_try_restart - stop success, start fail';
- }
- {
- local $cmd_stop_return = 2;
- my $got = cmd_try_restart();
- is $got, 2, 'cmd_try_restart - stop fail';
- }
-}
-# - cmd_reload
-{
- local $read_config_called = 0;
- local @read_pid_return = ();
- my $got = cmd_reload();
- is $got, 2, 'cmd_reload - not running(1)';
- is $read_config_called, 1, 'cmd_reload - read_config';
-}
-{
- local $read_config_called = 0;
- local @read_pid_return = (undef, undef);
- my $got = cmd_reload();
- is $got, 2, 'cmd_reload - not running(2)';
- is $read_config_called, 1, 'cmd_reload - read_config';
-}
-{
- local $read_config_called = 0;
- local @read_pid_return = (undef, 100);
- my $got = cmd_reload();
- is $got, 2, 'cmd_reload - stale pid exist';
- is $read_config_called, 1, 'cmd_reload - read_config';
-}
-{
- local $SIG{HUP} = sub { $signal = shift; };
- local $read_config_called = 0;
- local @read_pid_return = ($$);
- my $got = cmd_reload();
- is $got, 0, 'cmd_reload - running';
- is $read_config_called, 1, 'cmd_reload - read_config';
- is $signal, 'HUP', 'cmd_reload - signal send';
-}
-{
- local $read_config_called = 0;
- local $ld_log_called = 0;
- local @read_pid_return = (99999);
- my $got = cmd_reload();
- is $got, 3, 'cmd_reload - signal error';
- is $read_config_called, 1, 'cmd_reload - read_config';
- is $ld_log_called, 0, 'cmd_reload - ld_log';
-}
-# - cmd_status
-{
- local @read_pid_return = ();
- local @children_command = ();
- my $got = cmd_status();
- is $got, 2, 'cmd_status - not running(1)';
- is_deeply \@children_command, ['status'], 'status - ld_cmd_children';
-}
-{
- local @read_pid_return = (undef, undef);
- local @children_command = ();
- my $got = cmd_status();
- is $got, 2, 'cmd_status - not running(2)';
- is_deeply \@children_command, ['status'], 'status - ld_cmd_children';
-}
-{
- local @children_command = ();
- local @read_pid_return = (999);
- my $got = cmd_status();
- is $got, 0, 'cmd_status - running';
- is_deeply \@children_command, ['status'], 'status - ld_cmd_children';
-}
-{
- local @children_command = ();
- local @read_pid_return = (undef, 1000);
- my $got = cmd_status();
- is $got, 2, 'cmd_status - stale pid exist';
- is_deeply \@children_command, ['status'], 'status - ld_cmd_children';
-}
-# - cmd_configtest
-{
- local $read_config_called = 0;
- my $got = cmd_configtest();
- is $got, 0, 'cmd_configtest';
- is $read_config_called, 1, 'configtest - read_config';
-}
-# - cmd_version
-{
- my $got = cmd_version();
- is $got, 0, 'cmd_version';
-}
-# - cmd_help
-{
- local $system_command = undef;
- $main::PROC_ENV{l7directord} = '_l7directord_';
- my $got = cmd_help();
- is $got, 0, 'cmd_help';
- is $system_command, '/usr/bin/perldoc _l7directord_', 'perldoc command';
-}
-# - cmd_usage
-{
- my $got = cmd_usage();
- is $got, 0, 'cmd_usage';
-}
-
-
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub default_value {
- $main::CONFIG_FILE{filename} = 'filename';
- $main::CONFIG_FILE{path} = '/path/filename';
- $main::CONFIG{supervised} = 0;
- $main::DEBUG_LEVEL = 0;
-}
-sub override {
- *set_ld_handler = \&__set_ld_handler;
- *read_config = \&__read_config;
- *ld_setup = \&__ld_setup;
- *read_pid = \&__read_pid;
- *write_pid = \&__write_pid;
- *ld_cmd_children = \&__ld_cmd_children;
- *ld_main = \&__ld_main;
- *remove_pid = \&__remove_pid;
- *system_wrapper = \&__system_wrapper;
- *ld_log = \&__ld_log;
- *ld_daemon = \&__ld_daemon;
-}
-sub __cmd_start {
- return $cmd_start_return;
-}
-sub __cmd_stop {
- return $cmd_stop_return;
-}
-sub __set_ld_handler {
- $set_ld_handler_called++;
-}
-sub __read_config {
- $read_config_called++;
-}
-sub __ld_setup {
- $ld_setup_called++;
-}
-sub __read_pid {
- return wantarray ? @read_pid_return : $read_pid_return[0];
-}
-sub __write_pid {
- $run_pid = shift;
-}
-sub __ld_cmd_children {
- push @children_command, @_;
-}
-sub __ld_main {
- $ld_main_called++;
-}
-sub __remove_pid {
- $remove_pid_called++;
-}
-sub __system_wrapper {
- $system_command = shift;
-}
-sub __ld_log {
- $ld_log_called++;
-}
-sub __ld_daemon {
- $ld_daemon_called++;
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use L7lib;
-use Test::More tests => 26;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-
-override();
-
-#...............................................
-# test start
-# - set_ld_handler
-set_ld_handler();
-{
- default_value();
- # PIPE (ignore)
- kill 13, $$;
- is $main::PROC_STAT{halt }, undef, 'signal PIPE, not halt';
- is $main::PROC_STAT{reload}, undef, 'signal PIPE, not reload';
-}
-# - ld_handler_term
-{
- default_value();
- # INT
- kill 2, $$;
- is $main::PROC_STAT{halt }, 'INT', 'signal INT, halt';
- is $main::PROC_STAT{reload}, undef, 'signal INT, not reload';
-}
-{
- default_value();
- # QUIT
- kill 3, $$;
- is $main::PROC_STAT{halt }, 'QUIT', 'signal QUIT, halt';
- is $main::PROC_STAT{reload}, undef, 'signal QUIT, not reload';
-}
-{
- default_value();
- # ILL
- kill 4, $$;
- is $main::PROC_STAT{halt }, 'ILL', 'signal ILL, halt';
- is $main::PROC_STAT{reload}, undef, 'signal ILL, not reload';
-}
-{
- default_value();
- # ABRT
- kill 6, $$;
- is $main::PROC_STAT{halt }, 'ABRT', 'signal ABRT, halt';
- is $main::PROC_STAT{reload}, undef, 'signal ABRT, not reload';
-}
-{
- default_value();
- # FPE
- kill 8, $$;
- is $main::PROC_STAT{halt }, 'FPE', 'signal FPE, halt';
- is $main::PROC_STAT{reload}, undef, 'signal FPE, not reload';
-}
-{
- default_value();
- # SEGV
- kill 11, $$;
- is $main::PROC_STAT{halt }, 'SEGV', 'signal SEGV, halt';
- is $main::PROC_STAT{reload}, undef, 'signal SEGV, not reload';
-}
-{
- default_value();
- # TERM
- kill 15, $$;
- is $main::PROC_STAT{halt }, 'TERM', 'signal TERM, halt';
- is $main::PROC_STAT{reload}, undef, 'signal TERM, not reload';
-}
-{
- default_value();
- # BUS
- kill 7, $$;
- is $main::PROC_STAT{halt }, 'BUS', 'signal BUS, halt';
- is $main::PROC_STAT{reload}, undef, 'signal BUS, not reload';
-}
-{
- default_value();
- # SYS
- kill 31, $$;
- is $main::PROC_STAT{halt }, 'SYS', 'signal SYS, halt';
- is $main::PROC_STAT{reload}, undef, 'signal SYS, not reload';
-}
-{
- default_value();
- # XCPU
- kill 24, $$;
- is $main::PROC_STAT{halt }, 'XCPU', 'signal XCPU, halt';
- is $main::PROC_STAT{reload}, undef, 'signal XCPU, not reload';
-}
-{
- default_value();
- # XFSZ
- kill 25, $$;
- is $main::PROC_STAT{halt }, 'XFSZ', 'signal XFSZ, halt';
- is $main::PROC_STAT{reload}, undef, 'signal XFSZ, not reload';
-}
-# - ld_handler_hup
-{
- default_value();
- # HUP
- kill 1, $$;
- is $main::PROC_STAT{halt }, undef, 'signal HUP, not halt';
- is $main::PROC_STAT{reload}, 'HUP', 'signal HUP, reload';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub default_value {
- undef $main::PROC_STAT{halt };
- undef $main::PROC_STAT{reload};
-}
-sub override {
- *ld_log = \&__ld_log;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 33;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our $filename = undef;
-our @message_only_args = ();
-our @message_args = ();
-our $init_error_arg = undef;
-our $ld_rm_file_arg = undef;
-our $ld_log_arg = undef;
-
-#...............................................
-# test start
-# - read_pid
-{
- default_value();
- create_pidfile($$);
- local $0 = 'l7directord';
- my ($oldpid, $filepid) = read_pid();
- is $oldpid, $$, 'read_pid - from /proc/pid';
- is $filepid, $$, 'read_pid - from pid file';
- remove_pidfile();
-}
-{
- default_value();
- create_pidfile($$);
- local $0 = 'l7directord';
- my $oldpid = read_pid();
- is $oldpid, $$, 'read_pid - get /proc/pid only';
- remove_pidfile();
-}
-{
- default_value();
- create_pidfile($$);
- local $0 = 'foobar';
- my ($oldpid, $filepid) = read_pid();
- is $oldpid, undef, 'read_pid - from /proc/pid, but process name mismatch';
- is $filepid, $$, 'read_pid - from pid file';
- remove_pidfile();
-}
-{
- default_value();
- create_pidfile($$);
- local $0 = 'foobar';
- my $oldpid = read_pid();
- is $oldpid, undef, 'read_pid - get /proc/pid only, but process name mismatch';
- remove_pidfile();
-}
-{
- default_value();
- create_pidfile(99999);
- local $0 = 'l7directord';
- my ($oldpid, $filepid) = read_pid();
- is $oldpid, undef, 'read_pid - from /proc/pid, but no such proc file.';
- is $filepid, 99999, 'read_pid - from pid file';
- remove_pidfile();
-}
-{
- default_value();
- local $0 = 'l7directord';
- my ($oldpid, $filepid) = read_pid();
- is $oldpid, undef, 'read_pid - from /proc/pid';
- is $filepid, undef, 'read_pid - from pid file, but no such pid file.';
- remove_pidfile();
-}
-# - write_pid
-{
- default_value();
- remove_pidfile();
- local @message_only_args = ();
- local $init_error_arg = undef;
- write_pid(1);
- my $written = read_pidfile();
- is $written, "1\n", 'write_pid - pid 1 specified';
- remove_pidfile();
-}
-{
- default_value();
- remove_pidfile();
- local @message_only_args = ();
- local $init_error_arg = undef;
- write_pid(0);
- is_deeply \@message_only_args, ['ERR0412', 0], 'write_pid - pid 0 specified, error message';
- is $init_error_arg, "message_only", 'write_pid - pid 0 specified, init_error';
- remove_pidfile();
-}
-{
- default_value();
- remove_pidfile();
- local @message_only_args = ();
- local $init_error_arg = undef;
- write_pid();
- is_deeply \@message_only_args, ['ERR0412', 'undef'], 'write_pid - pid not specified, error message';
- is $init_error_arg, "message_only", 'write_pid - pid not specified, init_error';
- remove_pidfile();
-}
-{
- default_value();
- remove_pidfile();
- local @message_only_args = ();
- local $init_error_arg = undef;
- write_pid('foobar');
- is_deeply \@message_only_args, ['ERR0412', 'foobar'], 'write_pid - pid some word specified, error message';
- is $init_error_arg, "message_only", 'write_pid - pid some word specified, init_error';
- remove_pidfile();
-}
-{
- default_value();
- remove_pidfile();
- local @message_only_args = ();
- local $init_error_arg = undef;
- local *close = \&__close;
- write_pid(1);
- is_deeply \@message_only_args, ['ERR0409', $filename, "close_error\n"], 'write_pid - close error';
- is $init_error_arg, "message_only", 'write_pid - close error, init_error';
- remove_pidfile();
-}
-# - remove_pid
-{
- default_value();
- local *ld_rm_file = \&__ld_rm_file;
- remove_pid();
- is $ld_rm_file_arg, $filename, 'remove_pid';
-}
-# - ld_rm_file
-{
- default_value();
- create_pidfile(1);
- my $got = ld_rm_file($filename);
- is $got, 0, 'ld_rm_file - success';
-}
-{
- default_value();
- my $got = ld_rm_file();
- is $got, -1, 'ld_rm_file - error no delete file';
- is_deeply \@message_args, ['ERR0411'], 'ld_rm_file - error message(1)';
- is $ld_log_arg, 'message', 'ld_rm_file - error log(1)';
-}
-SKIP: {
- default_value();
- skip '/tmp not found!', 3 if (!-d '/tmp');
- my $got = ld_rm_file('/tmp');
- is $got, -1, 'ld_rm_file - error directory';
- is_deeply \@message_args, ['ERR0401', '/tmp'], 'ld_rm_file - error message(2)';
- is $ld_log_arg, 'message', 'ld_rm_file - error log(2)';
-}
-SKIP: {
- default_value();
- skip 'file /asdfasdf exist', 3 if (-e '/asdfasdf');
- my $got = ld_rm_file('/asdfasdf');
- is $got, -1, 'ld_rm_file - error file not found';
- is_deeply \@message_args, ['ERR0402', '/asdfasdf'], 'ld_rm_file - error message(3)';
- is $ld_log_arg, 'message', 'ld_rm_file - error log(3)';
-}
-SKIP: {
- default_value();
- skip 'file /proc/version not exist', 3 if (!-f '/proc/version');
- my $got = ld_rm_file('/proc/version');
- is $got, -1, 'ld_rm_file - error cannot remove';
- is_deeply \@message_args, ['ERR0403', '/proc/version', $!], 'ld_rm_file - error message(4)';
- is $ld_log_arg, 'message', 'ld_rm_file - error log(4)';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub default_value {
- $main::PROC_ENV{pid_prefix} = cwd;
- $main::CONFIG_FILE{filename} = time;
-}
-sub override {
- *_message_only = \&__message_only;
- *_message = \&__message;
- *ld_log = \&__ld_log;
- *init_error = \&__init_error;
-}
-sub create_pidfile {
- my $pid = shift;
- $filename = $main::PROC_ENV{pid_prefix} . q{.} . $main::CONFIG_FILE{filename} . '.pid';
- if (open my $f, ">", $filename) {
- print $f $pid . "\n";
- close $f;
- return 1;
- }
- return 0;
-}
-sub read_pidfile {
- $filename = $main::PROC_ENV{pid_prefix} . q{.} . $main::CONFIG_FILE{filename} . '.pid';
- my $pidinfo = undef;
- if (open my $f, "<", $filename) {
- local $\ = undef;
- $pidinfo = <$f>;
- close $f;
- }
- return $pidinfo;
-}
-sub remove_pidfile {
- $filename = $main::PROC_ENV{pid_prefix} . q{.} . $main::CONFIG_FILE{filename} . '.pid';
- if (-f $filename) {
- unlink $filename;
- }
-}
-sub __message_only {
- @message_only_args = @_;
- return 'message_only';
-}
-sub __init_error {
- $init_error_arg = shift;
-}
-sub __close {
- die "close_error\n";
-}
-sub __ld_rm_file {
- $ld_rm_file_arg = shift;
-}
-sub __ld_log {
- $ld_log_arg = shift;
-}
-sub __message {
- @message_args = @_;
- return 'message';
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 733;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our @config_error_args = ();
-our @ld_gethostservbyname_args = undef;
-our $ld_gethostservbyname_return = undef;
-our $ld_gethostservbyname_undef = 0;
-our $_ld_service_resolve_called = 0;
-our @parse_fallback_args = ();
-our $parse_fallback_return = undef;
-our @parse_real_args = ();
-our $parse_real_return = undef;
-our $ld_openlog_arg = ();
-our $ld_openlog_return = undef;
-our @get_hostservbyname_args = ();
-our $get_hostservbyname_return = undef;
-our @ld_cmd_children_args = ();
-our $system_wrapper_called = 0;
-our $system_wrapper_return = undef;
-our $ld_setup_die = 0;
-our $read_config_die = 0;
-our $read_config_virtual = [];
-our $read_config_execute = {};
-#...............................................
-# test start
-# - read_config
-# - validate_config
-SKIP: {
- my $input = <<"CONFIG";
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- read_config();
- is $main::PROC_STAT{initialized}, 1, 'read_config - empty config';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(1)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
- # comment
-
- # comment
-
- # comment
-
- # comment
-
-# comment
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- read_config();
- is $main::PROC_STAT{initialized}, 1, 'read_config - ignore comment';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(2)';
- remove_config();
-}
-{
- default_value();
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - no such config file';
- is $@, "config_error\n", 'read_config - raise config_error(3)';
- is_deeply \@config_error_args, [0, 'ERR0407', $main::CONFIG_FILE{path}], 'read_config - config_error args(3)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(3)';
-}
-SKIP: {
- my $input = <<"CONFIG";
- #
-#
-
-virtual = virtual_value1
-virtual = "virtual_value2" # comment
-checktimeout =1
-negotiatetimeout= 2
-checkinterval=3
-retryinterval='4'
-configinterval="5"
-checkcount = 6
-autoreload = 'no'
-quiescent = yes # comment
-fallback=fallback_value
-callback=/bin/cat
-
-execute= /etc/hosts
-logfile= "logfile_value"
- #
-supervised
-
-virtual = "virtual_value3" # comment
- real = real_value1
- real = real_value2
- request='request'
- #
- receive = receive
- login= "login"
-
- passwd = "passwd"
- database = database
- virtualhost='virtualhost'
- checktype = CoNnEcT
- checktimeout =1
-
- negotiatetimeout = 2
- checkinterval=3
- retryinterval='4'
- checkcount = 6
- maxconn=7
- checkport = 10000
- scheduler = rr
- protocol= tcp
- service = http
- httpmethod = 'hEaD'
- fallback = fallback_value
- quiescent="yes"
- #
- module = url --pattern-match "/foo/bar" # comment
-
- sorryserver= sorryserver_value
- qosup = '0'
- qosdown =999M
-
- realdowncallback=/bin/cat
- realrecovercallback = '/bin/cat'
-
- customcheck = "/bin/echo"
- #
-
-virtual = "virtual_value4" # comment
- real = real_value3
- accesslog_rotate_rotation_timing = date
-
- #
-# end comment...
-CONFIG
- my %config = (
- 'autoreload' => 0,
- 'checktimeout' => 1,
- 'quiescent' => 1,
- 'retryinterval' => 4,
- 'negotiatetimeout' => 2,
- 'checkinterval' => 3,
- 'supervised' => 1,
- 'fallback' => { 'tcp' => 'fallback_return' },
- 'configinterval' => 5,
- 'execute' => { '/etc/hosts' => 1 },
- 'callback' => '/bin/cat',
- 'checkcount' => 6,
- 'logfile' => 'logfile_value',
- 'virtual' => [
- {
- 'protocol' => 'tcp',
- 'httpmethod' => 'GET',
- 'qosdown' => 0,
- 'retryinterval' => undef,
- 'negotiatetimeout' => undef,
- 'checkinterval' => undef,
- 'server' => {},
- 'qosup' => 0,
- 'real' => undef,
- 'module' => { 'name' => 'sessionless', 'key' => '' },
- 'checktimeout' => undef,
- 'request' => undef,
- 'checktype' => 'negotiate',
- 'virtualhost' => undef,
- 'quiescent' => undef,
- 'realrecovercallback' => undef,
- 'sorryserver' => undef,
- 'service' => undef,
- 'login' => '',
- 'fallback' => undef,
- 'passwd' => '',
- 'receive' => undef,
- 'database' => '',
- 'maxconn' => 0,
- 'checkcount' => undef,
- 'checkport' => undef,
- 'scheduler' => 'rr',
- 'realdowncallback' => undef,
- 'customcheck' => undef,
- 'accesslog_rotate_rotation_timing' => undef,
- 'accesslog_rotate_max_filesize' => undef,
- },
- {
- 'protocol' => 'tcp',
- 'httpmethod' => 'GET',
- 'qosdown' => 0,
- 'retryinterval' => undef,
- 'negotiatetimeout' => undef,
- 'checkinterval' => undef,
- 'server' => {},
- 'qosup' => 0,
- 'real' => undef,
- 'module' => { 'name' => 'sessionless', 'key' => '' },
- 'checktimeout' => undef,
- 'request' => undef,
- 'checktype' => 'negotiate',
- 'virtualhost' => undef,
- 'quiescent' => undef,
- 'realrecovercallback' => undef,
- 'sorryserver' => undef,
- 'service' => undef,
- 'login' => '',
- 'fallback' => undef,
- 'passwd' => '',
- 'receive' => undef,
- 'database' => '',
- 'maxconn' => 0,
- 'checkcount' => undef,
- 'checkport' => undef,
- 'scheduler' => 'rr',
- 'realdowncallback' => undef,
- 'customcheck' => undef,
- 'accesslog_rotate_rotation_timing' => undef,
- 'accesslog_rotate_max_filesize' => undef,
- },
-## {
-## 'protocol' => 'tcp',
-## 'httpmethod' => 'HEAD',
-## 'qosdown' => '999M',
-## 'retryinterval' => 4,
-## 'negotiatetimeout' => 2,
-## 'checkinterval' => 3,
-## 'server' => {},
-## 'qosup' => '0',
-## 'real' => ['real', 'real'],
-## 'module' => {
-## 'name' => 'url',
-## 'option' => '--pattern-match /foo/bar',
-## 'key' => '--pattern-match /foo/bar'
-## },
-## 'checktimeout' => 1,
-## 'request' => 'request',
-## 'checktype' => 'connect',
-## 'virtualhost' => 'virtualhost',
-## 'quiescent' => 1,
-## 'realrecovercallback' => '/bin/cat',
-## 'sorryserver' => {},
-## 'service' => 'http',
-## 'login' => 'login',
-## 'fallback' => { 'tcp' => 'fallback_return' },
-## 'passwd' => 'passwd',
-## 'receive' => 'receive',
-## 'database' => 'database',
-## 'maxconn' => 7,
-## 'checkcount' => 6,
-## 'checkport' => 10000,
-## 'scheduler' => 'rr',
-## 'realdowncallback' => '/bin/cat',
-## 'customcheck' => '/bin/echo',
-## },
- {
- 'protocol' => 'tcp',
- 'httpmethod' => 'GET',
- 'qosdown' => 0,
- 'retryinterval' => undef,
- 'negotiatetimeout' => undef,
- 'checkinterval' => undef,
- 'server' => {},
- 'qosup' => 0,
- 'real' => ['real'],
- 'module' => { 'name' => 'sessionless', 'key' => '' },
- 'checktimeout' => undef,
- 'request' => undef,
- 'checktype' => 'negotiate',
- 'virtualhost' => undef,
- 'quiescent' => undef,
- 'realrecovercallback' => undef,
- 'sorryserver' => undef,
- 'service' => undef,
- 'login' => '',
- 'fallback' => undef,
- 'passwd' => '',
- 'receive' => undef,
- 'database' => '',
- 'maxconn' => 0,
- 'checkcount' => undef,
- 'checkport' => undef,
- 'scheduler' => 'rr',
- 'realdowncallback' => undef,
- 'customcheck' => undef,
- 'accesslog_rotate_rotation_timing' => undef,
- 'accesslog_rotate_max_filesize' => undef,
- }
- ]
- );
- default_value();
- local $ld_gethostservbyname_return = {};
- local @ld_gethostservbyname_args = ();
- local $_ld_service_resolve_called = 0;
- local @parse_fallback_args = ();
- local $parse_fallback_return = 'fallback_return';
- local @parse_real_args = ();
- local $parse_real_return = ['real'];
- local $ld_openlog_arg = ();
- local $ld_openlog_return = 0;
- create_config($input) or skip 'cannot create config', 7;
- read_config();
- is $main::PROC_STAT{initialized}, 1, 'read_config - full config';
-## is_deeply \%main::CONFIG, \%config, 'read_config - set all value';
- is $_ld_service_resolve_called, 4, 'read_config - _ld_service_resolve called';
- is_deeply \@ld_gethostservbyname_args,
- ['virtual_value1', 'tcp', 'virtual_value2', 'tcp', 'virtual_value3', 'tcp',
- 'sorryserver_value', 'tcp', 'virtual_value4', 'tcp'],
- 'read_config - _ld_gethostservbyname called';
- is_deeply \@parse_fallback_args,
- [14, 'fallback_value', 'fallback=fallback_value',
- 46, 'fallback_value', ' fallback = fallback_value'],
- 'read_config - parse_fallback called';
- is_deeply \@parse_real_args,
- [23, 'real_value1', ' real = real_value1',
- 24, 'real_value2', ' real = real_value2',
- 62, 'real_value3', ' real = real_value3'],
- 'read_config - parse_real called';
- is $ld_openlog_arg, 'logfile_value', 'read_config - ld_openlog called';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-checktimeout=1
-CONFIG
- my %config = %main::GLOBAL;
- $config{checktimeout} = 1;
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - checktimeout result ok';
- is_deeply \%main::CONFIG, \%config, 'read_config - checktimeout set config ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-checktimeout
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - checktimeout not defined';
- is $@, "config_error\n", 'read_config - raise config_error(4)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'checktimeout'], 'read_config - config_error args(4)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(4)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-checktimeout=yes
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - checktimeout not numeric';
- is $@, "config_error\n", 'read_config - raise config_error(5)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'checktimeout=yes'], 'read_config - config_error args(5)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(5)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-checktimeout=0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - checktimeout zero';
- is $@, "config_error\n", 'read_config - raise config_error(6)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'checktimeout=0'], 'read_config - config_error args(6)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(6)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-negotiatetimeout=1
-CONFIG
- my %config = %main::GLOBAL;
- $config{negotiatetimeout} = 1;
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - negotiatetimeout result ok';
- is_deeply \%main::CONFIG, \%config, 'read_config - negotiatetimeout set config ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-negotiatetimeout
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - negotiatetimeout not defined';
- is $@, "config_error\n", 'read_config - raise config_error(7)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'negotiatetimeout'], 'read_config - config_error args(7)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(7)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-negotiatetimeout=yes
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - negotiatetimeout not numeric';
- is $@, "config_error\n", 'read_config - raise config_error(8)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'negotiatetimeout=yes'], 'read_config - config_error args(8)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(8)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-negotiatetimeout=0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - negotiatetimeout zero';
- is $@, "config_error\n", 'read_config - raise config_error(9)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'negotiatetimeout=0'], 'read_config - config_error args(9)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(9)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-checkinterval=1
-CONFIG
- my %config = %main::GLOBAL;
- $config{checkinterval} = 1;
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - checkinterval result ok';
- is_deeply \%main::CONFIG, \%config, 'read_config - checkinterval set config ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-checkinterval
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - checkinterval not defined';
- is $@, "config_error\n", 'read_config - raise config_error(10)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'checkinterval'], 'read_config - config_error args(10)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(10)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-checkinterval=yes
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - checkinterval not numeric';
- is $@, "config_error\n", 'read_config - raise config_error(11)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'checkinterval=yes'], 'read_config - config_error args(11)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(11)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-checkinterval=0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - checkinterval zero';
- is $@, "config_error\n", 'read_config - raise config_error(12)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'checkinterval=0'], 'read_config - config_error args(12)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(12)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-retryinterval=1
-CONFIG
- my %config = %main::GLOBAL;
- $config{retryinterval} = 1;
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - retryinterval result ok';
- is_deeply \%main::CONFIG, \%config, 'read_config - retryinterval set config ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-retryinterval
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - retryinterval not defined';
- is $@, "config_error\n", 'read_config - raise config_error(13)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'retryinterval'], 'read_config - config_error args(13)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(13)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-retryinterval=yes
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - retryinterval not numeric';
- is $@, "config_error\n", 'read_config - raise config_error(14)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'retryinterval=yes'], 'read_config - config_error args(14)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(14)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-retryinterval=0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - retryinterval zero';
- is $@, "config_error\n", 'read_config - raise config_error(15)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'retryinterval=0'], 'read_config - config_error args(15)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(15)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-configinterval=1
-CONFIG
- my %config = %main::GLOBAL;
- $config{configinterval} = 1;
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - configinterval result ok';
- is_deeply \%main::CONFIG, \%config, 'read_config - configinterval set config ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-configinterval
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - configinterval not defined';
- is $@, "config_error\n", 'read_config - raise config_error(16)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'configinterval'], 'read_config - config_error args(16)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(16)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-configinterval=yes
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - configinterval not numeric';
- is $@, "config_error\n", 'read_config - raise config_error(17)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'configinterval=yes'], 'read_config - config_error args(17)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(17)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-configinterval=0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - configinterval zero';
- is $@, "config_error\n", 'read_config - raise config_error(18)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'configinterval=0'], 'read_config - config_error args(18)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(18)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-checkcount=1
-CONFIG
- my %config = %main::GLOBAL;
- $config{checkcount} = 1;
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - checkcount result ok';
- is_deeply \%main::CONFIG, \%config, 'read_config - checkcount set config ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-checkcount
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - checkcount not defined';
- is $@, "config_error\n", 'read_config - raise config_error(19)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'checkcount'], 'read_config - config_error args(19)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(19)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-checkcount=yes
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - checkcount not numeric';
- is $@, "config_error\n", 'read_config - raise config_error(20)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'checkcount=yes'], 'read_config - config_error args(20)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(20)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-checkcount=0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - checkcount zero';
- is $@, "config_error\n", 'read_config - raise config_error(21)';
- is_deeply \@config_error_args, [1, 'ERR0101', 'checkcount=0'], 'read_config - config_error args(21)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(21)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-autoreload=YeS
-CONFIG
- my %config = %main::GLOBAL;
- $config{autoreload} = 1;
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - autoreload yes result ok';
- is_deeply \%main::CONFIG, \%config, 'read_config - autoreload yes set config ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-autoreload=nO
-CONFIG
- my %config = %main::GLOBAL;
- $config{autoreload} = 0;
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - autoreload no result ok';
- is_deeply \%main::CONFIG, \%config, 'read_config - autoreload no set config ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-autoreload
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - autoreload not defined';
- is $@, "config_error\n", 'read_config - raise config_error(22)';
- is_deeply \@config_error_args, [1, 'ERR0102', 'autoreload'], 'read_config - config_error args(22)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(22)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-autoreload=YEAH
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - autoreload not lower yes or no(1)';
- is $@, "config_error\n", 'read_config - raise config_error(23)';
- is_deeply \@config_error_args, [1, 'ERR0102', 'autoreload=YEAH'], 'read_config - config_error args(23)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(23)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-autoreload=0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - autoreload not lower yes or no(2)';
- is $@, "config_error\n", 'read_config - raise config_error(24)';
- is_deeply \@config_error_args, [1, 'ERR0102', 'autoreload=0'], 'read_config - config_error args(24)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(24)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-quiescent=yEs
-CONFIG
- my %config = %main::GLOBAL;
- $config{quiescent} = 1;
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - quiescent yes result ok';
- is_deeply \%main::CONFIG, \%config, 'read_config - quiescent yes set config ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-quiescent=No
-CONFIG
- my %config = %main::GLOBAL;
- $config{quiescent} = 0;
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - quiescent no result ok';
- is_deeply \%main::CONFIG, \%config, 'read_config - quiescent no set config ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-quiescent
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - quiescent not defined';
- is $@, "config_error\n", 'read_config - raise config_error(25)';
- is_deeply \@config_error_args, [1, 'ERR0102', 'quiescent'], 'read_config - config_error args(25)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(25)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-quiescent=NOPE
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - quiescent not lower yes or no(1)';
- is $@, "config_error\n", 'read_config - raise config_error(26)';
- is_deeply \@config_error_args, [1, 'ERR0102', 'quiescent=NOPE'], 'read_config - config_error args(26)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(26)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-quiescent=0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - quiescent not lower yes or no(2)';
- is $@, "config_error\n", 'read_config - raise config_error(27)';
- is_deeply \@config_error_args, [1, 'ERR0102', 'quiescent=0'], 'read_config - config_error args(27)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(27)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-fallback
-CONFIG
- my %config = %main::GLOBAL;
- $config{fallback} = { tcp => undef };
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @parse_fallback_args = ();
- local $parse_fallback_return = undef;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - fallback not defined';
- is_deeply \%main::CONFIG, \%config, 'read_config - fallback set undef..';
- is_deeply \@parse_fallback_args, [1, undef, 'fallback'], 'read_config - parse_fallback_args(1)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-fallback=localhost:http
-CONFIG
- my %config = %main::GLOBAL;
- $config{fallback} = { tcp => 'fallback' };
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @parse_fallback_args = ();
- local $parse_fallback_return = 'fallback';
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - fallback ok';
- is_deeply \%main::CONFIG, \%config, 'read_config - fallback set normal';
- is_deeply \@parse_fallback_args, [1, 'localhost:http', 'fallback=localhost:http'], 'read_config - parse_fallback_args(2)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-callback=/bin/sh
-CONFIG
- my %config = %main::GLOBAL;
- $config{callback} = '/bin/sh';
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - callback result ok';
- is_deeply \%main::CONFIG, \%config, 'read_config - callback set config ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-callback
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - callback not defined';
- is $@, "config_error\n", 'read_config - raise config_error(28)';
- is_deeply \@config_error_args, [1, 'ERR0117', 'callback'], 'read_config - config_error args(28)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(28)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-callback=/proc/1
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - callback cannot execute';
- is $@, "config_error\n", 'read_config - raise config_error(29)';
- is_deeply \@config_error_args, [1, 'ERR0117', 'callback=/proc/1'], 'read_config - config_error args(29)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(29)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-callback=/proc/100000
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - callback no such file';
- is $@, "config_error\n", 'read_config - raise config_error(30)';
- is_deeply \@config_error_args, [1, 'ERR0117', 'callback=/proc/100000'], 'read_config - config_error args(30)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(30)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-callback=/proc
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - callback directory';
- is $@, "config_error\n", 'read_config - raise config_error(31)';
- is_deeply \@config_error_args, [1, 'ERR0117', 'callback=/proc'], 'read_config - config_error args(31)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(31)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-execute=/bin/sh
-execute=/bin/bash
-CONFIG
- my %config = %main::GLOBAL;
- $config{execute} = { '/bin/sh' => 1, '/bin/bash' => 1 };
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - execute result ok';
- is_deeply \%main::CONFIG, \%config, 'read_config - execute set config ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-execute
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - execute not defined';
- is $@, "config_error\n", 'read_config - raise config_error(32)';
- is_deeply \@config_error_args, [1, 'ERR0116', 'execute'], 'read_config - config_error args(32)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(32)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-execute=/proc/100000
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - execute no such file';
- is $@, "config_error\n", 'read_config - raise config_error(33)';
- is_deeply \@config_error_args, [1, 'ERR0116', 'execute=/proc/100000'], 'read_config - config_error args(33)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(33)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-execute=/proc
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - execute directory';
- is $@, "config_error\n", 'read_config - raise config_error(34)';
- is_deeply \@config_error_args, [1, 'ERR0116', 'execute=/proc'], 'read_config - config_error args(34)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(34)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-logfile=/bin/sh
-CONFIG
- my %config = %main::GLOBAL;
- $config{logfile} = '/bin/sh';
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - logfile result ok';
- is_deeply \%main::CONFIG, \%config, 'read_config - logfile set config ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-logfile=sys
-CONFIG
- my %config = %main::GLOBAL;
- $config{logfile} = 'sys';
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local $ld_openlog_arg = undef;
- local $ld_openlog_return = 0;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - logfile ld_openlog ok';
- is_deeply \%main::CONFIG, \%config, 'read_config - logfile ld_openlog ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-logfile
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - logfile not defined';
- is $@, "config_error\n", 'read_config - raise config_error(35)';
- is_deeply \@config_error_args, [1, 'ERR0118', 'logfile'], 'read_config - config_error args(35)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(35)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-logfile=sys
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 5;
- local $ld_openlog_arg = undef;
- local $ld_openlog_return = 1;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - logfile ld_openlog fail';
- is $@, "config_error\n", 'read_config - raise config_error(36)';
- is_deeply \@config_error_args, [1, 'ERR0118', 'logfile=sys'], 'read_config - config_error args(36)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(36)';
- is $ld_openlog_arg, 'sys', 'read_config - ld_openlog arg';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-supervised
-CONFIG
- my %config = %main::GLOBAL;
- $config{supervised} = 1;
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - supervised result ok(1)';
- is_deeply \%main::CONFIG, \%config, 'read_config - supervised set config ok(1)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-supervised = yes
-CONFIG
- my %config = %main::GLOBAL;
- $config{supervised} = 1;
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - supervised result ok(2)';
- is_deeply \%main::CONFIG, \%config, 'read_config - supervised set config ok(2)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-supervised = no
-CONFIG
- my %config = %main::GLOBAL;
- $config{supervised} = 1;
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - supervised result ok(3)';
- is_deeply \%main::CONFIG, \%config, 'read_config - supervised set config ok(3)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-unknown
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - unknown config';
- is $@, "config_error\n", 'read_config - raise config_error(37)';
- is_deeply \@config_error_args, [1, 'ERR0120', 'unknown'], 'read_config - config_error args(37)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(37)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 5;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = undef;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual not defined';
- is $@, "config_error\n", 'read_config - raise config_error(38)';
- is_deeply \@config_error_args, [1, 'ERR0114', 'virtual'], 'read_config - config_error args(38)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - not set anything(38)';
- is_deeply \@ld_gethostservbyname_args, [undef, 'tcp'], 'read_config - ld_gethostservbyname args(1)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual normal ok';
- is $main::CONFIG{virtual}[0]{server}{ip}, '127.0.0.1', 'read_config - set virtual ip ok';
- is $main::CONFIG{virtual}[0]{server}{port}, 80, 'read_config - set virtual port ok';
- is_deeply \@ld_gethostservbyname_args, ['localhost:http', 'tcp'], 'read_config - ld_gethostservbyname args(2)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
- real=localhost:http
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - no virtual line';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(1)';
- is_deeply \@config_error_args, [1, 'ERR0119', ' real=localhost:http'], 'read_config - virtual section - config_error args(1)';
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'read_config - virtual section - not set anything(1)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- unknown
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - unknown config';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(2)';
- is_deeply \@config_error_args, [2, 'ERR0120', ' unknown'], 'read_config - virtual section - config_error args(2)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- real="realhost1:ftp"
- real="realhost2:ftp"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 6;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- local @parse_real_args = ();
- local $parse_real_return = [ {server => { ip => '127.0.0.2', port => 21 } } ];
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - real ok';
- is $main::CONFIG{virtual}[0]{real}[0]{server}{ip}, '127.0.0.2', 'read_config - virtual section - set real ip ok(1)';
- is $main::CONFIG{virtual}[0]{real}[0]{server}{port}, 21, 'read_config - virtual section - set real port ok(1)';
- is $main::CONFIG{virtual}[0]{real}[1]{server}{ip}, '127.0.0.2', 'read_config - virtual section - set real ip ok(2)';
- is $main::CONFIG{virtual}[0]{real}[1]{server}{port}, 21, 'read_config - virtual section - set real port ok(2)';
- is_deeply \@parse_real_args, [2, 'realhost1:ftp', ' real="realhost1:ftp"',
- 3, 'realhost2:ftp', ' real="realhost2:ftp"'], 'read_config - virtual section - parse_real args';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- real
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- local @parse_real_args = ();
- local $parse_real_return = undef;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - real not defined';
- is_deeply \@parse_real_args, [2, undef, ' real'], 'read_config - virtual section - parse_real args(3)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- request="/index.html"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - request ok';
- is $main::CONFIG{virtual}[0]{request}, '/index.html', 'read_config - virtual section - set request ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- request =
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - request not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(4)';
- is_deeply \@config_error_args, [2, 'ERR0103', ' request ='], 'read_config - virtual section - config_error args(4)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- request = ""
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - empty request';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(5)';
- is_deeply \@config_error_args, [2, 'ERR0103', ' request = ""'], 'read_config - virtual section - config_error args(5)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- receive='body'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - receive ok';
- is $main::CONFIG{virtual}[0]{receive}, 'body', 'read_config - virtual section - set receive ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- receive =
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - receive not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(4)';
- is_deeply \@config_error_args, [2, 'ERR0103', ' receive ='], 'read_config - virtual section - config_error args(4)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- receive = ""
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - empty receive';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(5)';
- is_deeply \@config_error_args, [2, 'ERR0103', ' receive = ""'], 'read_config - virtual section - config_error args(5)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- login= anonymous
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - login ok';
- is $main::CONFIG{virtual}[0]{login}, 'anonymous', 'read_config - virtual section - set login ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- login =
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - login not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(4)';
- is_deeply \@config_error_args, [2, 'ERR0103', ' login ='], 'read_config - virtual section - config_error args(4)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- login = ""
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - empty login';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(5)';
- is_deeply \@config_error_args, [2, 'ERR0103', ' login = ""'], 'read_config - virtual section - config_error args(5)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- passwd = "ftp\@localhost"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - passwd ok';
- is $main::CONFIG{virtual}[0]{passwd}, 'ftp@localhost', 'read_config - virtual section - set passwd ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- passwd =
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - passwd not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(4)';
- is_deeply \@config_error_args, [2, 'ERR0103', ' passwd ='], 'read_config - virtual section - config_error args(4)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- passwd = ""
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - empty passwd';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(5)';
- is_deeply \@config_error_args, [2, 'ERR0103', ' passwd = ""'], 'read_config - virtual section - config_error args(5)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- database = "template"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - database ok';
- is $main::CONFIG{virtual}[0]{database}, 'template', 'read_config - virtual section - set database ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- database =
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - database not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(4)';
- is_deeply \@config_error_args, [2, 'ERR0103', ' database ='], 'read_config - virtual section - config_error args(4)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- database = ""
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - empty database';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(5)';
- is_deeply \@config_error_args, [2, 'ERR0103', ' database = ""'], 'read_config - virtual section - config_error args(5)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- virtualhost = "vip.domain.com"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - virtualhost ok';
- is $main::CONFIG{virtual}[0]{virtualhost}, 'vip.domain.com', 'read_config - virtual section - set virtualhost ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- virtualhost =
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - virtualhost not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(4)';
- is_deeply \@config_error_args, [2, 'ERR0103', ' virtualhost ='], 'read_config - virtual section - config_error args(4)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- virtualhost = ""
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - empty virtualhost';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(5)';
- is_deeply \@config_error_args, [2, 'ERR0103', ' virtualhost = ""'], 'read_config - virtual section - config_error args(5)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checktype = CoNnEcT
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - checktype connect ok';
- is $main::CONFIG{virtual}[0]{checktype}, 'connect', 'read_config - virtual section - set checktype connect ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checktype = nEgOtIaTe
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - checktype negotiate ok';
- is $main::CONFIG{virtual}[0]{checktype}, 'negotiate', 'read_config - virtual section - set checktype negotiate ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checktype = piNG
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - checktype ping ok';
- is $main::CONFIG{virtual}[0]{checktype}, 'ping', 'read_config - virtual section - set checktype ping ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checktype = Off
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - checktype off ok';
- is $main::CONFIG{virtual}[0]{checktype}, 'off', 'read_config - virtual section - set checktype off ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checktype = oN
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - checktype on ok';
- is $main::CONFIG{virtual}[0]{checktype}, 'on', 'read_config - virtual section - set checktype on ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checktype = 1
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - checktype combined ok';
- is $main::CONFIG{virtual}[0]{checktype}, '1', 'read_config - virtual section - set checktype combined ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checktype =
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checktype not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(6)';
- is_deeply \@config_error_args, [2, 'ERR0104', ' checktype ='], 'read_config - virtual section - config_error args(6)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checktype = unknown
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checktype not valid';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(7)';
- is_deeply \@config_error_args, [2, 'ERR0104', ' checktype = unknown'], 'read_config - virtual section - config_error args(7)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checktype = 0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checktype is zero';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(8)';
- is_deeply \@config_error_args, [2, 'ERR0104', ' checktype = 0'], 'read_config - virtual section - config_error args(8)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checktimeout = '1'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - checktimeout ok';
- is $main::CONFIG{virtual}[0]{checktimeout}, '1', 'read_config - virtual section - set checktimeout ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checktimeout
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checktimeout not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(9)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' checktimeout'], 'read_config - virtual section - config_error args(9)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checktimeout = yes
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checktimeout not numeric';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(10)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' checktimeout = yes'], 'read_config - virtual section - config_error args(10)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checktimeout = 0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checktimeout is zero';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(11)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' checktimeout = 0'], 'read_config - virtual section - config_error args(11)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- negotiatetimeout = '1'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - negotiatetimeout ok';
- is $main::CONFIG{virtual}[0]{negotiatetimeout}, '1', 'read_config - virtual section - set negotiatetimeout ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- negotiatetimeout
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - negotiatetimeout not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(12)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' negotiatetimeout'], 'read_config - virtual section - config_error args(12)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- negotiatetimeout = yes
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - negotiatetimeout not numeric';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(13)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' negotiatetimeout = yes'], 'read_config - virtual section - config_error args(13)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- negotiatetimeout = 0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - negotiatetimeout is zero';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(14)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' negotiatetimeout = 0'], 'read_config - virtual section - config_error args(14)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checkinterval = '1'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - checkinterval ok';
- is $main::CONFIG{virtual}[0]{checkinterval}, '1', 'read_config - virtual section - set checkinterval ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checkinterval
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checkinterval not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(15)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' checkinterval'], 'read_config - virtual section - config_error args(15)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checkinterval = yes
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checkinterval not numeric';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(16)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' checkinterval = yes'], 'read_config - virtual section - config_error args(16)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checkinterval = 0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checkinterval is zero';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(17)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' checkinterval = 0'], 'read_config - virtual section - config_error args(17)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- retryinterval = '1'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - retryinterval ok';
- is $main::CONFIG{virtual}[0]{retryinterval}, '1', 'read_config - virtual section - set retryinterval ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- retryinterval
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - retryinterval not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(18)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' retryinterval'], 'read_config - virtual section - config_error args(18)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- retryinterval = yes
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - retryinterval not numeric';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(19)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' retryinterval = yes'], 'read_config - virtual section - config_error args(19)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- retryinterval = 0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - retryinterval is zero';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(20)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' retryinterval = 0'], 'read_config - virtual section - config_error args(20)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checkcount = "1"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - checkcount ok';
- is $main::CONFIG{virtual}[0]{checkcount}, '1', 'read_config - virtual section - set checkcount ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checkcount
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checkcount not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(21)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' checkcount'], 'read_config - virtual section - config_error args(21)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checkcount = yes
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checkcount not numeric';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(22)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' checkcount = yes'], 'read_config - virtual section - config_error args(22)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checkcount = 0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checkcount is zero';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(23)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' checkcount = 0'], 'read_config - virtual section - config_error args(23)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- maxconn = 0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - maxconn ok';
- is $main::CONFIG{virtual}[0]{maxconn}, '0', 'read_config - virtual section - set maxconn ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- maxconn
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - maxconn not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(24)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' maxconn'], 'read_config - virtual section - config_error args(24)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- maxconn = yes
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - maxconn not numeric';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(25)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' maxconn = yes'], 'read_config - virtual section - config_error args(25)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- maxconn = -1
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - maxconn is minus';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(26)';
- is_deeply \@config_error_args, [2, 'ERR0101', ' maxconn = -1'], 'read_config - virtual section - config_error args(26)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checkport = "1"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - checkport min ok';
- is $main::CONFIG{virtual}[0]{checkport}, '1', 'read_config - virtual section - set checkport min ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checkport = 65535
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - checkport max ok';
- is $main::CONFIG{virtual}[0]{checkport}, '65535', 'read_config - virtual section - set checkport max ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checkport
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checkport not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(27)';
- is_deeply \@config_error_args, [2, 'ERR0108', ' checkport'], 'read_config - virtual section - config_error args(27)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checkport = yes
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checkport not numeric';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(28)';
- is_deeply \@config_error_args, [2, 'ERR0108', ' checkport = yes'], 'read_config - virtual section - config_error args(28)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checkport = 0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checkport is zero';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(29';
- is_deeply \@config_error_args, [2, 'ERR0108', ' checkport = 0'], 'read_config - virtual section - config_error args(29)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- checkport = 65536
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - checkport is over range';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(30)';
- is_deeply \@config_error_args, [2, 'ERR0108', ' checkport = 65536'], 'read_config - virtual section - config_error args(30)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- scheduler = lC
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - scheduler lc ok';
- is $main::CONFIG{virtual}[0]{scheduler}, 'lc', 'read_config - virtual section - set scheduler lc ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- scheduler = 'Rr'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - scheduler rr ok';
- is $main::CONFIG{virtual}[0]{scheduler}, 'rr', 'read_config - virtual section - set scheduler rr ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- scheduler = "WRR"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - scheduler wrr ok';
- is $main::CONFIG{virtual}[0]{scheduler}, 'wrr', 'read_config - virtual section - set scheduler wrr ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- scheduler =
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - scheduler not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(31)';
- is_deeply \@config_error_args, [2, 'ERR0105', ' scheduler ='], 'read_config - virtual section - config_error args(31)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- scheduler = unknown
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - scheduler not valid';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(32)';
- is_deeply \@config_error_args, [2, 'ERR0105', ' scheduler = unknown'], 'read_config - virtual section - config_error args(32)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- protocol = 'TcP'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - protocol ok';
- is $main::CONFIG{virtual}[0]{protocol}, 'tcp', 'read_config - virtual section - set protocol ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- protocol =
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - protocol not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(33)';
- is_deeply \@config_error_args, [2, 'ERR0109', ' protocol ='], 'read_config - virtual section - config_error args(33)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- protocol = unknown
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - protocol not valid';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(34)';
- is_deeply \@config_error_args, [2, 'ERR0109', ' protocol = unknown'], 'read_config - virtual section - config_error args(34)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- service=hTTp
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - service http ok';
- is $main::CONFIG{virtual}[0]{service}, 'http', 'read_config - virtual section - set service http ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- service=hTTpS
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - service https ok';
- is $main::CONFIG{virtual}[0]{service}, 'https', 'read_config - virtual section - set service https ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- service=LdAp
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - service ldap ok';
- is $main::CONFIG{virtual}[0]{service}, 'ldap', 'read_config - virtual section - set service ldap ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- service= "FTP"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - service ftp ok';
- is $main::CONFIG{virtual}[0]{service}, 'ftp', 'read_config - virtual section - set service ftp ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- service= 'SmtP'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - service smtp ok';
- is $main::CONFIG{virtual}[0]{service}, 'smtp', 'read_config - virtual section - set service smtp ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- service = POp
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - service pop ok';
- is $main::CONFIG{virtual}[0]{service}, 'pop', 'read_config - virtual section - set service pop ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- service = "ImAp"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - service imap ok';
- is $main::CONFIG{virtual}[0]{service}, 'imap', 'read_config - virtual section - set service imap ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- service = 'NNtp'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - service nntp ok';
- is $main::CONFIG{virtual}[0]{service}, 'nntp', 'read_config - virtual section - set service nntp ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- service =DNS
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - service dns ok';
- is $main::CONFIG{virtual}[0]{service}, 'dns', 'read_config - virtual section - set service dns ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- service= mysql
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - service mysql ok';
- is $main::CONFIG{virtual}[0]{service}, 'mysql', 'read_config - virtual section - set service mysql ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- service= 'PGSQL'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - service pgsql ok';
- is $main::CONFIG{virtual}[0]{service}, 'pgsql', 'read_config - virtual section - set service pgsql ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- service= sip
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - service sip ok';
- is $main::CONFIG{virtual}[0]{service}, 'sip', 'read_config - virtual section - set service sip ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- service= NONE
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - service none ok';
- is $main::CONFIG{virtual}[0]{service}, 'none', 'read_config - virtual section - set service none ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- service =
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - service not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(31)';
- is_deeply \@config_error_args, [2, 'ERR0106', ' service ='], 'read_config - virtual section - config_error args(31)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- service = unknown
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - service not valid';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(32)';
- is_deeply \@config_error_args, [2, 'ERR0106', ' service = unknown'], 'read_config - virtual section - config_error args(32)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- httpmethod=get
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - httpmethod GET ok';
- is $main::CONFIG{virtual}[0]{httpmethod}, 'GET', 'read_config - virtual section - set httpmethod GET ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- httpmethod= 'HeaD'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - httpmethod HEAD ok';
- is $main::CONFIG{virtual}[0]{httpmethod}, 'HEAD', 'read_config - virtual section - set httpmethod HEAD ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- httpmethod =
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - httpmethod not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(31)';
- is_deeply \@config_error_args, [2, 'ERR0110', ' httpmethod ='], 'read_config - virtual section - config_error args(31)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- httpmethod = unknown
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - httpmethod not valid';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(32)';
- is_deeply \@config_error_args, [2, 'ERR0110', ' httpmethod = unknown'], 'read_config - virtual section - config_error args(32)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- fallback
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- local @parse_fallback_args = ();
- local $parse_fallback_return = undef;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - fallback not defined';
- is_deeply \@parse_fallback_args, [2, undef, ' fallback'], 'read_config - virtual section - parse_fallback_args(1)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- fallback=localhost:http
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- local @parse_fallback_args = ();
- local $parse_fallback_return = 'fallback';
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - fallback ok';
- is_deeply \@parse_fallback_args, [2, 'localhost:http', ' fallback=localhost:http'], 'read_config - virtual section - parse_fallback_args(2)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- quiescent= YEs
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - quiescent yes ok';
- is $main::CONFIG{virtual}[0]{quiescent}, '1', 'read_config - virtual section - set quiescent yes ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- quiescent= "NO"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - quiescent no ok';
- is $main::CONFIG{virtual}[0]{quiescent}, '0', 'read_config - virtual section - set quiescent no ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- quiescent
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - quiescent not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(33)';
- is_deeply \@config_error_args, [2, 'ERR0102', ' quiescent'], 'read_config - virtual section - config_error args(33)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- quiescent=YEP
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - quiescent not lower yes or no(1)';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(34)';
- is_deeply \@config_error_args, [2, 'ERR0102', ' quiescent=YEP'], 'read_config - virtual section - config_error args(34)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- quiescent=0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - quiescent not lower yes or no(2)';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(35)';
- is_deeply \@config_error_args, [2, 'ERR0102', ' quiescent=0'], 'read_config - virtual section - config_error args(35)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- module= URL --reschedule --pattern-match "foobar"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - module url ok';
- is_deeply $main::CONFIG{virtual}[0]{module}, { name => 'url', option => '--reschedule --pattern-match foobar', key => '--pattern-match foobar' }, 'read_config - virtual section - set module url ok';
- remove_config();
-}
-######################################################
-## No Mentenance cinsert
-##SKIP: {
-## my $input = <<"CONFIG";
-##virtual=localhost:http
-## module= 'cINSERT --cookie-name 'Monkey' --cookie-expire 864'
-##CONFIG
-## default_value();
-## create_config($input) or skip 'cannot create config', 2;
-## local @ld_gethostservbyname_args = ();
-## local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
-## eval {
-## read_config();
-## };
-## is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - module cinsert ok';
-## is_deeply $main::CONFIG{virtual}[0]{module}, { name => 'cinsert', option => '--cookie-name Monkey --cookie-expire 864', key => '--cookie-name Monkey' }, 'read_config - virtual section - set module cinsert ok';
-## remove_config();
-##}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- module= "sslID"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - module sslid ok';
- is_deeply $main::CONFIG{virtual}[0]{module}, { name => 'sslid', option => undef, key => '' }, 'read_config - virtual section - set module sslid ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- module= SessionLess
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - module sessionless ok';
- is_deeply $main::CONFIG{virtual}[0]{module}, { name => 'sessionless', option => undef, key => '' }, 'read_config - virtual section - set module sessionless ok';
- remove_config();
-}
-######################################################
-## No Mentenance cinsert
-##SKIP: {
-## my $input = <<"CONFIG";
-##virtual=localhost:http
-## module= 'Cinsert --reschedule'
-##CONFIG
-## default_value();
-## create_config($input) or skip 'cannot create config', 2;
-## local @ld_gethostservbyname_args = ();
-## local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
-## eval {
-## read_config();
-## };
-## is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - module cinsert omit ok';
-## is_deeply $main::CONFIG{virtual}[0]{module}, { name => 'cinsert', option => '--cookie-name CookieName --reschedule', key => '--cookie-name CookieName' }, 'read_config - virtual section - set module cinsert omit ok';
-## remove_config();
-##}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- module
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - module not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(36)';
- is_deeply \@config_error_args, [2, 'ERR0111', ' module'], 'read_config - virtual section - config_error args(36)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- module = unknown
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - unknown module';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(37)';
- is_deeply \@config_error_args, [2, 'ERR0111', ' module = unknown'], 'read_config - virtual section - config_error args(37)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- module = url
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - url module key not exist';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(39)';
- is_deeply \@config_error_args, [2, 'ERR0112', 'url', q{--pattern-match' or `--uri-pattern-match' or `--host-pattern-match}, ' module = url'], 'read_config - virtual section - config_error args(39)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- sorryserver = sorryhost:ssh
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - sorryserver ok';
- is_deeply $main::CONFIG{virtual}[0]{sorryserver}, { ip => '127.0.0.1', port => 80 }, 'read_config - virtual section - set sorryserver ok';
- is_deeply \@ld_gethostservbyname_args, ['localhost:http', 'tcp', 'sorryhost:ssh', 'tcp'], 'read_config - virtual section - ld_gethostservbyname args(3)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- sorryserver
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- local $ld_gethostservbyname_undef = 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - sorryserver not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(40)';
- is_deeply \@config_error_args, [2, 'ERR0114', ' sorryserver'], 'read_config - virtual section - config_error args(40)';
- is_deeply \@ld_gethostservbyname_args, ['localhost:http', 'tcp', undef, 'tcp'], 'read_config - virtual section - ld_gethostservbyname args(4)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- sorryserver = sorryhost:ftp
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- local $ld_gethostservbyname_undef = 2;
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - sorryserver not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(41)';
- is_deeply \@config_error_args, [2, 'ERR0114', ' sorryserver = sorryhost:ftp'], 'read_config - virtual section - config_error args(41)';
- is_deeply \@ld_gethostservbyname_args, ['localhost:http', 'tcp', 'sorryhost:ftp', 'tcp'], 'read_config - virtual section - ld_gethostservbyname args(5)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosup = 0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - qosup 0 ok';
- is $main::CONFIG{virtual}[0]{qosup}, '0', 'read_config - virtual section - set qosup 0 ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosup = "1k"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - qosup min kilo ok';
- is $main::CONFIG{virtual}[0]{qosup}, '1K', 'read_config - virtual section - set qosup min kilo ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosup = '999K'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - qosup max kilo ok';
- is $main::CONFIG{virtual}[0]{qosup}, '999K', 'read_config - virtual section - set qosup max kilo ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosup = 1m
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - qosup min mega ok';
- is $main::CONFIG{virtual}[0]{qosup}, '1M', 'read_config - virtual section - set qosup min mega ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosup = "999M"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - qosup max mega ok';
- is $main::CONFIG{virtual}[0]{qosup}, '999M', 'read_config - virtual section - set qosup max mega ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosup = '1G'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - qosup min giga ok';
- is $main::CONFIG{virtual}[0]{qosup}, '1G', 'read_config - virtual section - set qosup min giga ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosup = 999g
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - qosup max giga ok';
- is $main::CONFIG{virtual}[0]{qosup}, '999G', 'read_config - virtual section - set qosup max giga ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosup
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - qosup not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(42)';
- is_deeply \@config_error_args, [2, 'ERR0113', ' qosup'], 'read_config - virtual section - config_error args(42)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosup=100
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - qosup not valid format(1)';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(43-1)';
- is_deeply \@config_error_args, [2, 'ERR0113', ' qosup=100'], 'read_config - virtual section - config_error args(43-1)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosup=1000K
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - qosup not valid format(2)';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(43-2)';
- is_deeply \@config_error_args, [2, 'ERR0113', ' qosup=1000K'], 'read_config - virtual section - config_error args(43-2)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosdown = 0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - qosdown 0 ok';
- is $main::CONFIG{virtual}[0]{qosdown}, '0', 'read_config - virtual section - set qosdown 0 ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosdown = "1k"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - qosdown min kilo ok';
- is $main::CONFIG{virtual}[0]{qosdown}, '1K', 'read_config - virtual section - set qosdown min kilo ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosdown = '999K'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - qosdown max kilo ok';
- is $main::CONFIG{virtual}[0]{qosdown}, '999K', 'read_config - virtual section - set qosdown max kilo ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosdown = 1m
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - qosdown min mega ok';
- is $main::CONFIG{virtual}[0]{qosdown}, '1M', 'read_config - virtual section - set qosdown min mega ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosdown = "999M"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - qosdown max mega ok';
- is $main::CONFIG{virtual}[0]{qosdown}, '999M', 'read_config - virtual section - set qosdown max mega ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosdown = '1G'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - qosdown min giga ok';
- is $main::CONFIG{virtual}[0]{qosdown}, '1G', 'read_config - virtual section - set qosdown min giga ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosdown = 999g
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - qosdown max giga ok';
- is $main::CONFIG{virtual}[0]{qosdown}, '999G', 'read_config - virtual section - set qosdown max giga ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosdown
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - qosdown not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(44)';
- is_deeply \@config_error_args, [2, 'ERR0113', ' qosdown'], 'read_config - virtual section - config_error args(44)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosdown=100
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - qosdown not valid format(1)';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(45-1)';
- is_deeply \@config_error_args, [2, 'ERR0113', ' qosdown=100'], 'read_config - virtual section - config_error args(45-1)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- qosdown= 1000M
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - qosdown not valid format(2)';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(45-2)';
- is_deeply \@config_error_args, [2, 'ERR0113', ' qosdown= 1000M'], 'read_config - virtual section - config_error args(45-2)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- realdowncallback = '/bin/sh'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - realdowncallback ok';
- is $main::CONFIG{virtual}[0]{realdowncallback}, '/bin/sh', 'read_config - virtual section - set realdowncallback ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- realdowncallback
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - realdowncallback not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(46)';
- is_deeply \@config_error_args, [2, 'ERR0117', ' realdowncallback'], 'read_config - virtual section - config_error args(46)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- realdowncallback=/proc/1
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - realdowncallback cannot execute';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(47)';
- is_deeply \@config_error_args, [2, 'ERR0117', ' realdowncallback=/proc/1'], 'read_config - virtual section - config_error args(47)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- realdowncallback=/proc/100000
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - realdowncallback no such file';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(48)';
- is_deeply \@config_error_args, [2, 'ERR0117', ' realdowncallback=/proc/100000'], 'read_config - virtual section - config_error args(48)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- realdowncallback=/proc
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - realdowncallback directory';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(49)';
- is_deeply \@config_error_args, [2, 'ERR0117', ' realdowncallback=/proc'], 'read_config - virtual section - config_error args(49)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- realrecovercallback = '/bin/sh'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - realrecovercallback ok';
- is $main::CONFIG{virtual}[0]{realrecovercallback}, '/bin/sh', 'read_config - virtual section - set realrecovercallback ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- realrecovercallback
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - realrecovercallback not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(50)';
- is_deeply \@config_error_args, [2, 'ERR0117', ' realrecovercallback'], 'read_config - virtual section - config_error args(50)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- realrecovercallback=/proc/1
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - realrecovercallback cannot execute';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(51)';
- is_deeply \@config_error_args, [2, 'ERR0117', ' realrecovercallback=/proc/1'], 'read_config - virtual section - config_error args(51)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- realrecovercallback=/proc/100000
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - realrecovercallback no such file';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(52)';
- is_deeply \@config_error_args, [2, 'ERR0117', ' realrecovercallback=/proc/100000'], 'read_config - virtual section - config_error args(52)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- realrecovercallback=/proc
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - realrecovercallback directory';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(53)';
- is_deeply \@config_error_args, [2, 'ERR0117', ' realrecovercallback=/proc'], 'read_config - virtual section - config_error args(53)';
- remove_config();
-}
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog=yEs
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog yes ok';
- is $main::CONFIG{virtual}[0]{accesslog}, '1', 'read_config - virtual section - set accesslog yes ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog=No
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog no ok';
- is $main::CONFIG{virtual}[0]{accesslog}, '0', 'read_config - virtual section - set accesslog no ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error';
- is_deeply \@config_error_args, [2, 'ERR0102', ' accesslog'], 'read_config - virtual section - config_error args';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog=NOPE
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error';
- is_deeply \@config_error_args, [2, 'ERR0102', ' accesslog=NOPE'], 'read_config - virtual section - config_error args';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog=0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error';
- is_deeply \@config_error_args, [2, 'ERR0102', ' accesslog=0'], 'read_config - virtual section - config_error args';
- remove_config();
-}
-
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog= YEs
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog yes ok';
- is $main::CONFIG{virtual}[0]{accesslog}, '1', 'read_config - virtual section - set accesslog yes ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog= "NO"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog no ok';
- is $main::CONFIG{virtual}[0]{accesslog}, '0', 'read_config - virtual section - set accesslog no ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(33)';
- is_deeply \@config_error_args, [2, 'ERR0102', ' accesslog'], 'read_config - virtual section - config_error args(33)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog=YEP
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog not lower yes or no(1)';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(34)';
- is_deeply \@config_error_args, [2, 'ERR0102', ' accesslog=YEP'], 'read_config - virtual section - config_error args(34)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog=0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog not lower yes or no(2)';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(35)';
- is_deeply \@config_error_args, [2, 'ERR0102', ' accesslog=0'], 'read_config - virtual section - config_error args(35)';
- remove_config();
-}
-
-#########################################################################################################
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- sslconfigfile='/bin/sh'
-CONFIG
- my %config = %main::GLOBAL;
- $config{sslconfigfile} = '/bin/sh';
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - sslconfigfile result ok';
- is_deeply $main::CONFIG{virtual}[0]{sslconfigfile}, '/bin/sh', 'read_config - sslconfigfile set config ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- sslconfigfile
-CONFIG
- my %config = %main::GLOBAL;
- $config{sslconfigfile} = '/bin/sh';
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - sslconfigfile result ok';
- is_deeply \@config_error_args, [2, 'ERR0116', ' sslconfigfile'], 'read_config - virtual section - config_error args(35)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- sslconfigfile=/proc/100000
-CONFIG
- my %config = %main::GLOBAL;
- $config{sslconfigfile} = '/proc/100000';
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - sslconfigfile result ok';
- is_deeply \@config_error_args, [2, 'ERR0116', ' sslconfigfile=/proc/100000'], 'read_config - virtual section - config_error args(35)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- sslconfigfile=/proc
-CONFIG
- my %config = %main::GLOBAL;
- $config{sslconfigfile} = '/proc';
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - sslconfigfile result ok';
- is_deeply \@config_error_args, [2, 'ERR0116', ' sslconfigfile=/proc'], 'read_config - virtual section - config_error args';
- remove_config();
-}
-
-#####################################################################################################
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslogfile=/bin/sh
-CONFIG
- my %config = %main::GLOBAL;
- $config{accesslogfile} = '/bin/sh';
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - sslconfigfile result ok';
- is_deeply $main::CONFIG{virtual}[0]{accesslogfile}, '/bin/sh', 'read_config - sslconfigfile set config ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslogfile
-CONFIG
- my %config = %main::GLOBAL;
- $config{accesslogfile} = '/bin/sh';
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - accesslogfile result ok';
- is_deeply \@config_error_args, [2, 'ERR0116', ' accesslogfile'], 'read_config - virtual section - config_error args(35)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslogfile=/proc/100000
-CONFIG
- my %config = %main::GLOBAL;
- $config{accesslogfile} = '/proc/100000';
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - accesslogfile result ok';
- is_deeply \@config_error_args, [2, 'ERR0116', ' accesslogfile=/proc/100000'], 'read_config - virtual section - config_error args(35)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslogfile=/proc
-CONFIG
- my %config = %main::GLOBAL;
- $config{accesslogfile} = '/proc';
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - accesslogfile result ok';
- is_deeply \@config_error_args, [2, 'ERR0116', ' accesslogfile=/proc'], 'read_config - virtual section - config_error args';
- remove_config();
-}
-
-
-#################################################################################################
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- socketoption="deferaccept,nodelay,cork,quickackon"
-CONFIG
- my %config = %main::GLOBAL;
- $config{socketoption} = 'deferaccept,nodelay,cork,quickackon';
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - socketoption ok';
- is $main::CONFIG{virtual}[0]{socketoption}, 'deferaccept,nodelay,cork,quickackon', 'read_config - virtual section - set socketoption ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- socketoption="deferaccept,nodelay,quickackoff"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - socketoption ok';
- is $main::CONFIG{virtual}[0]{socketoption}, 'deferaccept,nodelay,quickackoff', 'read_config - virtual section - set socketoption ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- socketoption="deferaccept,quickackoff"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - socketoption ok';
- is $main::CONFIG{virtual}[0]{socketoption}, 'deferaccept,quickackoff', 'read_config - virtual section - set socketoption ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- socketoption="quickackoff"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - socketoption ok';
- is $main::CONFIG{virtual}[0]{socketoption}, 'quickackoff', 'read_config - virtual section - set socketoption ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- socketoption=""
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - socketoption ok';
- is $main::CONFIG{virtual}[0]{socketoption}, '', 'read_config - virtual section - set socketoption ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- socketoption =sssss
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - socketoption not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(4)';
- is_deeply \@config_error_args, [2, 'ERR0124', ' socketoption =sssss'], 'read_config - virtual section - config_error args(4)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- socketoption = deferaccept,nodelay,sdadda
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - empty socketoption';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(5)';
- is_deeply \@config_error_args, [2, 'ERR0124', ' socketoption = deferaccept,nodelay,sdadda'], 'read_config - virtual section - config_error args(5)';
- remove_config();
-}
-#################################################################################################
-### date|size|datesize
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_type=date
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_type http ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_type}, 'date', 'read_config - virtual section - set accesslog_rotate_type http ok';
- remove_config();
-}
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_type=size
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_type http ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_type}, 'size', 'read_config - virtual section - set accesslog_rotate_type http ok';
- remove_config();
-}
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_type=datesize
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_type http ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_type}, 'datesize', 'read_config - virtual section - set accesslog_rotate_type http ok';
- remove_config();
-}
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_type =
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog_rotate_type not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(31)';
- is_deeply \@config_error_args, [2, 'ERR0124', ' accesslog_rotate_type ='], 'read_config - virtual section - config_error args(31)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_type = unknown
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog_rotate_type not valid';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(32)';
- is_deeply \@config_error_args, [2, 'ERR0124', ' accesslog_rotate_type = unknown'], 'read_config - virtual section - config_error args(32)';
- remove_config();
-}
-#################################################################################################
-## accesslog_rotate_max_backup_index (N : )
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_max_backup_index = "1"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_max_backup_index min ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_max_backup_index}, '1', 'read_config - virtual section - set accesslog_rotate_max_backup_index min ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_max_backup_index = 12
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_max_backup_index max ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_max_backup_index}, '12', 'read_config - virtual section - set accesslog_rotate_max_backup_index max ok';
- remove_config();
-}
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_max_backup_index
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog_rotate_max_backup_index not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(27)';
- is_deeply \@config_error_args, [2, 'ERR0126', ' accesslog_rotate_max_backup_index'], 'read_config - virtual section - config_error args(27)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_max_backup_index = yes
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog_rotate_max_backup_index not numeric';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(28)';
- is_deeply \@config_error_args, [2, 'ERR0126', ' accesslog_rotate_max_backup_index = yes'], 'read_config - virtual section - config_error args(28)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_max_backup_index = 0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog_rotate_max_backup_index not numeric';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(28)';
- is_deeply \@config_error_args, [2, 'ERR0126', ' accesslog_rotate_max_backup_index = 0'], 'read_config - virtual section - config_error args(28)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_max_backup_index = 13
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog_rotate_max_backup_index is over range';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(30)';
- is_deeply \@config_error_args, [2, 'ERR0126', ' accesslog_rotate_max_backup_index = 13'], 'read_config - virtual section - config_error args(30)';
- remove_config();
-}
-
-#################################################################################################
-## accesslog_rotate_max_filesize (N[K|M|G])
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_max_filesize = 0
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_max_filesize 0 ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_max_filesize}, '0', 'read_config - virtual section - set accesslog_rotate_max_filesize 0 ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_max_filesize = "1k"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_max_filesize min kilo ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_max_filesize}, '1K', 'read_config - virtual section - set accesslog_rotate_max_filesize min kilo ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_max_filesize = '999K'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_max_filesize max kilo ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_max_filesize}, '999K', 'read_config - virtual section - set accesslog_rotate_max_filesize max kilo ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_max_filesize = 1m
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_max_filesize min mega ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_max_filesize}, '1M', 'read_config - virtual section - set accesslog_rotate_max_filesize min mega ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_max_filesize = "999M"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_max_filesize max mega ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_max_filesize}, '999M', 'read_config - virtual section - set accesslog_rotate_max_filesize max mega ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_max_filesize = '1G'
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_max_filesize min giga ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_max_filesize}, '1G', 'read_config - virtual section - set accesslog_rotate_max_filesize min giga ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_max_filesize = 999g
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_max_filesize max giga ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_max_filesize}, '999G', 'read_config - virtual section - set accesslog_rotate_max_filesize max giga ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_max_filesize
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog_rotate_max_filesize not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(42)';
- is_deeply \@config_error_args, [2, 'ERR0127', ' accesslog_rotate_max_filesize'], 'read_config - virtual section - config_error args(42)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_max_filesize=1000K
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog_rotate_max_filesize not valid format(2)';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(43-2)';
- is_deeply \@config_error_args, [2, 'ERR0127', ' accesslog_rotate_max_filesize=1000K'], 'read_config - virtual section - config_error args(43-2)';
- remove_config();
-}
-
-#################################################################################################
-### accesslog_rotate_rotation_timing year|month|week|date|hour
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_rotation_timing=year
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_rotation_timing http ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_rotation_timing}, 'year', 'read_config - virtual section - set accesslog_rotate_rotation_timing http ok';
- remove_config();
-}
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_rotation_timing=month
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_rotation_timing http ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_rotation_timing}, 'month', 'read_config - virtual section - set accesslog_rotate_rotation_timing http ok';
- remove_config();
-}
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_rotation_timing=week
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_rotation_timing http ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_rotation_timing}, 'week', 'read_config - virtual section - set accesslog_rotate_rotation_timing http ok';
- remove_config();
-}
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_rotation_timing=date
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_rotation_timing http ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_rotation_timing}, 'date', 'read_config - virtual section - set accesslog_rotate_rotation_timing http ok';
- remove_config();
-}
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_rotation_timing=hour
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_rotation_timing http ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_rotation_timing}, 'hour', 'read_config - virtual section - set accesslog_rotate_rotation_timing http ok';
- remove_config();
-}
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_rotation_timing =
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog_rotate_rotation_timing not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(31)';
- is_deeply \@config_error_args, [2, 'ERR0128', ' accesslog_rotate_rotation_timing ='], 'read_config - virtual section - config_error args(31)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_rotation_timing = unknown
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog_rotate_rotation_timing not valid';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(32)';
- is_deeply \@config_error_args, [2, 'ERR0128', ' accesslog_rotate_rotation_timing = unknown'], 'read_config - virtual section - config_error args(32)';
- remove_config();
-}
-#################################################################################################
-## accesslog_rotate_rotation_timing_value
-## MM/dd hh:mm Check
-## dd hh:mm Check
-## <week> hh:mm Check
-## hh:mm Check
-## mm Check
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_rotation_timing_value=12/31 23:59
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_rotation_timing_value ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_rotation_timing_value}, '12/31 23:59', 'read_config - virtual section - set accesslog_rotate_rotation_timing_value ok';
- remove_config();
-}
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_rotation_timing_value=1 0:00
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_rotation_timing_value ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_rotation_timing_value}, '1 0:00', 'read_config - virtual section - set accesslog_rotate_rotation_timing_value ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_rotation_timing_value=Mon 22:23
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_rotation_timing_value ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_rotation_timing_value}, 'Mon 22:23', 'read_config - virtual section - set accesslog_rotate_rotation_timing_value ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_rotation_timing_value=20:59
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_rotation_timing_value ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_rotation_timing_value}, '20:59', 'read_config - virtual section - set accesslog_rotate_rotation_timing_value ok';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_rotation_timing_value=59
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 2;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - accesslog_rotate_rotation_timing_value ok';
- is $main::CONFIG{virtual}[0]{accesslog_rotate_rotation_timing_value}, '59', 'read_config - virtual section - set accesslog_rotate_rotation_timing_value ok';
- remove_config();
-}
-
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_rotation_timing_value =sssss
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - accesslog_rotate_rotation_timing_value not defined';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(4)';
- is_deeply \@config_error_args, [2, 'ERR0129', ' accesslog_rotate_rotation_timing_value =sssss'], 'read_config - virtual section - config_error args(4)';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=localhost:http
- accesslog_rotate_rotation_timing_value = deferaccept,nodelay,sdadda
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 3;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '127.0.0.1', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 0, 'read_config - virtual section - empty accesslog_rotate_rotation_timing_value';
- is $@, "config_error\n", 'read_config - virtual section - raise config_error(5)';
- is_deeply \@config_error_args, [2, 'ERR0129', ' accesslog_rotate_rotation_timing_value = deferaccept,nodelay,sdadda'], 'read_config - virtual section - config_error args(5)';
- remove_config();
-}
-
-############################################################################################################################
-# - reread_config
-{
- local *read_config = \&__read_config;
- local $main::CONFIG{virtual} = undef;
- local $read_config_virtual = [ foo => 2, bar => 4 ];
- local $main::CONFIG{execute} = { 'foo.conf' => 1, 'bar.conf' => 1 };
- local $read_config_execute = { 'foo.conf' => 1, 'hoge.conf' => 1 };
- local $system_wrapper_return = 1;
- local $system_wrapper_called = 0;
- local @ld_cmd_children_args = ();
- reread_config();
- is $system_wrapper_called, 2, 'reread_config - virtual is undef';
- is_deeply \@ld_cmd_children_args, [ ['stop', {'bar.conf' => 1} ], ['start', {'hoge.conf' => 1} ] ], 'reread_config - 1 old config stop, 1 new config start';
-}
-{
- local *read_config = \&__read_config;
- local $main::CONFIG{virtual} = [ foo => 1, bar => 2 ];
- local $read_config_virtual = [ foo => 2, bar => 4 ];
- local $main::CONFIG{execute} = undef;
- local $read_config_execute = { 'foo.conf' => 1, 'hoge.conf' => 1 };
- local $system_wrapper_return = 1;
- local $system_wrapper_called = 0;
- local @ld_cmd_children_args = ();
- reread_config();
- is $system_wrapper_called, 0, 'reread_config - execute is undef';
- is_deeply \@ld_cmd_children_args, [ ['stop', {} ], ['start', {'foo.conf' => 1, 'hoge.conf' => 1} ] ], 'reread_config - 0 old config stop, 2 new config start';
-}
-{
- local *read_config = \&__read_config;
- local $main::CONFIG{virtual} = [ foo => 1, bar => 2 ];
- local $read_config_virtual = [ foo => 2, bar => 4 ];
- local $main::CONFIG{execute} = { 'foo.conf' => 1, 'bar.conf' => 1 };
- local $read_config_execute = { 'foo.conf' => 1, 'hoge.conf' => 1 };
- local $system_wrapper_return = 1;
- local $system_wrapper_called = 0;
- local @ld_cmd_children_args = ();
- reread_config();
- is $system_wrapper_called, 2, 'reread_config - 1 exist config reload, but failed and then start';
- is_deeply \@ld_cmd_children_args, [ ['stop', {'bar.conf' => 1} ], ['start', {'hoge.conf' => 1} ] ], 'reread_config - 1 old config stop, 1 new config start';
-}
-{
- local *read_config = \&__read_config;
- local $main::CONFIG{virtual} = [ foo => 1, bar => 2 ];
- local $read_config_virtual = [ foo => 2, bar => 4 ];
- local $main::CONFIG{execute} = { 'foo.conf' => 1, 'bar.conf' => 1 };
- local $read_config_execute = { 'foo.conf' => 1, 'hoge.conf' => 1 };
- local $system_wrapper_return = 0;
- local $system_wrapper_called = 0;
- local $read_config_die = 1;
- local @ld_cmd_children_args = ();
- reread_config();
- is $system_wrapper_called, 2, 'reread_config - all old config reload(1)';
- is_deeply \@ld_cmd_children_args, [ ['stop', {} ], ['start', {} ] ], 'reread_config - no stop / start command(1)';
-}
-{
- local *read_config = \&__read_config;
- local $main::CONFIG{virtual} = [ foo => 1, bar => 2 ];
- local $read_config_virtual = [ foo => 2, bar => 4 ];
- local $main::CONFIG{execute} = { 'foo.conf' => 1, 'bar.conf' => 1 };
- local $read_config_execute = { 'foo.conf' => 1, 'hoge.conf' => 1 };
- local $system_wrapper_return = 0;
- local $system_wrapper_called = 0;
- local $read_config_die = 0;
- local $ld_setup_die = 1;
- local @ld_cmd_children_args = ();
- reread_config();
- is $system_wrapper_called, 2, 'reread_config - all old config reload(2)';
- is_deeply \@ld_cmd_children_args, [ ['stop', {} ], ['start', {} ] ], 'reread_config - no stop / start command(2)';
-}
-# - check_cfgfile
-{
- local $main::CONFIG_FILE{path} = undef;
- my $got = check_cfgfile();
- is $got, 0, 'check_cfgfile - config file path is undef';
-}
-{
- default_value();
- create_config('sample');
- my $got = check_cfgfile();
- is $got, 0, 'check_cfgfile - first config file check(1)';
- ok $main::CONFIG_FILE{stattime} > 0, 'check_cfgfile - register mtime(1)';
- ok length $main::CONFIG_FILE{checksum} > 0, 'check_cfgfile - register checksum(1)';
- remove_config();
-}
-{
- default_value();
- create_config('sample');
- my $got = check_cfgfile();
- is $got, 0, 'check_cfgfile - first config file check(2)';
- ok $main::CONFIG_FILE{stattime} > 0, 'check_cfgfile - register mtime(2)';
- ok length $main::CONFIG_FILE{checksum} > 0, 'check_cfgfile - register checksum(2)';
- my $before_mtime = $main::CONFIG_FILE{stattime};
- my $before_checksum = $main::CONFIG_FILE{checksum};
- sleep 1;
- open my $f, ">", $main::CONFIG_FILE{path};
- print $f 'sample';
- close $f;
- $got = check_cfgfile();
- is $got, 0, 'check_cfgfile - mtime change but same';
- ok $main::CONFIG_FILE{stattime} > $before_mtime, 'check_cfgfile - mtime change';
- is $main::CONFIG_FILE{checksum}, $before_checksum, 'check_cfgfile - same checksum';
- remove_config();
-}
-{
- default_value();
- create_config('sample');
- my $got = check_cfgfile();
- is $got, 0, 'check_cfgfile - first config file check(3)';
- ok $main::CONFIG_FILE{stattime} > 0, 'check_cfgfile - register mtime(3)';
- ok length $main::CONFIG_FILE{checksum} > 0, 'check_cfgfile - register checksum(3)';
- my $before_mtime = $main::CONFIG_FILE{stattime};
- my $before_checksum = $main::CONFIG_FILE{checksum};
- sleep 1;
- open my $f, ">", $main::CONFIG_FILE{path};
- print $f 'sample2';
- close $f;
- $got = check_cfgfile();
- is $got, 0, 'check_cfgfile - config change, no autoreload, no callback';
- ok $main::CONFIG_FILE{stattime} > $before_mtime, 'check_cfgfile - mtime change';
- ok $main::CONFIG_FILE{checksum} ne $before_checksum, 'check_cfgfile - checksum change';
- remove_config();
-}
-{
- default_value();
- create_config('sample');
- $main::CONFIG{autoreload} = 1;
- my $got = check_cfgfile();
- is $got, 0, 'check_cfgfile - first config file check(4)';
- ok $main::CONFIG_FILE{stattime} > 0, 'check_cfgfile - register mtime(4)';
- ok length $main::CONFIG_FILE{checksum} > 0, 'check_cfgfile - register checksum(4)';
- my $before_mtime = $main::CONFIG_FILE{stattime};
- my $before_checksum = $main::CONFIG_FILE{checksum};
- sleep 1;
- open my $f, ">", $main::CONFIG_FILE{path};
- print $f 'test';
- close $f;
- $got = check_cfgfile();
- is $got, 1, 'check_cfgfile - config change, autoreload, no callback';
- ok $main::CONFIG_FILE{stattime} > $before_mtime, 'check_cfgfile - mtime change';
- ok $main::CONFIG_FILE{checksum} ne $before_checksum, 'check_cfgfile - checksum change';
- remove_config();
-}
-{
- default_value();
- create_config('sample');
- $main::CONFIG{autoreload} = 1;
- $main::CONFIG{callback} = '/bin/sh';
- my $got = check_cfgfile();
- is $got, 0, 'check_cfgfile - first config file check(4)';
- ok $main::CONFIG_FILE{stattime} > 0, 'check_cfgfile - register mtime(4)';
- ok length $main::CONFIG_FILE{checksum} > 0, 'check_cfgfile - register checksum(4)';
- my $before_mtime = $main::CONFIG_FILE{stattime};
- my $before_checksum = $main::CONFIG_FILE{checksum};
- sleep 1;
- open my $f, ">", $main::CONFIG_FILE{path};
- print $f 'callback';
- close $f;
- local $system_wrapper_called = 0;
- $got = check_cfgfile();
- is $got, 1, 'check_cfgfile - config change, autoreload, callback';
- ok $main::CONFIG_FILE{stattime} > $before_mtime, 'check_cfgfile - mtime change';
- ok $main::CONFIG_FILE{checksum} ne $before_checksum, 'check_cfgfile - checksum change';
- is $system_wrapper_called, 1, 'check_cfgfile - callback called';
- remove_config();
-}
-#########################################################################################################
-#### IPv6 Address Set
-SKIP: {
- my $input = <<"CONFIG";
-virtual=[::]:http
- real="[2005::1]:ftp"
- real="[2005::2]:ftp"
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 6;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '[2005::1]', port => 80 };
- local @parse_real_args = ();
- local $parse_real_return = [ {server => { ip => '[2005::2]', port => 21 } } ];
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual section - real ok';
- is $main::CONFIG{virtual}[0]{real}[0]{server}{ip}, '[2005::2]', 'read_config - virtual section - set real ip ok(1)';
- is $main::CONFIG{virtual}[0]{real}[0]{server}{port}, 21, 'read_config - virtual section - set real port ok(1)';
- is $main::CONFIG{virtual}[0]{real}[1]{server}{ip}, '[2005::2]', 'read_config - virtual section - set real ip ok(2)';
- is $main::CONFIG{virtual}[0]{real}[1]{server}{port}, 21, 'read_config - virtual section - set real port ok(2)';
- is_deeply \@parse_real_args, [2, '[2005::1]:ftp', ' real="[2005::1]:ftp"',
- 3, '[2005::2]:ftp', ' real="[2005::2]:ftp"'], 'read_config - virtual section - parse_real args';
- remove_config();
-}
-SKIP: {
- my $input = <<"CONFIG";
-virtual=[::]:http
-CONFIG
- default_value();
- create_config($input) or skip 'cannot create config', 4;
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = { ip => '[2005::1]', port => 80 };
- eval {
- read_config();
- };
- is $main::PROC_STAT{initialized}, 1, 'read_config - virtual normal ok';
- is $main::CONFIG{virtual}[0]{server}{ip}, '[2005::1]', 'read_config - set virtual ip ok';
- is $main::CONFIG{virtual}[0]{server}{port}, 80, 'read_config - set virtual port ok';
- is_deeply \@ld_gethostservbyname_args, ['[::]:http', 'tcp'], 'read_config - virtualservice ipv6';
- remove_config();
-}
-#####################
-### check_require_module
-{
- default_value();
- eval {
- check_require_module();
- };
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'check_require_module - ok';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub default_value {
- $main::CONFIG_FILE{path} = time;
- undef $main::CONFIG_FILE{stattime};
- undef $main::CONFIG_FILE{checksum};
- $main::PROC_STAT{initialized} = 0;
- %main::CONFIG = %main::GLOBAL;
-}
-sub create_config {
- my $input = shift;
- open my $f, ">", $main::CONFIG_FILE{path} or return 0;
- print $f $input;
- close $f;
- return 1;
-}
-sub remove_config {
- if (-f $main::CONFIG_FILE{path}) {
- unlink $main::CONFIG_FILE{path};
- }
-}
-sub override {
- *config_error = \&__config_error;
- *ld_gethostservbyname = \&__ld_gethostservbyname;
- *parse_fallback = \&__parse_fallback;
- *parse_real = \&__parse_real;
- *ld_openlog = \&__ld_openlog;
- *_ld_service_resolve = \&__ld_service_resolve;
- *ld_setup = \&__ld_setup;
- *ld_cmd_children = \&__ld_cmd_children;
- *system_wrapper = \&__system_wrapper;
- *ld_log = \&__ld_log;
- *ld_start = \&__ld_start;
- *check_require_module = \&__check_require_module;
-}
-sub __config_error {
- @config_error_args = @_;
- die "config_error\n";
-}
-sub __ld_gethostservbyname {
- push @ld_gethostservbyname_args, @_;
- if ($ld_gethostservbyname_undef != 0) {
- $ld_gethostservbyname_undef--;
- if ($ld_gethostservbyname_undef == 0) {
- return undef;
- }
- }
- return $ld_gethostservbyname_return;
-}
-sub __parse_fallback {
- push @parse_fallback_args, @_;
- return $parse_fallback_return;
-}
-sub __parse_real {
- push @parse_real_args, @_;
- return $parse_real_return;
-}
-sub __ld_openlog {
- $ld_openlog_arg = shift;
- return $ld_openlog_return;
-}
-sub __get_hostservbyname {
- @get_hostservbyname_args = @_;
- return $get_hostservbyname_return;
-}
-sub __ld_service_resolve {
- $_ld_service_resolve_called++;
-}
-sub __ld_cmd_children {
- push @ld_cmd_children_args, [@_];
-}
-sub __system_wrapper {
- $system_wrapper_called++;
- return $system_wrapper_return;
-}
-sub __ld_setup {
- die if $ld_setup_die;
-}
-sub __check_require_module {
-}
-sub __ld_start {
-}
-sub __read_config {
- $main::CONFIG{virtual} = $read_config_virtual;
- $main::CONFIG{execute} = $read_config_execute;
- die if $read_config_die;
-}
-sub __ld_log {
-}
-
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 83;
-use Config;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-
-override();
-
-#...............................................
-# test start
-# - _ld_service_resolve
-{
- my %v = ();
- my $port = 80;
- _ld_service_resolve(\%v, $port);
- is $v{service}, 'http', '_ld_service_resolve - http ok';
-}
-{
- my %v = ();
- my $port = 443;
- _ld_service_resolve(\%v, $port);
- is $v{service}, 'https', '_ld_service_resolve - https ok';
-}
-{
- my %v = ();
- my $port = 21;
- _ld_service_resolve(\%v, $port);
- is $v{service}, 'ftp', '_ld_service_resolve - ftp ok';
-}
-{
- my %v = ();
- my $port = 25;
- _ld_service_resolve(\%v, $port);
- is $v{service}, 'smtp', '_ld_service_resolve - smtp ok';
-}
-{
- my %v = ();
- my $port = 110;
- _ld_service_resolve(\%v, $port);
- is $v{service}, 'pop', '_ld_service_resolve - pop ok';
-}
-{
- my %v = ();
- my $port = 119;
- _ld_service_resolve(\%v, $port);
- is $v{service}, 'nntp', '_ld_service_resolve - nntp ok';
-}
-{
- my %v = ();
- my $port = 143;
- _ld_service_resolve(\%v, $port);
- is $v{service}, 'imap', '_ld_service_resolve - imap ok';
-}
-{
- my %v = ();
- my $port = 389;
- _ld_service_resolve(\%v, $port);
- is $v{service}, 'ldap', '_ld_service_resolve - ldap ok';
-}
-{
- my %v = ();
- my $port = 53;
- _ld_service_resolve(\%v, $port);
- is $v{service}, 'dns', '_ld_service_resolve - dns ok';
-}
-{
- my %v = ();
- my $port = 3306;
- _ld_service_resolve(\%v, $port);
- is $v{service}, 'mysql', '_ld_service_resolve - mysql ok';
-}
-{
- my %v = ();
- my $port = 5432;
- _ld_service_resolve(\%v, $port);
- is $v{service}, 'pgsql', '_ld_service_resolve - pgsql ok';
-}
-{
- my %v = ();
- my $port = 5060;
- _ld_service_resolve(\%v, $port);
- is $v{service}, 'sip', '_ld_service_resolve - sip ok';
-}
-{
- my %v = ();
- my $port = 100000;
- _ld_service_resolve(\%v, $port);
- is $v{service}, 'none', '_ld_service_resolve - none ok';
-}
-{
- my $port = 100000;
- _ld_service_resolve(undef, $port);
-}
-{
- my %v = ();
- _ld_service_resolve(\%v, undef);
- is $v{service}, undef, '_ld_service_resolve - port is undef';
-}
-{
- my %v = ( service => 'pop' );
- my $port = 80;
- _ld_service_resolve(\%v, $port);
- is $v{service}, 'pop', '_ld_service_resolve - service is already exist';
-}
-# - is_octet
-{
- my $got = is_octet(0);
- is $got, 1, 'is_octet - 0 is ok';
-}
-{
- my $got = is_octet(-1);
- is $got, 0, 'is_octet - -1 is error';
-}
-{
- my $got = is_octet(255);
- is $got, 1, 'is_octet - 255 is ok';
-}
-{
- my $got = is_octet(256);
- is $got, 0, 'is_octet - 256 is error';
-}
-{
- my $got = is_octet();
- is $got, 0, 'is_octet - undef is error';
-}
-{
- my $got = is_octet('one');
- is $got, 0, 'is_octet - one(string) is error';
-}
-# - is_ip
-{
- my $got = is_ip();
- is $got, 0, 'is_ip - undef is error';
-}
-{
- my $got = is_ip('0.0.0.0');
- is $got, 1, 'is_ip - 0.0.0.0 is ok';
-}
-{
- my $got = is_ip('-1.-1.-1.-1');
- is $got, 0, 'is_ip - -1.-1.-1.-1 is error';
-}
-{
- my $got = is_ip('255.255.255.255');
- is $got, 1, 'is_ip - 255.255.255.255 is ok';
-}
-{
- my $got = is_ip('256.256.256.256');
- is $got, 0, 'is_ip - 256.256.256.256 is error';
-}
-{
- my $got = is_ip('localhost');
- is $got, 0, 'is_ip - localhost(invalid format) is error';
-}
-###############################################################################################
-# - is_ip6 IPv6 function
-{
-### Pattern ip:none
- my @got = is_ip6();
- my ($ret, @address ) = @got;
- is $ret, 0, 'is_ip6 - undef is error';
-}
-{
-### Pattern ip:
- my @got = is_ip6('[::0]');
- my ($ret, @address ) = @got;
- is $ret, 1, 'is_ip6 - [::0] is ok';
-}
-{
-### Pattern ip:[::1]
- my @got = is_ip6('[::1]');
- my ($ret, @address ) = @got;
- is $ret, 1, 'is_ip6 - [::1] is ok';
-}
-{
-### Pattern ip:[2001::1]
- my @got = is_ip6('[2001::1]');
- my ($ret, @address ) = @got;
- is $ret, 1, 'is_ip6 - [2001::1] is ok';
-}
-{
-### Pattern ip:[fe80::1%eth1]
- my @got = is_ip6('[fe80::1%eth1]');
- my ($ret, @address ) = @got;
- is $ret, 1, 'is_ip6 - [fe80::1%eth1] is ok';
- my $alleged_ip = join ":", @address;
- is $alleged_ip, 'fe80:0:0:0:0:0:0:1%eth1', 'is_ip6 - [fe80::1%eth1] is ok';
-}
-{
-### Pattern ip:[1234:5678:90ab:cdef:1234:5678:90ab:cdef]
- my @got = is_ip6('[1234:5678:90ab:cdef:1234:5678:90ab:cdef]');
- my ($ret, @address ) = @got;
- is $ret, 1, 'is_ip6 - [1234:5678:90ab:cdef:1234:5678:90ab:cdef] is ok';
-}
-{
-### Pattern ip:[::90ab:cdef:1234:5678:90ab:cdef]
- my @got = is_ip6('[::90ab:cdef:1234:5678:90ab:cdef]');
- my ($ret, @address ) = @got;
- is $ret, 1, 'is_ip6 - [::90ab:cdef:1234:5678:90ab:cdef] is ok';
-}
-{
-### Pattern ip:[1234:5678:90ab:cdef:1234:5678::]
- my @got = is_ip6('[1234:5678:90ab:cdef:1234:5678::]');
- my ($ret, @address ) = @got;
- is $ret, 1, 'is_ip6 - [1234:5678:90ab:cdef:1234:5678::] is ok';
-}
-{
-### Pattern ip:[1234:5678:90ab:cdef:1234:5678::2]
- my @got = is_ip6('[1234:5678:90ab:cdef:1234:5678::2]');
- my ($ret, @address ) = @got;
- is $ret, 1, 'is_ip6 - [1234:5678:90ab:cdef:1234:5678::2] is ok';
-}
-{
-### Pattern ip:[1234:5678:9012:3456:7890:1234:5678:9012:3456]
- my @got = is_ip6('[1234:5678:9012:3456:7890:1234:5678:9012:3456]');
- my ($ret, @address ) = @got;
- is $ret, 0, 'is_ip6 - [1234:5678:9012:3456:7890:1234:5678:9012:3456] is error';
-}
-{
-### Pattern ip:[fffz::ffff]
- my @got = is_ip6('[fffz::ffff]');
- my ($ret, @address ) = @got;
- is $ret, 0, 'is_ip6 - [fffz::ffff] is error';
-}
-{
-### Pattern ip:localhost
- my @got = is_ip6('localhost');
- my ($ret, @address ) = @got;
- is $ret, 0, 'is_ip6 - localhost(invalid format) is error';
-}
-###############################################################################################
-# - ip_to_int
-{
- my @got = ip_to_int();
- my ($ipver, $addr ) = @got;
- is $addr, -1, 'ip_to_int - undef is error';
-}
-{
- my @got = ip_to_int('0.0.0.0');
- my ($ipver, $addr ) = @got;
- is $addr, 0, 'ip_to_int - 0.0.0.0 is ok';
-}
-{
- my @got = ip_to_int('-1.-1.-1.-1');
- my ($ipver, $addr ) = @got;
- is $addr, -1, 'ip_to_int - -1.-1.-1.-1 is error';
-}
-{
- my @got = ip_to_int('255.255.255.255');
- my ($ipver, $addr ) = @got;
- is $addr, 4294967295, 'ip_to_int - 255.255.255.255 is ok';
-}
-{
- my @got = ip_to_int('127.0.0.1');
- my ($ipver, $addr ) = @got;
- is $addr, 2130706433, 'ip_to_int - 127.0.0.1 is ok';
-}
-{
- my @got = ip_to_int('256.256.256.256');
- my ($ipver, $addr ) = @got;
- is $addr, -1, 'ip_to_int - 256.256.256.256 is error';
-}
-{
- my @got = ip_to_int('localhost');
- my ($ipver, $addr ) = @got;
- is $addr, -1, 'ip_to_int - localhost(invalid format) is error';
-}
-## IPv6 Function
-{
-print "IPv6 Start\n";
- my @got = ip_to_int('::');
- my ($ipver, $addr ) = @got;
- is $addr, 0, 'ip_to_int - [::] is ok';
-}
-{
- my @got = ip_to_int('[::1]');
- my ($ipver, $addr ) = @got;
- is $addr, 1, 'ip_to_int - [::1] is ok';
-}
-{
- my @got = ip_to_int('[2001::1]');
- my ($ipver, $addr, $addr2 ) = @got;
- is $ipver, 'ipv6', 'ip_to_int - ipv6 is ok';
- is $addr, 1, 'ip_to_int - [2001::1] -> interface is ok';
- is $addr2, 2306124484190404608, 'ip_to_int - [2001::1] prefix is ok';
-}
-{
- my @got = ip_to_int('[1:2:3:4:5:6:7:8]');
- my ($ipver, $addr, $addr2 ) = @got;
- is $ipver, 'ipv6', 'ip_to_int - ipv6 is ok';
- is $addr, 1407400653815816, 'ip_to_int - [1:2:3:4:5:6:7:8] -> interface is ok';
- is $addr2, 281483566841860, 'ip_to_int - [1:2:3:4:5:6:7:8] is ok';
-}
-{
- my @got = ip_to_int('[1234:5678:90ab:cdef:1234:5678:90ab:cdef]');
- my ($ipver, $addr, $addr2 ) = @got;
- is $ipver, 'ipv6', 'ip_to_int - ipv6 is ok';
- is $addr, 1311768467294899695, 'ip_to_int - [1234:5678:90ab:cdef:1234:5678:90ab:cdef] -> interface is ok';
- is $addr2, 1311768467294899695, 'ip_to_int - [1234:5678:90ab:cdef:1234:5678:90ab:cdef] is ok';
-}
-{
- my @got = ip_to_int('[::90ab:cdef:1234:5678:90ab:cdef]');
- my ($ipver, $addr, $addr2 ) = @got;
- is $ipver, 'ipv6', 'ip_to_int - ipv6 is ok';
- is $addr, 1311768467294899695, 'ip_to_int - [::90ab:cdef:1234:5678:90ab:cdef] -> interface is ok';
- is $addr2, 2427178479, 'ip_to_int - [::90ab:cdef:1234:5678:90ab:cdef] is ok';
-}
-{
- my @got = ip_to_int('[1234:5678:90ab:cdef:1234:5678::]');
- my ($ipver, $addr, $addr2 ) = @got;
- is $ipver, 'ipv6', 'ip_to_int - ipv6 is ok';
- is $addr, 1311768464867721216, 'ip_to_int - [1234:5678:90ab:cdef:1234:5678::] -> interface is ok';
- is $addr2, 1311768467294899695, 'ip_to_int - [1234:5678:90ab:cdef:1234:5678::] is ok';
-}
-{
- my @got = ip_to_int('[1234:5678:90ab:cdef:1234:5678::2]');
- my ($ipver, $addr, $addr2 ) = @got;
- is $ipver, 'ipv6', 'ip_to_int - ipv6 is ok';
- is $addr, 1311768464867721218, 'ip_to_int - [1234:5678:90ab:cdef:1234:5678::2] -> interface is ok';
- is $addr2, 1311768467294899695, 'ip_to_int - [1234:5678:90ab:cdef:1234:5678::2] is ok';
-}
-{
- my @got = ip_to_int('[1234:5678:9012:3456:7890:1234:5678:9012:3456]');
- my ($ipver, $addr ) = @got;
- is $addr, -1, 'ip_to_int - [1234:5678:9012:3456:7890:1234:5678:9012:3456] is error';
-}
-{
- my @got = ip_to_int('fffz::ffff');
- my ($ipver, $addr ) = @got;
- is $addr, -1, 'ip_to_int - fffz::ffff is error';
-}
-###############################################################################################
-# - int_to_ip
-# - int_to_ip
-{
- my $got = int_to_ip('ipv4', 0 );
- is $got, '0.0.0.0', 'int_to_ip - 0 is ok';
-}
-{
- my $got = int_to_ip('ipv4', -1);
- is $got, undef, 'int_to_ip - -1 is error';
-}
-{
- my $got = int_to_ip('ipv4', 2130706433);
- is $got, '127.0.0.1', 'int_to_ip - 2130706433 is ok';
-}
-{
- my $got = int_to_ip('ipv4', 4294967295);
- is $got, '255.255.255.255', 'int_to_ip - 4294967295 is ok';
-}
-SKIP: {
- my $got = int_to_ip('ipv4', 4294967296);
- if ( $Config{'use64bitint'} ) {
- is $got, '0.0.0.0', 'int_to_ip - 4294967296 is ok (overflow)';
- }
- else {
- is $got, '255.255.255.255', 'int_to_ip - 4294967296 is ok (overflow)';
- }
-}
-{
- my $got = int_to_ip();
- is $got, undef, 'int_to_ip - undef is error';
-}
-{
- my $got = int_to_ip('ipv4','one');
- is $got, undef, 'int_to_ip - one(string) is error';
-}
-###
-### IPv6 Tests
-###
-{
- my $got = int_to_ip('ipv6', 0, 0);
- is $got, '0:0:0:0:0:0:0:0', 'int_to_ip - 0:0:0:0:0:0:0:0 is ok';
-}
-{
- my $got = int_to_ip('ipv6', 1, 0);
- is $got, '0:0:0:0:0:0:0:1', 'int_to_ip - 0:0:0:0:0:0:0:1 is ok';
-}
-{
- my $got = int_to_ip('ipv6', 1407400653815816,281483566841860);
- is $got, '1:2:3:4:5:6:7:8', 'int_to_ip - [1:2:3:4:5:6:7:8] is ok';
-}
-{
- my $got = int_to_ip('ipv6', 1311768467294899695,1311768467294899695);
- is $got, '1234:5678:90ab:cdef:1234:5678:90ab:cdef', 'int_to_ip - [1234:5678:90ab:cdef:1234:5678:90ab:cdef] is ok';
-}
-## ::90ab:cdef:1234:5678:90ab:cdef
-{
- my $got = int_to_ip('ipv6', 1311768467294899695, 2427178479);
- is $got, '0:0:90ab:cdef:1234:5678:90ab:cdef', 'int_to_ip - [0:0:90ab:cdef:1234:5678:90ab:cdef] is ok';
-}
-## 1234:5678:90ab:cdef:1234:5678::
-{
- my $got = int_to_ip('ipv6', 1311768464867721216,1311768467294899695);
- is $got, '1234:5678:90ab:cdef:1234:5678:0:0', 'int_to_ip - [1234:5678:90ab:cdef:1234:5678:0:0] is ok';
-}
-## 1234:5678:90ab:cdef:1234:5678::2
-{
- my $got = int_to_ip('ipv6', 1311768464867721218, 1311768467294899695);
- is $got, '1234:5678:90ab:cdef:1234:5678:0:2', 'int_to_ip - [1234:5678:90ab:cdef:1234:5678:0:2] is ok';
-}
-
-
-
-#####################################################################
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub override {
- *ld_log = \&__ld_log;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 59;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our @config_error_args = ();
-our @ld_gethostservbyname_args = ();
-our $ld_gethostservbyname_return = undef;
-our @ld_gethostbyname_args = ();
-our @ld_gethostbyname_returns = ();
-our $ld_getservbyname_arg = undef;
-our $ld_getservbyname_return = undef;
-our @ip_to_int_args = ();
-our @ip_to_int_returns = ();
-our @int_to_ip_args = ();
-our @int_to_ip_returns = ();
-#...............................................
-# test start
-# - parse_fallback
-{
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = 'foo:bar';
- my %expected = %main::REAL;
- $expected{server} = $ld_gethostservbyname_return;
- $expected{forward} = 'masq';
- my $line = 1;
- my $fallback = 'fallback masq';
- my $config_line = 'configline';
- my $ret = parse_fallback($line, $fallback, $config_line);
- is_deeply $ret, \%expected, 'parse_fallback - ok';
- is_deeply \@ld_gethostservbyname_args, [ 'fallback', 'tcp' ], 'parse_fallback - ld_gethostservbyname arg(1)';
-}
-{
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = 'foo:bar';
- my %expected = %main::REAL;
- $expected{server} = $ld_gethostservbyname_return;
- my $line = 1;
- my $fallback = 'fallback';
- my $config_line = 'configline';
- my $ret = parse_fallback($line, $fallback, $config_line);
- is_deeply $ret, \%expected, 'parse_fallback - no forward mode ok';
- is_deeply \@ld_gethostservbyname_args, [ 'fallback', 'tcp' ], 'parse_fallback - ld_gethostservbyname arg(2)';
-}
-{
- local @config_error_args = ();
- my $line = 1;
- my $fallback = ' fallback ';
- my $config_line = 'configline';
- eval {
- my $ret = parse_fallback($line, $fallback, $config_line);
- };
- is $@, "config_error\n", 'parse_fallback - format error';
- is_deeply \@config_error_args, [1, 'ERR0114', 'configline'], 'parse_fallback - config_error args(1)';
-}
-{
- local @config_error_args = ();
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = undef;
- my $line = 1;
- my $fallback = 'fallback masq';
- my $config_line = 'configline';
- eval {
- my $ret = parse_fallback($line, $fallback, $config_line);
- };
- is $@, "config_error\n", 'parse_fallback - ld_gethostservbyname error';
- is_deeply \@config_error_args, [1, 'ERR0114', 'configline'], 'parse_fallback - config_error args(2)';
- is_deeply \@ld_gethostservbyname_args, [ 'fallback', 'tcp' ], 'parse_fallback - ld_gethostservbyname arg(3)';
-}
-{
- local @config_error_args = ();
- local @ld_gethostservbyname_args = ();
- local $ld_gethostservbyname_return = 'foo:bar';
- my $line = 1;
- my $fallback = 'fallback direct';
- my $config_line = 'configline';
- eval {
- my $ret = parse_fallback($line, $fallback, $config_line);
- };
- is $@, "config_error\n", 'parse_fallback - forward mode error';
- is_deeply \@config_error_args, [1, 'ERR0107', 'configline'], 'parse_fallback - config_error args(3)';
- is_deeply \@ld_gethostservbyname_args, [ 'fallback', 'tcp' ], 'parse_fallback - ld_gethostservbyname arg(4)';
-}
-# - parse_real
-{
- local @ld_gethostbyname_args = ();
- local @ld_gethostbyname_returns = ('1.1.1.1', '1.1.1.2');
- local $ld_getservbyname_arg = undef;
- local $ld_getservbyname_return = 80;
- local @ip_to_int_args = ();
- local @ip_to_int_returns = (1,2);
- local @int_to_ip_args = ();
- local @int_to_ip_returns = ('1.1.1.1', '1.1.1.2');
- my %real = %main::REAL;
- $real{forward} = 'masq';
- $real{weight} = 100;
- $real{request} = 'request';
- $real{receive} = 'receive';
- my @expected;
- my $c = 0;
- for ($ip_to_int_returns[0] .. $ip_to_int_returns[1]) {
- my %r = %real;
- push @expected, \%r;
- $expected[$c]->{server}{ip} = $int_to_ip_returns[$c];
- $expected[$c]->{server}{port} = $ld_getservbyname_return;
- $c++;
- }
- my @gethost_r = @ld_gethostbyname_returns;
- my @ip_to_r = @ip_to_int_returns;
- my $line = 1;
- my $real = q{foo.bar.com->hoge.huga.com:serv Masq 100 "request" , 'receive'};
- my $config_line = 'configline';
- my $ret = parse_real($line, $real, $config_line);
- is_deeply $ret, \@expected, 'parse_real - full parse ok';
- is $ld_getservbyname_arg, 'serv', 'parse_real - ld_getservbyname arg(1)';
- is_deeply \@ld_gethostbyname_args, ['foo.bar.com', 'hoge.huga.com'], 'parse_real - ld_gethostbyname arg(1)';
-## is_deeply \@ip_to_int_args, \@gethost_r, 'parse_real - ip_to_int arg(1)';
-## is_deeply \@int_to_ip_args, [ $ip_to_r[0] .. $ip_to_r[1] ], 'parse_real - int_to_ip arg(1)';
-}
-{
- local @ld_gethostbyname_args = ();
- local @ld_gethostbyname_returns = ('1.1.1.1', '1.1.1.1');
- local $ld_getservbyname_arg = undef;
- local $ld_getservbyname_return = 80;
- local @ip_to_int_args = ();
- local @ip_to_int_returns = (1, 1);
- local @int_to_ip_args = ();
- local @int_to_ip_returns = ('1.1.1.1');
- my %real = %main::REAL;
- $real{forward} = 'masq';
- $real{weight} = 100;
- $real{request} = 'request';
- $real{receive} = 'receive';
- my @expected;
- my $c = 0;
- for ($ip_to_int_returns[0] .. $ip_to_int_returns[1]) {
- my %r = %real;
- push @expected, \%r;
- $expected[$c]->{server}{ip} = $int_to_ip_returns[$c];
- $expected[$c]->{server}{port} = $ld_getservbyname_return;
- $c++;
- }
- my @gethost_r = @ld_gethostbyname_returns;
- my @ip_to_r = @ip_to_int_returns;
- my $line = 1;
- my $real = q{foo.bar.com->hoge.huga.com:serv Masq 100 "request" , 'receive'};
- my $config_line = 'configline';
- my $ret = parse_real($line, $real, $config_line);
- is_deeply $ret, \@expected, 'parse_real - same range ok';
- is $ld_getservbyname_arg, 'serv', 'parse_real - ld_getservbyname arg(2)';
- is_deeply \@ld_gethostbyname_args, ['foo.bar.com', 'hoge.huga.com'], 'parse_real - ld_gethostbyname arg(2)';
-## is_deeply \@ip_to_int_args, \@gethost_r, 'parse_real - ip_to_int arg(2)';
-## is_deeply \@int_to_ip_args, [ $ip_to_r[0] .. $ip_to_r[1] ], 'parse_real - int_to_ip arg(2)';
-}
-{
- local @ld_gethostbyname_args = ();
- local @ld_gethostbyname_returns = ('1.1.1.1', '1.1.1.1');
- local $ld_getservbyname_arg = undef;
- local $ld_getservbyname_return = 80;
- local @ip_to_int_args = ();
- local @ip_to_int_returns = (1, 1);
- local @int_to_ip_args = ();
- local @int_to_ip_returns = ('1.1.1.1');
- my %real = %main::REAL;
- $real{forward} = 'masq';
- $real{weight} = 100;
- $real{request} = 'request';
- $real{receive} = 'receive';
- my @expected;
- my $c = 0;
- for ($ip_to_int_returns[0] .. $ip_to_int_returns[1]) {
- my %r = %real;
- push @expected, \%r;
- $expected[$c]->{server}{ip} = $int_to_ip_returns[$c];
- $expected[$c]->{server}{port} = $ld_getservbyname_return;
- $c++;
- }
- my @gethost_r = @ld_gethostbyname_returns;
- my @ip_to_r = @ip_to_int_returns;
- my $line = 1;
- my $real = q{foo.bar.com:serv Masq 100 "request" , 'receive'};
- my $config_line = 'configline';
- my $ret = parse_real($line, $real, $config_line);
- is_deeply $ret, \@expected, 'parse_real - no range ok';
- is $ld_getservbyname_arg, 'serv', 'parse_real - ld_getservbyname arg(3)';
- is_deeply \@ld_gethostbyname_args, ['foo.bar.com'], 'parse_real - ld_gethostbyname arg(3)';
-## is_deeply \@ip_to_int_args, \@gethost_r, 'parse_real - ip_to_int arg(3)';
-## is_deeply \@int_to_ip_args, [ $ip_to_r[0] .. $ip_to_r[1] ], 'parse_real - int_to_ip arg(3)';
-}
-{
- local @ld_gethostbyname_args = ();
- local @ld_gethostbyname_returns = ('1.1.1.1', '1.1.1.1');
- local @ip_to_int_args = ();
- local @ip_to_int_returns = (1, 1);
- local @int_to_ip_args = ();
- local @int_to_ip_returns = ('1.1.1.1');
- my %real = %main::REAL;
- $real{forward} = 'masq';
- $real{weight} = 100;
- $real{request} = 'request';
- $real{receive} = 'receive';
- my @expected;
- my $c = 0;
- for ($ip_to_int_returns[0] .. $ip_to_int_returns[1]) {
- my %r = %real;
- push @expected, \%r;
- $expected[$c]->{server}{ip} = $int_to_ip_returns[$c];
- $expected[$c]->{server}{port} = undef;
- $c++;
- }
- my @gethost_r = @ld_gethostbyname_returns;
- my @ip_to_r = @ip_to_int_returns;
- my $line = 1;
- my $real = q{foo.bar.com Masq 100 "request" , 'receive'};
- my $config_line = 'configline';
- my $ret = parse_real($line, $real, $config_line);
- is_deeply $ret, \@expected, 'parse_real - no port ok';
- is_deeply \@ld_gethostbyname_args, ['foo.bar.com'], 'parse_real - ld_gethostbyname arg(4)';
-## is_deeply \@ip_to_int_args, \@gethost_r, 'parse_real - ip_to_int arg(4)';
-## is_deeply \@int_to_ip_args, [ $ip_to_r[0] .. $ip_to_r[1] ], 'parse_real - int_to_ip arg(4)';
-}
-{
- local @ld_gethostbyname_args = ();
- local @ld_gethostbyname_returns = ('1.1.1.1', '1.1.1.1');
- local @ip_to_int_args = ();
- local @ip_to_int_returns = (1, 1);
- local @int_to_ip_args = ();
- local @int_to_ip_returns = ('1.1.1.1');
- my %real = %main::REAL;
- $real{weight} = 100;
- $real{request} = 'request';
- $real{receive} = 'receive';
- my @expected;
- my $c = 0;
- for ($ip_to_int_returns[0] .. $ip_to_int_returns[1]) {
- my %r = %real;
- push @expected, \%r;
- $expected[$c]->{server}{ip} = $int_to_ip_returns[$c];
- $expected[$c]->{server}{port} = undef;
- $c++;
- }
- my @gethost_r = @ld_gethostbyname_returns;
- my @ip_to_r = @ip_to_int_returns;
- my $line = 1;
- my $real = q{foo.bar.com 100 "request" , 'receive'};
- my $config_line = 'configline';
- my $ret = parse_real($line, $real, $config_line);
- is_deeply $ret, \@expected, 'parse_real - no forward mode ok';
- is_deeply \@ld_gethostbyname_args, ['foo.bar.com'], 'parse_real - ld_gethostbyname arg(5)';
-## is_deeply \@ip_to_int_args, \@gethost_r, 'parse_real - ip_to_int arg(5)';
-## is_deeply \@int_to_ip_args, [ $ip_to_r[0] .. $ip_to_r[1] ], 'parse_real - int_to_ip arg(5)';
-}
-{
- local @ld_gethostbyname_args = ();
- local @ld_gethostbyname_returns = ('1.1.1.1', '1.1.1.1');
- local @ip_to_int_args = ();
- local @ip_to_int_returns = (1, 1);
- local @int_to_ip_args = ();
- local @int_to_ip_returns = ('1.1.1.1');
- my %real = %main::REAL;
- $real{request} = 'request';
- $real{receive} = 'receive';
- my @expected;
- my $c = 0;
- for ($ip_to_int_returns[0] .. $ip_to_int_returns[1]) {
- my %r = %real;
- push @expected, \%r;
- $expected[$c]->{server}{ip} = $int_to_ip_returns[$c];
- $expected[$c]->{server}{port} = undef;
- $c++;
- }
- my @gethost_r = @ld_gethostbyname_returns;
- my @ip_to_r = @ip_to_int_returns;
- my $line = 1;
- my $real = q{foo.bar.com "request" , 'receive'};
- my $config_line = 'configline';
- my $ret = parse_real($line, $real, $config_line);
- is_deeply $ret, \@expected, 'parse_real - no weight ok';
- is_deeply \@ld_gethostbyname_args, ['foo.bar.com'], 'parse_real - ld_gethostbyname arg(6)';
-## is_deeply \@ip_to_int_args, \@gethost_r, 'parse_real - ip_to_int arg(6)';
-## is_deeply \@int_to_ip_args, [ $ip_to_r[0] .. $ip_to_r[1] ], 'parse_real - int_to_ip arg(6)';
-}
-{
- local @ld_gethostbyname_args = ();
- local @ld_gethostbyname_returns = ('1.1.1.1', '1.1.1.1');
- local @ip_to_int_args = ();
- local @ip_to_int_returns = (1, 1);
- local @int_to_ip_args = ();
- local @int_to_ip_returns = ('1.1.1.1');
- my %real = %main::REAL;
- my @expected;
- my $c = 0;
- for ($ip_to_int_returns[0] .. $ip_to_int_returns[1]) {
- my %r = %real;
- push @expected, \%r;
- $expected[$c]->{server}{ip} = $int_to_ip_returns[$c];
- $expected[$c]->{server}{port} = undef;
- $c++;
- }
- my @gethost_r = @ld_gethostbyname_returns;
- my @ip_to_r = @ip_to_int_returns;
- my $line = 1;
- my $real = q{foo.bar.com};
- my $config_line = 'configline';
- my $ret = parse_real($line, $real, $config_line);
- is_deeply $ret, \@expected, 'parse_real - no request, receive ok';
- is_deeply \@ld_gethostbyname_args, ['foo.bar.com'], 'parse_real - ld_gethostbyname arg(7)';
-## is_deeply \@ip_to_int_args, \@gethost_r, 'parse_real - ip_to_int arg(7)';
-## is_deeply \@int_to_ip_args, [ $ip_to_r[0] .. $ip_to_r[1] ], 'parse_real - int_to_ip arg(7)';
-}
-{
- local @config_error_args = ();
- my $line = 1;
- my $real = q{foo.bar.com:bad:format};
- my $config_line = 'configline';
- eval {
- my $ret = parse_real($line, $real, $config_line);
- };
- is $@, "config_error\n", 'parse_real - format error';
- is_deeply \@config_error_args, [1, 'ERR0114', 'configline'], 'parse_real - config_error args(1)';
-}
-{
- local @config_error_args = ();
- my $line = 1;
- my $real = q{foo.bar.com:bad direct};
- my $config_line = 'configline';
- eval {
- my $ret = parse_real($line, $real, $config_line);
- };
- is $@, "config_error\n", 'parse_real - forward mode error';
- is_deeply \@config_error_args, [1, 'ERR0107', 'configline'], 'parse_real - config_error args(2)';
-}
-{
- local @config_error_args = ();
- local $ld_getservbyname_arg = undef;
- local $ld_getservbyname_return = undef;
- my $line = 1;
- my $real = q{foo.bar.com:bad masq};
- my $config_line = 'configline';
- eval {
- my $ret = parse_real($line, $real, $config_line);
- };
- is $@, "config_error\n", 'parse_real - ld_getservbyname error';
- is_deeply \@config_error_args, [1, 'ERR0108', 'configline'], 'parse_real - config_error args(3)';
- is $ld_getservbyname_arg, 'bad', 'parse_real - ld_getservbyname args(4)';
-}
-{
- local @config_error_args = ();
- local $ld_getservbyname_arg = undef;
- local $ld_getservbyname_return = 80;
- local @ld_gethostbyname_args = ();
- local @ld_gethostbyname_returns = ();
- my $line = 1;
- my $real = q{foo.bar.com:bad masq};
- my $config_line = 'configline';
- eval {
- my $ret = parse_real($line, $real, $config_line);
- };
- is $@, "config_error\n", 'parse_real - first ld_gethostbyname error';
- is_deeply \@config_error_args, [1, 'ERR0114', 'configline'], 'parse_real - config_error args(4)';
- is $ld_getservbyname_arg, 'bad', 'parse_real - ld_getservbyname args(5)';
- is_deeply \@ld_gethostbyname_args, ['foo.bar.com'], 'parse_real - ld_gethostbyname args(5)';
-}
-{
- local @config_error_args = ();
- local $ld_getservbyname_arg = undef;
- local $ld_getservbyname_return = 80;
- local @ld_gethostbyname_args = ();
- local @ld_gethostbyname_returns = ('1.1.1.1');
- my $line = 1;
- my $real = q{foo.bar.com->hoge.huga.com:bad masq};
- my $config_line = 'configline';
- eval {
- my $ret = parse_real($line, $real, $config_line);
- };
- is $@, "config_error\n", 'parse_real - second ld_gethostbyname error';
- is_deeply \@config_error_args, [1, 'ERR0114', 'configline'], 'parse_real - config_error args(5)';
- is $ld_getservbyname_arg, 'bad', 'parse_real - ld_getservbyname args(6)';
- is_deeply \@ld_gethostbyname_args, ['foo.bar.com', 'hoge.huga.com'], 'parse_real - ld_gethostbyname args(6)';
-}
-{
- local @config_error_args = ();
- local $ld_getservbyname_arg = undef;
- local $ld_getservbyname_return = 80;
- local @ld_gethostbyname_args = ();
- local @ld_gethostbyname_returns = ( '2.2.2.2','1.1.1.1');
- local @ip_to_int_args = ();
- local @ip_to_int_returns = (2, 1);
- my $line = 1;
- my $real = q{foo.bar.com->hoge.huga.com:bad masq};
- my $config_line = 'configline';
- my @gethost_r = @ld_gethostbyname_returns;
- eval {
- my $ret = parse_real($line, $real, $config_line);
- };
- is $@, "config_error\n", 'parse_real - second ld_gethostbyname error';
- is_deeply \@config_error_args, [1, 'ERR0115', '2.2.2.2', '1.1.1.1', 'configline'], 'parse_real - config_error args(5)';
- is $ld_getservbyname_arg, 'bad', 'parse_real - ld_getservbyname args(6)';
- is_deeply \@ld_gethostbyname_args, ['foo.bar.com', 'hoge.huga.com'], 'parse_real - ld_gethostbyname args(6)';
-## is_deeply \@ip_to_int_args, \@gethost_r, 'parse_real - ip_to_int arg(8)';
-}
-###################################################################
-## - parse_real (IPv6)
-{
- local @ld_gethostbyname_args = ();
- local @ld_gethostbyname_returns = ('[2001::1]', '[2001::2]');
- local $ld_getservbyname_arg = undef;
- local $ld_getservbyname_return = 80;
- local @ip_to_int_args = ('[2001::1]', '[2001::2]');
- local @ip_to_int_returns = (2306124484190404608,2306124484190404609);
- local @int_to_ip_args = (2306124484190404608,2306124484190404609);
- local @int_to_ip_returns = ('[2001::1]', '[2001::2]');
- my %real = %main::REAL;
- $real{forward} = 'masq';
- $real{weight} = 100;
- $real{request} = 'request';
- $real{receive} = 'receive';
- my @expected;
- my $c = 0;
- for ($ip_to_int_returns[0] .. $ip_to_int_returns[1]) {
- my %r = %real;
- push @expected, \%r;
- $expected[$c]->{server}{ip} = $int_to_ip_returns[$c];
- $expected[$c]->{server}{port} = $ld_getservbyname_return;
- $c++;
- }
- my @gethost_r = @ld_gethostbyname_returns;
- my @ip_to_r = @ip_to_int_returns;
- my $line = 1;
- my $real = q{foo.bar.com->hoge.huga.com:serv Masq 100 "request" , 'receive'};
- my $config_line = 'configline';
- my $ret = parse_real($line, $real, $config_line);
- is_deeply $ret, \@expected, 'parse_real - full parse ok';
- is $ld_getservbyname_arg, 'serv', 'parse_real - ld_getservbyname arg(1)';
- is_deeply \@ld_gethostbyname_args, ['foo.bar.com', 'hoge.huga.com'], 'parse_real - ld_gethostbyname arg(1)';
- is_deeply \@ip_to_int_args, \@gethost_r, 'parse_real - ip_to_int arg(1)';
- is_deeply [$int_to_ip_args[0] .. $int_to_ip_args[1] ], [ $ip_to_r[0] .. $ip_to_r[1] ], 'parse_real - int_to_ip arg(1)';
-}
-## - parse_real (IPv6)
-{
- local @ld_gethostbyname_args = ();
- local @ld_gethostbyname_returns = ('[2001::1]', '[2001::1]');
- local $ld_getservbyname_arg = undef;
- local $ld_getservbyname_return = 80;
- local @ip_to_int_args = ();
- local @ip_to_int_returns = (1,1);
- local @int_to_ip_args = ();
- local @int_to_ip_returns = ('[2001::1]', '[2001::1]');
- my %real = %main::REAL;
- $real{forward} = 'masq';
- $real{weight} = 100;
- $real{request} = 'request';
- $real{receive} = 'receive';
- my @expected;
- my $c = 0;
- for ($ip_to_int_returns[0] .. $ip_to_int_returns[1]) {
- my %r = %real;
- push @expected, \%r;
- $expected[$c]->{server}{ip} = $int_to_ip_returns[$c];
- $expected[$c]->{server}{port} = $ld_getservbyname_return;
- $c++;
- }
- my @gethost_r = @ld_gethostbyname_returns;
- my @ip_to_r = @ip_to_int_returns;
- my $line = 1;
- my $real = q{foo.bar.com->hoge.huga.com:serv Masq 100 "request" , 'receive'};
- my $config_line = 'configline';
- my $ret = parse_real($line, $real, $config_line);
- is_deeply $ret, \@expected, 'parse_real - full parse ok';
- is $ld_getservbyname_arg, 'serv', 'parse_real - ld_getservbyname arg(1)';
- is_deeply \@ld_gethostbyname_args, ['foo.bar.com', 'hoge.huga.com'], 'parse_real - ld_gethostbyname arg(1)';
-## is_deeply \@ip_to_int_args, \@gethost_r, 'parse_real - ip_to_int arg(1)';
-## is_deeply \@int_to_ip_args, [ $ip_to_r[0] .. $ip_to_r[1] ], 'parse_real - int_to_ip arg(1)';
-}
-{
- local @ld_gethostbyname_args = ();
- local @ld_gethostbyname_returns = ('[2001::1]', '[2001::2]');
- local $ld_getservbyname_arg = undef;
- local $ld_getservbyname_return = 80;
- local @ip_to_int_args = ();
- local @ip_to_int_returns = (1,2);
- local @int_to_ip_args = ();
- local @int_to_ip_returns = ('[2001::1]', '[2001::2]');
- my %real = %main::REAL;
- $real{forward} = 'masq';
- $real{weight} = 100;
- $real{request} = 'request';
- $real{receive} = 'receive';
- my @expected;
- my $c = 0;
- for ($ip_to_int_returns[0] .. $ip_to_int_returns[1]) {
- my %r = %real;
- push @expected, \%r;
- $expected[$c]->{server}{ip} = $int_to_ip_returns[$c];
- $expected[$c]->{server}{port} = $ld_getservbyname_return;
- $c++;
- }
- my @gethost_r = @ld_gethostbyname_returns;
- my @ip_to_r = @ip_to_int_returns;
- my $line = 1;
- my $real = q{[ffff:1:2:3:4:5:6:7:8]->[ffff:1:2:3:4:5:6:7:9]:serv Masq 100 "request" , 'receive'};
- my $config_line = 'configline';
- my $ret = parse_real($line, $real, $config_line);
- is_deeply $ret, \@expected, 'parse_real - full parse ok';
- is $ld_getservbyname_arg, 'serv', 'parse_real - ld_getservbyname arg(1)';
- is_deeply \@ld_gethostbyname_args, ['[ffff:1:2:3:4:5:6:7:8]', '[ffff:1:2:3:4:5:6:7:9]'], 'parse_real - ld_gethostbyname arg(1)';
-## is_deeply \@ip_to_int_args, \@gethost_r, 'parse_real - ip_to_int arg(1)';
-## is_deeply \@int_to_ip_args, [ $ip_to_r[0] .. $ip_to_r[1] ], 'parse_real - int_to_ip arg(1)';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub override {
- *config_error = \&__config_error;
- *ld_gethostservbyname = \&__ld_gethostservbyname;
- *ld_gethostbyname = \&__ld_gethostbyname;
- *ld_getservbyname = \&__ld_getservbyname;
-## *ip_to_int = \&__ip_to_int;
- *int_to_ip = \&__int_to_ip;
- *ld_log = \&__ld_log;
-}
-sub __config_error {
- @config_error_args = @_;
- die "config_error\n";
-}
-sub __ld_gethostservbyname {
- push @ld_gethostservbyname_args, @_;
- return $ld_gethostservbyname_return;
-}
-sub __ld_gethostbyname {
- push @ld_gethostbyname_args, @_;
- return shift @ld_gethostbyname_returns;
-}
-sub __ld_getservbyname {
- $ld_getservbyname_arg = shift;
- return $ld_getservbyname_return;
-}
-sub __ip_to_int {
- push @ip_to_int_args, @_;
- return shift @ip_to_int_returns;
-}
-sub __int_to_ip {
- push @int_to_ip_args, @_;
- return shift @int_to_ip_returns;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 45;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our @get_ip_port_args = ();
-our @get_ip_port_returns = ();
-our @get_forward_flag_args = ();
-our @get_forward_flag_returns = ();
-#...............................................
-# test start
-# - ld_setup
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - empty virtual ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $expected{virtual} = [ undef, undef, undef ];
- $main::CONFIG{virtual} = [ undef, undef, undef ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - virtual undef list ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- protocol => 'tcp',
- } ];
- $expected{virtual} = [ undef, undef, {
- option => { protocol => '-t' },
- protocol => 'tcp',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - protocol tcp ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- option => { protocol => '-t' },
- module => { name => 'cinsert' },
- other_virtual_key => undef,
- } ];
- $expected{virtual} = [ undef, undef, {
- option => {
- protocol => '-t',
- main => '-t ip:port -m cinsert',
- flags => '-t ip:port -m cinsert',
- },
- module => { name => 'cinsert' },
- other_virtual_key => ' none none none none ',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - module minimum setup ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- option => { protocol => '-t' },
- module => {
- name => 'cinsert',
- option => '--cookie-name cookie',
- },
- } ];
- $expected{virtual} = [ undef, undef, {
- option => {
- protocol => '-t',
- main => '-t ip:port -m cinsert --cookie-name cookie',
- flags => '-t ip:port -m cinsert --cookie-name cookie',
- },
- module => {
- name => 'cinsert',
- option => '--cookie-name cookie',
- },
- other_virtual_key => ' none none none none ',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - module option setup ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- option => { protocol => '-t' },
- module => {
- name => 'cinsert',
- option => '--cookie-name cookie',
- },
- scheduler => 'rr',
- } ];
- $expected{virtual} = [ undef, undef, {
- option => {
- protocol => '-t',
- main => '-t ip:port -m cinsert --cookie-name cookie',
- flags => '-t ip:port -m cinsert --cookie-name cookie -s rr',
- },
- module => {
- name => 'cinsert',
- option => '--cookie-name cookie',
- },
- scheduler => 'rr',
- other_virtual_key => ' none none none none ',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - scheduler setup ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- option => { protocol => '-t' },
- module => {
- name => 'cinsert',
- option => '--cookie-name cookie',
- },
- scheduler => 'rr',
- maxconn => 1000,
- } ];
- $expected{virtual} = [ undef, undef, {
- option => {
- protocol => '-t',
- main => '-t ip:port -m cinsert --cookie-name cookie',
- flags => '-t ip:port -m cinsert --cookie-name cookie -s rr -u 1000',
- },
- module => {
- name => 'cinsert',
- option => '--cookie-name cookie',
- },
- scheduler => 'rr',
- maxconn => 1000,
- other_virtual_key => ' none none none none ',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - maxconn setup ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- option => { protocol => '-t' },
- module => {
- name => 'cinsert',
- option => '--cookie-name cookie',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- } ];
- $expected{virtual} = [ undef, undef, {
- option => {
- protocol => '-t',
- main => '-t ip:port -m cinsert --cookie-name cookie',
- flags => '-t ip:port -m cinsert --cookie-name cookie -s rr -u 1000 -b sorryip:sorryport',
- },
- module => {
- name => 'cinsert',
- option => '--cookie-name cookie',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- other_virtual_key => ' none none none none ',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - sorryserver setup ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- option => { protocol => '-t' },
- module => {
- name => 'cinsert',
- option => '--cookie-name cookie',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- } ];
- $expected{virtual} = [ undef, undef, {
- option => {
- protocol => '-t',
- main => '-t ip:port -m cinsert --cookie-name cookie',
- flags => '-t ip:port -m cinsert --cookie-name cookie -s rr -u 1000 -b sorryip:sorryport -Q 100M',
- },
- module => {
- name => 'cinsert',
- option => '--cookie-name cookie',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- other_virtual_key => ' none none none none ',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - qosup setup ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- option => { protocol => '-t' },
- module => {
- name => 'cinsert',
- option => '--cookie-name cookie',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- } ];
- $expected{virtual} = [ undef, undef, {
- option => {
- protocol => '-t',
- main => '-t ip:port -m cinsert --cookie-name cookie',
- flags => '-t ip:port -m cinsert --cookie-name cookie -s rr -u 1000 -b sorryip:sorryport -Q 100M -q 100K',
- },
- module => {
- name => 'cinsert',
- option => '--cookie-name cookie',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- other_virtual_key => ' none none none none ',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - qosdown setup ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- option => { protocol => '-t' },
- module => {
- name => 'sessionless',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- } ];
- $expected{virtual} = [ undef, undef, {
- option => {
- protocol => '-t',
- main => '-t ip:port -m sessionless',
- flags => '-t ip:port -m sessionless -s rr -u 1000 -b sorryip:sorryport -Q 100M -q 100K',
- },
- module => {
- name => 'sessionless',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- other_virtual_key => ' none none none none ',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - sessionless setup ok';
-}
-########################################################################################################
-### sslconfigfile Check
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- option => { protocol => '-t' },
- module => {
- name => 'ip',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- sslconfigfile => '/etc/ha.d/conf/ssl_config.cf',
- other_virtual_key => undef,
- } ];
- $expected{virtual} = [ undef, undef, {
- option => {
- protocol => '-t',
- main => '-t ip:port -m ip',
- flags => '-t ip:port -m ip -s rr -u 1000 -b sorryip:sorryport -Q 100M -q 100K -z /etc/ha.d/conf/ssl_config.cf',
- },
- module => {
- name => 'ip',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- sslconfigfile => '/etc/ha.d/conf/ssl_config.cf',
- other_virtual_key => ' /etc/ha.d/conf/ssl_config.cf none none none ',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - ipmodule sslconfigfile ok';
-}
-########################################################################################################
-### socketoption Check(deferaccept,nodelay,cork,quickackon)
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- option => { protocol => '-t' },
- module => {
- name => 'ip',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- socketoption => 'deferaccept,nodelay,cork,quickackon',
- } ];
- $expected{virtual} = [ undef, undef, {
- option => {
- protocol => '-t',
- main => '-t ip:port -m ip',
- flags => '-t ip:port -m ip -s rr -u 1000 -b sorryip:sorryport -Q 100M -q 100K -O deferaccept,nodelay,cork,quickackon',
- },
- module => {
- name => 'ip',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- socketoption => 'deferaccept,nodelay,cork,quickackon',
- other_virtual_key => ' none deferaccept,nodelay,cork,quickackon none none ',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - socketoption setup ok';
-}
-########################################################################################################
-### socketoption Check(deferaccept,nodelay,cork,quickackoff)
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- option => { protocol => '-t' },
- module => {
- name => 'ip',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- socketoption => 'deferaccept,nodelay,cork,quickackoff',
- other_virtual_key => undef,
- } ];
- $expected{virtual} = [ undef, undef, {
- option => {
- protocol => '-t',
- main => '-t ip:port -m ip',
- flags => '-t ip:port -m ip -s rr -u 1000 -b sorryip:sorryport -Q 100M -q 100K -O deferaccept,nodelay,cork,quickackoff',
- },
- module => {
- name => 'ip',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- socketoption => 'deferaccept,nodelay,cork,quickackoff',
- other_virtual_key => ' none deferaccept,nodelay,cork,quickackoff none none ',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - socketoption setup ok';
-}
-########################################################################################################
-### accesslog Check( = 0 )
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- option => { protocol => '-t' },
- module => {
- name => 'ip',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- socketoption => 'deferaccept,nodelay,cork,quickackoff',
- other_virtual_key => undef,
- accesslog => 0,
- accesslogfile => '/tmp/work.log',
- accesslog_rotate_type => 'datesize',
- accesslog_rotate_max_backup_index => '12',
- accesslog_rotate_max_filesize => '29G',
- accesslog_rotate_rotation_timing => 'week',
- accesslog_rotate_rotation_timing_value => 'sun 23:59',
- } ];
- $expected{virtual} = [ undef, undef, {
- option => {
- protocol => '-t',
- main => '-t ip:port -m ip',
- flags => '-t ip:port -m ip -s rr -u 1000 -b sorryip:sorryport -Q 100M -q 100K -O deferaccept,nodelay,cork,quickackoff -L 0 -a /tmp/work.log --ac-rotate-type datesize --ac-rotate-max-backup-index 12 --ac-rotate-max-filesize 29G --ac-rotate-rotation-timing week --ac-rotate-rotation-timing-value sun 23:59',
- },
- module => {
- name => 'ip',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- socketoption => 'deferaccept,nodelay,cork,quickackoff',
- other_virtual_key => ' none deferaccept,nodelay,cork,quickackoff /tmp/work.log --ac-rotate-type datesize --ac-rotate-max-backup-index 12 --ac-rotate-max-filesize 29G --ac-rotate-rotation-timing week --ac-rotate-rotation-timing-value sun 23:59',
- accesslog => 0,
- accesslogfile => '/tmp/work.log',
- accesslog_rotate_type => 'datesize',
- accesslog_rotate_max_backup_index => '12',
- accesslog_rotate_max_filesize => '29G',
- accesslog_rotate_rotation_timing => 'week',
- accesslog_rotate_rotation_timing_value => 'sun 23:59',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - accesslog setup ok';
-}
-########################################################################################################
-### accesslog Check( = 1 )
-### accesslog => '1',
-### accesslog_rotate_type => 'datesize',
-### accesslog_rotate_max_backup_index => '12',
-### accesslog_rotate_max_filesize => '29G',
-### accesslog_rotate_rotation_timing => 'week',
-### accesslog_rotate_rotation_timing_value => 'sun 23:59'
-###
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- option => { protocol => '-t' },
- module => {
- name => 'ip',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- accesslog => 1,
- accesslogfile => '/tmp/work.log',
- accesslog_rotate_type => 'datesize',
- accesslog_rotate_max_backup_index => '12',
- accesslog_rotate_max_filesize => '29G',
- accesslog_rotate_rotation_timing => 'week',
- accesslog_rotate_rotation_timing_value => 'sun 23:59',
- other_virtual_key => undef,
- } ];
-
- $expected{virtual} = [ undef, undef, {
- option => {
- protocol => '-t',
- main => '-t ip:port -m ip',
- flags => '-t ip:port -m ip -s rr -u 1000 -b sorryip:sorryport -Q 100M -q 100K -L 1 -a /tmp/work.log --ac-rotate-type datesize --ac-rotate-max-backup-index 12 --ac-rotate-max-filesize 29G --ac-rotate-rotation-timing week --ac-rotate-rotation-timing-value sun 23:59',
- },
- module => {
- name => 'ip',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- accesslog => '1',
- accesslogfile => '/tmp/work.log',
- accesslog_rotate_type => 'datesize',
- accesslog_rotate_max_backup_index => '12',
- accesslog_rotate_max_filesize => '29G',
- accesslog_rotate_rotation_timing => 'week',
- accesslog_rotate_rotation_timing_value => 'sun 23:59',
- other_virtual_key => ' none none /tmp/work.log --ac-rotate-type datesize --ac-rotate-max-backup-index 12 --ac-rotate-max-filesize 29G --ac-rotate-rotation-timing week --ac-rotate-rotation-timing-value sun 23:59',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - accesslog setup ok';
-}
-########################################################################################################
-########################################################################################################
-### accesslog Check( = 1 )
-### accesslog => '1',
-### accesslog_rotate_type => 'date',
-### accesslog_rotate_max_backup_index => '2',
-### accesslog_rotate_rotation_timing => 'week',
-### accesslog_rotate_rotation_timing_value => 'sun 23:59'
-###
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- option => { protocol => '-t' },
- module => {
- name => 'ip',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- accesslog => '1',
- accesslogfile => '/tmp/work.log',
- accesslog_rotate_type => 'date',
- accesslog_rotate_max_backup_index => '2',
- accesslog_rotate_rotation_timing => 'year',
- accesslog_rotate_rotation_timing_value => '12/31 23:59',
- other_virtual_key => undef,
- } ];
- $expected{virtual} = [ undef, undef, {
- option => {
- protocol => '-t',
- main => '-t ip:port -m ip',
- flags => '-t ip:port -m ip -s rr -u 1000 -b sorryip:sorryport -Q 100M -q 100K -L 1 -a /tmp/work.log --ac-rotate-type date --ac-rotate-max-backup-index 2 --ac-rotate-rotation-timing year --ac-rotate-rotation-timing-value 12/31 23:59',
- },
- module => {
- name => 'ip',
- },
- scheduler => 'rr',
- maxconn => 1000,
- sorryserver => { ip => 'sorryip', port => 'sorryport' },
- qosup => '100M',
- qosdown => '100K',
- accesslog => '1',
- accesslogfile => '/tmp/work.log',
- accesslog_rotate_type => 'date',
- accesslog_rotate_max_backup_index => '2',
- accesslog_rotate_rotation_timing => 'year',
- accesslog_rotate_rotation_timing_value => '12/31 23:59',
- other_virtual_key => ' none none /tmp/work.log --ac-rotate-type date --ac-rotate-max-backup-index 2 --ac-rotate-rotation-timing year --ac-rotate-rotation-timing-value 12/31 23:59',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - accesslog setup ok';
-}
-########################################################################################################
-
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('fbip1', 'fbip1');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- } ];
- $main::CONFIG{fallback} = { tcp => { server => 'fallback'} };
- $expected{virtual} = [ undef, undef, {
- fallback => { tcp => { server => 'fallback', option => { flags => '-r fbip1' } } },
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- $expected{fallback} = { tcp => { server => 'fallback',
- option => { flags => '-r fbip1' } }
- };
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - fallback overwrite ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('fbip1');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- fallback => { tcp => { server => 'fallback' } },
- } ];
- $expected{virtual} = [ undef, undef, {
- fallback => { tcp => { server => 'fallback', option => { flags => '-r fbip1' } } },
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - fallback ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- checktype => 1,
- } ];
- $expected{virtual} = [ undef, undef, {
- checktype => 'combined',
- num_connects => 1,
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - checktype ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- login => '',
- service => 'ftp',
- } ];
- $expected{virtual} = [ undef, undef, {
- login => 'anonymous',
- service => 'ftp',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - login ftp ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- login => '',
- service => 'sip',
- } ];
- $expected{virtual} = [ undef, undef, {
- login => 'l7directord@' . $main::PROC_ENV{hostname},
- service => 'sip',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - login sip ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- passwd => '',
- service => 'ftp',
- } ];
- $expected{virtual} = [ undef, undef, {
- passwd => 'l7directord@' . $main::PROC_ENV{hostname},
- service => 'ftp',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - passwd ftp ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- real => [ undef, undef, undef ],
- } ];
- $expected{virtual} = [ undef, undef, {
- real => [ undef, undef, undef ],
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - real undef list ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- forward => 'forward',
- } ],
- } ];
- $expected{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- forward => 'forward',
- option => { forward => '-m', flags => '-r real' },
- weight => 1,
- fail_counts => 0,
- healthchecked => 0,
- server => { port => undef },
- } ],
- server => {},
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - real forward, weight ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- weight => 'foo',
- } ],
- } ];
- $expected{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- option => { flags => '-r real' },
- weight => 1,
- fail_counts => 0,
- healthchecked => 0,
- server => { port => undef },
- } ],
- server => {},
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - real invalid weight ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- weight => 10,
- } ],
- } ];
- $expected{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- option => { flags => '-r real' },
- weight => 10,
- fail_counts => 0,
- healthchecked => 0,
- server => { port => undef },
- } ],
- server => {},
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - real valid weight ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- server => { ip => 'r', port => 'p' },
- } ],
- service => 'http',
- } ];
- $expected{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- server => { ip => 'r', port => 'p' },
- option => { flags => '-r real' },
- weight => 1,
- fail_counts => 0,
- healthchecked => 0,
- url => 'http://r:p/',
- } ],
- service => 'http',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - real url ip, port ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- server => { ip => 'r', port => 'p' },
- } ],
- service => 'http',
- checkport => '10000',
- } ];
- $expected{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- server => { ip => 'r', port => 'p' },
- option => { flags => '-r real' },
- weight => 1,
- fail_counts => 0,
- healthchecked => 0,
- url => 'http://r:10000/',
- } ],
- service => 'http',
- checkport => '10000',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - real url checkport ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- server => { ip => 'r' },
- } ],
- service => 'http',
- server => { port => 'v' },
- } ];
- $expected{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- server => { ip => 'r', port => 'v' },
- option => { flags => '-r real' },
- weight => 1,
- fail_counts => 0,
- healthchecked => 0,
- url => 'http://r:v/',
- } ],
- server => { port => 'v' },
- service => 'http',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - real url default port ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- request => 'r',
- } ],
- } ];
- $expected{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- option => { flags => '-r real' },
- request => 'r',
- weight => 1,
- fail_counts => 0,
- healthchecked => 0,
- url => 'r',
- server => { port => undef },
- } ],
- server => {},
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - real valid request ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- } ],
- request => 'r',
- } ];
- $expected{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- option => { flags => '-r real' },
- request => 'r',
- weight => 1,
- fail_counts => 0,
- healthchecked => 0,
- url => 'r',
- server => { port => undef },
- } ],
- server => {},
- request => 'r',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - real request overwrite ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- server => { ip => 'r' },
- } ],
- request => 'ftp://foo',
- service => 'ftp',
- server => { port => 'v' },
- } ];
- $expected{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- option => { flags => '-r real' },
- request => 'ftp://foo',
- weight => 1,
- fail_counts => 0,
- healthchecked => 0,
- url => 'ftp://foo',
- server => { ip => 'r', port => 'v' },
- } ],
- server => { port => 'v' },
- request => 'ftp://foo',
- service => 'ftp',
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - real request set to url ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- } ],
- checktype => 3,
- } ];
- $expected{virtual} = [ undef, undef, {
- real => [ undef, undef, {
- option => { flags => '-r real' },
- weight => 1,
- fail_counts => 0,
- healthchecked => 0,
- num_connects => undef,
- server => { port => undef },
- } ],
- server => {},
- checktype => 'combined',
- num_connects => 3,
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - real combined ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- checkcount => 100,
- } ];
- $expected{virtual} = [ undef, undef, {
- checkcount => 100,
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - valid checkcount ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- checkcount => -100,
- } ];
- $expected{virtual} = [ undef, undef, {
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - invalid checkcount ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- checktimeout => 100,
- } ];
- $expected{virtual} = [ undef, undef, {
- checkcount => $main::CONFIG{checkcount},
- checktimeout => 100,
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - valid checktimeout ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- checktimeout => -100,
- } ];
- $expected{virtual} = [ undef, undef, {
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - invalid checktimeout ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- negotiatetimeout => 100,
- } ];
- $expected{virtual} = [ undef, undef, {
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => 100,
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - valid negotiatetimeout ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- negotiatetimeout => -100,
- } ];
- $expected{virtual} = [ undef, undef, {
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - invalid negotiatetimeout ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- checkinterval => 100,
- } ];
- $expected{virtual} = [ undef, undef, {
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => 100,
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - valid checkinterval ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- checkinterval => -100,
- } ];
- $expected{virtual} = [ undef, undef, {
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - invalid checkinterval ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- retryinterval => 100,
- } ];
- $expected{virtual} = [ undef, undef, {
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => 100,
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - valid retryinterval ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- retryinterval => -100,
- } ];
- $expected{virtual} = [ undef, undef, {
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => $main::CONFIG{quiescent},
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - invalid retryinterval ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('real');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- my %expected = %main::GLOBAL;
- $main::CONFIG{virtual} = [ undef, undef, {
- quiescent => 0,
- } ];
- $expected{virtual} = [ undef, undef, {
- checkcount => $main::CONFIG{checkcount},
- checktimeout => $main::CONFIG{checktimeout},
- negotiatetimeout => $main::CONFIG{negotiatetimeout},
- checkinterval => $main::CONFIG{checkinterval},
- retryinterval => $main::CONFIG{retryinterval},
- quiescent => 0,
- } ];
- ld_setup();
- is_deeply \%main::CONFIG, \%expected, 'ld_setup - valid quiescent ok';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
- %main::CONFIG = %main::GLOBAL;
- $main::PROC_ENV{hostname} = 'test';
-}
-sub override {
- *get_ip_port = \&__get_ip_port;
- *get_forward_flag = \&__get_forward_flag;
- *ld_log = \&__ld_log;
-}
-sub __get_ip_port {
- push @get_ip_port_args, @_;
- return shift @get_ip_port_returns;
-}
-sub __get_forward_flag {
- push @get_forward_flag_args, @_;
- return shift @get_forward_flag_returns;
-}
-sub __ld_log {
-}
-
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 22;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our @get_ip_port_args = ();
-our @get_ip_port_returns = ();
-our @get_forward_flag_args = ();
-our @get_forward_flag_returns = ();
-our @system_wrapper_args = ();
-our @system_wrapper_returns = ();
-our @command_wrapper_args = ();
-our @command_wrapper_returns = ();
-#...............................................
-# test start
-# - ld_read_l7vsadm
-################################################################################
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = '/';
- my %expected = (
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - no l7vsadm ok(1)';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = '/proc/1';
- my %expected = (
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - no l7vsadm ok(2)';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = 't/lib/l7vsadm.1';
- my %expected = (
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - no virtual service ok';
-}
-{
-### IPv4 Normal VirtualService Only
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = 't/lib/l7vsadm.2';
- my %expected = (
- 'tcp:10.10.10.1:1234:sessionless' => {
- 'other_virtual_option' => ' none none none none'
- },
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - one virtual service ok';
-}
-{
-### IPv4 Normal VirtualService Only
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = 't/lib/l7vsadm.3';
- my %expected = (
- 'tcp:127.0.0.1:80:ip' => {
- '192.168.0.1:8080' => {
- server => { ip => '192.168.0.1', port => 8080 },
- weight => 5,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.1:8080',
- forward => '-m' },
- },
- 'other_virtual_option' => ' none none none none',
- },
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - one virtual service, one real server ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m', '-m', '-m');
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = 't/lib/l7vsadm.4';
- my %expected = (
- 'tcp:127.0.0.1:80:ip' => {
- '192.168.0.1:80' => {
- server => { ip => '192.168.0.1', port => 80 },
- weight => 3,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.1:80',
- forward => '-m' },
- },
- '192.168.0.2:80' => {
- server => { ip => '192.168.0.2', port => 80 },
- weight => 2,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.2:80',
- forward => '-m' },
- },
- '192.168.0.3:80' => {
- server => { ip => '192.168.0.3', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.3:80',
- forward => '-m' },
- },
- 'other_virtual_option' => ' none none none none',
- },
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - one virtual service, three real server ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = 't/lib/l7vsadm.5';
- my %expected = (
- 'tcp:127.0.0.1:80:sessionless' => {
- 'other_virtual_option' => ' /etc/l7vs/ssl/ssl.target_1.cf deferaccept,nodelay,cork,quickackoff /var/log/l7vs/l7vsd_conn.log',
- },
- 'tcp:192.168.0.1:8080:sslid' => {
- 'other_virtual_option' => ' none deferaccept,nodelay,cork,quickackoff none none',
- },
- 'tcp:192.168.0.100:10000:ip' => {
- 'other_virtual_option' => ' none none none none',
- },
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - three virtual service ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m', '-m', '-m');
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = 't/lib/l7vsadm.6';
- my %expected = (
- 'tcp:127.0.0.1:80:sessionless' => {
- '192.168.0.1:80' => {
- server => { ip => '192.168.0.1', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.1:80',
- forward => '-m' },
- },
- '192.168.0.2:80' => {
- server => { ip => '192.168.0.2', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.2:80',
- forward => '-m' },
- },
- 'other_virtual_option' => ' none none none none',
- },
- 'tcp:10.10.10.10:10:sslid' => {
- 'other_virtual_option' => ' none none none none',
- },
- 'tcp:20.20.20.20:20:ip' => {
- '192.168.0.1:80' => {
- server => { ip => '192.168.0.1', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.1:80',
- forward => '-m' },
- },
- 'other_virtual_option' => ' none none none none',
- },
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - virtual 1: two real, virtual 2: no real, virtual 3: one real ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = 't/lib/l7vsadm.7';
- my %expected = (
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - no virtual, ignore real';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = 't/lib/l7vsadm.8';
- my %expected = (
- 'tcp:192.168.0.1:8080:sessionless' => {
- '192.168.0.2:80' => {
- server => { ip => '192.168.0.2', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.2:80',
- forward => '-m' },
- },
- 'other_virtual_option' => ' none none none none',
- },
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - ignore real, one virtual, one real ok';
-}
-##############################################################################################
-{
-### IPv6 Normal VirtualService Only
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = 't/lib/l7vsadm.103';
- my %expected = (
- 'tcp:[2001::1]:80:ip' => {
- '[fe80::%eth1]:8080' => {
- server => { ip => '[fe80::%eth1]', port => 8080 },
- weight => 5,
- forward => 'Masq',
- option => { flags => '-r [fe80::%eth1]:8080',
- forward => '-m' },
- },
- 'other_virtual_option' => ' none none none none',
- },
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - one virtual service, one real server ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m', '-m', '-m');
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = 't/lib/l7vsadm.104';
- my %expected = (
- 'tcp:[2001:1:2:3:4:5:6:7]:80:ip' => {
- '[fe80:ffff:ffff:eeee:dddd:cccc:bbbb:aaaa]:80' => {
- server => { ip => '[fe80:ffff:ffff:eeee:dddd:cccc:bbbb:aaaa]', port => 80 },
- weight => 3,
- forward => 'Masq',
- option => { flags => '-r [fe80:ffff:ffff:eeee:dddd:cccc:bbbb:aaaa]:80',
- forward => '-m' },
- },
- '[fe80:1:22:333:4444:5:66:777]:80' => {
- server => { ip => '[fe80:1:22:333:4444:5:66:777]', port => 80 },
- weight => 2,
- forward => 'Masq',
- option => { flags => '-r [fe80:1:22:333:4444:5:66:777]:80',
- forward => '-m' },
- },
- '[fe80:ffff:ffff::ffff:ffff]:80' => {
- server => { ip => '[fe80:ffff:ffff::ffff:ffff]', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r [fe80:ffff:ffff::ffff:ffff]:80',
- forward => '-m' },
- },
- 'other_virtual_option' => ' none none none none',
- },
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - one virtual service, three real server ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = 't/lib/l7vsadm.105';
- my %expected = (
- 'tcp:[2001::2]:80:sessionless' => {
- 'other_virtual_option' => ' /etc/l7vs/ssl/ssl.target_1.cf deferaccept,nodelay,cork,quickackoff /var/log/l7vs/l7vsd_conn.log',
- },
- 'tcp:[::]:8080:sslid' => {
- 'other_virtual_option' => ' none deferaccept,nodelay,cork,quickackoff none none',
- },
- 'tcp:[3901:222:333:444:555::]:10000:ip' => {
- 'other_virtual_option' => ' none none none none',
- },
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - three virtual service ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m', '-m', '-m');
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = 't/lib/l7vsadm.106';
- my %expected = (
- 'tcp:[::]:80:sessionless' => {
- '192.168.0.1:80' => {
- server => { ip => '192.168.0.1', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.1:80',
- forward => '-m' },
- },
- '192.168.0.2:80' => {
- server => { ip => '192.168.0.2', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.2:80',
- forward => '-m' },
- },
- 'other_virtual_option' => ' none none none none',
- },
- 'tcp:[::1]:10:sslid' => {
- 'other_virtual_option' => ' none none none none',
- },
- 'tcp:[0:0:0:0:0:0:0:0]:20:ip' => {
- '[222:333:4::55]:80' => {
- server => { ip => '[222:333:4::55]', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r [222:333:4::55]:80',
- forward => '-m' },
- },
- 'other_virtual_option' => ' none none none none',
- },
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - virtual 1: two real, virtual 2: no real, virtual 3: one real ok';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = 't/lib/l7vsadm.107';
- my %expected = (
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - no virtual, ignore real';
-}
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ();
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ('-m');
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- local $main::PROC_ENV{l7vsadm} = 't/lib/l7vsadm.108';
- my %expected = (
- 'tcp:[2001::1]:8080:sessionless' => {
- '192.168.0.2:80' => {
- server => { ip => '192.168.0.2', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.2:80',
- forward => '-m' },
- },
- 'other_virtual_option' => ' none none none none',
- },
- );
- my $got = ld_read_l7vsadm();
- is_deeply $got, \%expected, 'ld_read_l7vsadm - ignore real, one virtual, one real ok';
-}
-#######################################################################################
-# - ld_add_virtual
-# - ld_operate_virtual
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('1.1.1.1:1');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- local @command_wrapper_args = ();
- local @command_wrapper_returns = (0, q{});
- local $main::PROC_ENV{l7vsadm} = 'l7vsadm';
- my $v = { module => { name => 'sslid' }, option => { flags => '-t 1.1.1.1:1 -m sslid' } };
- ld_add_virtual($v);
- is_deeply \@command_wrapper_args, ['l7vsadm -A -t 1.1.1.1:1 -m sslid 2>&1'], 'ld_add_virtual - ok';
-}
-# - ld_edit_virtual
-# - ld_operate_virtual
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('1.1.1.1:1');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- local @command_wrapper_args = ();
- local @command_wrapper_returns = (0, q{});
- local $main::PROC_ENV{l7vsadm} = 'l7vsadm';
- my $v = { module => { name => 'sslid' }, option => { flags => '-t 1.1.1.1:1 -m sslid' } };
- ld_edit_virtual($v);
- is_deeply \@command_wrapper_args, ['l7vsadm -E -t 1.1.1.1:1 -m sslid 2>&1'], 'ld_edit_virtual - ok';
-}
-# - ld_delete_virtual
-# - ld_operate_virtual
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('1.1.1.1:1');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- local @command_wrapper_args = ();
- local @command_wrapper_returns = (0, q{});
- local $main::PROC_ENV{l7vsadm} = 'l7vsadm';
- my $v = { module => { name => 'sslid' }, option => { main => '-t 1.1.1.1:1 -m sslid' } };
- ld_delete_virtual($v);
- is_deeply \@command_wrapper_args, ['l7vsadm -D -t 1.1.1.1:1 -m sslid 2>&1'], 'ld_delete_virtual - ok';
-}
-# - ld_add_real
-# - ld_operate_real
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('1.1.1.1:1', '2.2.2.2:2');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- local @command_wrapper_args = ();
- local @command_wrapper_returns = (0, q{});
- local $main::PROC_ENV{l7vsadm} = 'l7vsadm';
- my $v = { module => { name => 'sslid' }, option => { main => '-t 1.1.1.1:1 -m sslid' } };
- my $r = { option => { flags => '-r 2.2.2.2:2' } };
- my $weight = 10;
- ld_add_real($v, $r, $weight);
- is_deeply \@command_wrapper_args, ['l7vsadm -a -t 1.1.1.1:1 -m sslid -r 2.2.2.2:2 -w 10 2>&1'], 'ld_add_real - ok';
-}
-# - ld_edit_real
-# - ld_operate_real
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('1.1.1.1:1', '2.2.2.2:2');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- local @command_wrapper_args = ();
- local @command_wrapper_returns = (0, q{});
- local $main::PROC_ENV{l7vsadm} = 'l7vsadm';
- my $v = { module => { name => 'sslid' }, option => { main => '-t 1.1.1.1:1 -m sslid' } };
- my $r = { option => { flags => '-r 2.2.2.2:2' } };
- my $weight = 10;
- ld_edit_real($v, $r, $weight);
- is_deeply \@command_wrapper_args, ['l7vsadm -e -t 1.1.1.1:1 -m sslid -r 2.2.2.2:2 -w 10 2>&1'], 'ld_edit_real - ok';
-}
-# - ld_delete_real
-# - ld_operate_real
-{
- set_default();
- local @get_ip_port_args = ();
- local @get_ip_port_returns = ('1.1.1.1:1', '2.2.2.2:2');
- local @get_forward_flag_args = ();
- local @get_forward_flag_returns = ();
- local @command_wrapper_args = ();
- local @command_wrapper_returns = (0, q{});
- local $main::PROC_ENV{l7vsadm} = 'l7vsadm';
- my $v = { module => { name => 'sslid' }, option => { main => '-t 1.1.1.1:1 -m sslid' } };
- my $r = { option => { flags => '-r 2.2.2.2:2' } };
- my $weight = 10;
- ld_delete_real($v, $r, $weight);
- is_deeply \@command_wrapper_args, ['l7vsadm -d -t 1.1.1.1:1 -m sslid -r 2.2.2.2:2 2>&1'], 'ld_delete_real - ok';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
- $main::PROC_ENV{l7vsadm} = 'l7vsadm';
-}
-sub override {
- *get_ip_port = \&__get_ip_port;
- *get_forward_flag = \&__get_forward_flag;
- *system_wrapper = \&__system_wrapper;
- *command_wrapper = \&__command_wrapper;
- *ld_log = \&__ld_log;
-}
-sub __get_ip_port {
- push @get_ip_port_args, @_;
- return shift @get_ip_port_returns;
-}
-sub __get_forward_flag {
- push @get_forward_flag_args, @_;
- return shift @get_forward_flag_returns;
-}
-sub __system_wrapper {
- push @system_wrapper_args, @_;
- return shift @system_wrapper_returns;
-}
-sub __command_wrapper {
- push @command_wrapper_args, @_;
- return shift @command_wrapper_returns;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 28;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our @ld_read_l7vsadm_args = ();
-our @ld_read_l7vsadm_returns = ();
-our @get_virtual_id_str_args = ();
-our @get_virtual_id_str_returns = ();
-our @ld_add_virtual_args = ();
-our @ld_add_virtual_returns = ();
-our @ld_edit_virtual_args = ();
-our @ld_edit_virtual_returns = ();
-our @fallback_find_args = ();
-our @fallback_find_returns = ();
-our @get_ip_port_args = ();
-our @get_ip_port_returns = ();
-our @get_health_check_id_str_args = ();
-our @get_health_check_id_str_returns = ();
-our @ld_delete_virtual_args = ();
-our @ld_delete_virtual_returns = ();
-our @ld_delete_real_args = ();
-our @ld_delete_real_returns = ();
-#...............................................
-# test start
-# - ld_start
-{
- set_default();
- local @ld_read_l7vsadm_returns = ();
- ld_start();
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'ld_start - l7vsadm error';
-}
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( {} );
- $main::CONFIG{virtual} = [ { protocol => 'tcp' } ];
- my %expected = %main::GLOBAL;
- $expected{virtual} = [ { protocol => 'tcp' } ];
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - l7vsadm has no service';
-}
-### Option Key の変更なしによる -E投入確認
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( {
- 'tcp:[2001::1]:8080:sessionless' => {
- '192.168.0.2:80' => {
- server => { ip => '192.168.0.2', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.2:80',
- forward => '-m' },
- },
- 'other_virtual_option' => ' none none none none',
- },
- } );
- local @get_virtual_id_str_returns = ('tcp:[2001::1]:8080:sessionless');
- $main::CONFIG{virtual} = [
- {
- '192.168.0.2:80' => {
- server => { ip => '192.168.0.2', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.2:80',
- forward => '-m' },
- },
- other_virtual_key => ' none none none none',
- protocol => 'tcp'
- } ];
- my %expected = %main::GLOBAL;
- $expected{virtual} = [ {
- '192.168.0.2:80' => {
- 'forward' => 'Masq',
- 'option' => {
- 'flags' => '-r 192.168.0.2:80',
- 'forward' => '-m',},
- 'server' => {
- 'ip' => '192.168.0.2',
- 'port' => 80},
- 'weight' => 1,
- },
- 'other_virtual_key' => ' none none none none',
- 'protocol' => 'tcp' }, ];
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - get_virtual_id_ok';
-}
-### Option Key の変更による -D、-A投入確認1
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( {
- 'tcp:[2001::1]:8080:sessionless' => {
- '192.168.0.2:80' => {
- server => { ip => '192.168.0.2', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.2:80',
- forward => '-m' },
- },
- 'other_virtual_option' => ' chg none none none',
- },
- } );
- local @get_virtual_id_str_returns = ('tcp:[2001::1]:8080:sessionless');
- $main::CONFIG{virtual} = [
- {
- '192.168.0.2:80' => {
- server => { ip => '192.168.0.2', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.2:80',
- forward => '-m' },
- },
- other_virtual_key => ' none none none none',
- protocol => 'tcp'
- } ];
- my %expected = %main::GLOBAL;
- $expected{virtual} = [ {
- '192.168.0.2:80' => {
- 'forward' => 'Masq',
- 'option' => {
- 'flags' => '-r 192.168.0.2:80',
- 'forward' => '-m',},
- 'server' => {
- 'ip' => '192.168.0.2',
- 'port' => 80},
- 'weight' => 1,
- },
- 'other_virtual_key' => ' chg none none none',
- 'protocol' => 'tcp' }, ];
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - Change Option Key Check ok';
-}
-### Option Key の変更による -D、-A投入確認2(error パターン)
-### 通常ありえないパターン(ファイルの状態と動作状態があっていないケース)
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( {
- 'tcp:[2001::1]:8080:sessionless' => {
- '192.168.0.2:80' => {
- server => { ip => '192.168.0.2', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.2:80',
- forward => '-m' },
- },
- 'other_virtual_option' => ' none none none none',
- },
- } );
- local @get_virtual_id_str_returns = ('tcp:[2001::1]:8080:sessionless');
- $main::CONFIG{virtual} = [
- {
- '192.168.0.2:80' => {
- server => { ip => '192.168.0.2', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.2:80',
- forward => '-m' },
- },
- other_virtual_key => ' none none none org',
- protocol => 'tcp'
- } ];
- my %expected = %main::GLOBAL;
- $expected{virtual} = [ {
- '192.168.0.2:80' => {
- 'forward' => 'Masq',
- 'option' => {
- 'flags' => '-r 192.168.0.2:80',
- 'forward' => '-m',},
- 'server' => {
- 'ip' => '192.168.0.2',
- 'port' => 80},
- 'weight' => 1,
- },
- 'other_virtual_key' => ' none none none none',
- 'protocol' => 'tcp' }, ];
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - Change Option Key Not Pattern';
-}
-### 初回 の -A投入確認
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( {
- } );
- local @get_virtual_id_str_returns = ('tcp:[2001::1]:8080:sessionless');
- $main::CONFIG{virtual} = [
- {
- '192.168.0.2:80' => {
- server => { ip => '192.168.0.2', port => 80 },
- weight => 1,
- forward => 'Masq',
- option => { flags => '-r 192.168.0.2:80',
- forward => '-m' },
- },
- other_virtual_key => ' none none none none',
- protocol => 'tcp'
- } ];
- my %expected = %main::GLOBAL;
- $expected{virtual} = [ {
- '192.168.0.2:80' => {
- 'forward' => 'Masq',
- 'option' => {
- 'flags' => '-r 192.168.0.2:80',
- 'forward' => '-m',},
- 'server' => {
- 'ip' => '192.168.0.2',
- 'port' => 80},
- 'weight' => 1,
- },
- 'other_virtual_key' => ' none none none none',
- 'protocol' => 'tcp' }, ];
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - Change Option Key Check ok';
-}
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( { vid => {
- other_virtual_option => ' none none none none'},
- }, );
- local @get_virtual_id_str_returns = ('vid');
- $main::CONFIG{virtual} = [ { protocol => 'tcp' ,
- other_virtual_key => ' none none none none' },
- ];
- my %expected = %main::GLOBAL;
- $expected{virtual} = [ { protocol => 'tcp' ,
- other_virtual_key => ' none none none none' },
- ];
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - edit virtual';
-## is_deeply \@ld_edit_virtual_args,
-## [
-## '192.168.0.2:80' => {
-## 'forward' => 'Masq',
-## 'option' => {
-## 'flags' => '-r 192.168.0.2:80',
-## 'forward' => '-m',
-## },
-## 'server' => {
-## 'ip' => '192.168.0.2',
-## 'port' => 80,
-## },
-## 'weight' => 1,
-## 'other_virtual_key' => ' none none none none',
-## 'protocol' => 'tcp',
-## }
-##, ],
-## 'ld_start - edit virtual call';
-}
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( {} );
- local @get_virtual_id_str_returns = ('vid');
- $main::CONFIG{virtual} = [ { protocol => 'tcp' } ];
- my %expected = %main::GLOBAL;
- $expected{virtual} = [ { protocol => 'tcp' } ];
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - add virtual';
-## is_deeply \@ld_add_virtual_args, [ { protocol => 'tcp' } ], 'ld_start - add virtual call';
-}
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( { vid => { 'fbip:fbport' => {} ,
- other_virtual_option => ' none none none none',},
- }, );
- local @get_virtual_id_str_returns = ('vid');
- local @fallback_find_returns = ( {} );
- local @get_ip_port_returns = ( 'fbip:fbport' );
- $main::CONFIG{virtual} = [ { protocol => 'tcp',
- other_virtual_key => ' none none none none',
- }, ];
- my %expected = %main::GLOBAL;
- $expected{virtual} = [ { protocol => 'tcp' ,
- other_virtual_key => ' none none none none',
- }, ];
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - fallback find';
-# is_deeply \@ld_delete_real_args, [], 'ld_start - not delete fallback';
-}
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( { vid => { 'fbip:fbport' => undef, 'foo:bar' => { ip => 'foo' } } } );
- local @get_virtual_id_str_returns = ('vid');
- local @fallback_find_returns = ( {} );
- local @get_ip_port_returns = ( 'fbip:fbport' );
- $main::CONFIG{virtual} = [ { protocol => 'tcp' } ];
- my %expected = %main::GLOBAL;
- $expected{virtual} = [ { protocol => 'tcp' } ];
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - delete not management real';
-##Warnning is_deeply \@ld_delete_real_args, [{ protocol => 'tcp', other_virtual_key => ' none none none none',}, { ip => 'foo' }, ], 'ld_start - delete real';
-}
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( { vid => { 'foo:bar' => { ip => 'foo' ,} }, } );
- local @get_virtual_id_str_returns = ('vid');
- local @get_health_check_id_str_returns = ();
- local @fallback_find_returns = ();
- local @get_ip_port_returns = ( 'foo:bar' );
- $main::CONFIG{virtual} = [ {
- protocol => 'tcp',
- real => [ 'real' ],
- } ];
- my %expected = %main::GLOBAL;
- $expected{virtual} = [ {
- protocol => 'tcp',
- real => [ 'real' ],
- } ];
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - health_check_id_str error';
-}
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( { vid => { 'foo:bar' => { ip => 'foo' } } } );
- local @get_virtual_id_str_returns = ('vid');
- local @get_health_check_id_str_returns = ('hid');
- local @fallback_find_returns = ();
- local @get_ip_port_returns = ( 'foo:bar' );
- local %main::HEALTH_CHECK = ();
- $main::CONFIG{virtual} = [ {
- protocol => 'tcp',
- real => [ 'real' ],
- } ];
- my %expected = %main::GLOBAL;
- $expected{virtual} = [ {
- protocol => 'tcp',
- real => [ 'real' ],
- } ];
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - new health check';
- is_deeply \%main::HEALTH_CHECK, { hid => { manage => [
- [ $expected{virtual}[0], $expected{virtual}[0]{real}[0] ]
- ] } }, 'ld_start - new health check id';
-}
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( { vid => { 'foo:bar' => { ip => 'foo' } } } );
- local @get_virtual_id_str_returns = ('vid');
- local @get_health_check_id_str_returns = ('hid');
- local @fallback_find_returns = ();
- local @get_ip_port_returns = ( 'foo:bar' );
- local %main::HEALTH_CHECK = ( hid => undef );
- $main::CONFIG{virtual} = [ {
- protocol => 'tcp',
- real => [ 'real' ],
- } ];
- my %expected = %main::GLOBAL;
- $expected{virtual} = [ {
- protocol => 'tcp',
- real => [ 'real' ],
- } ];
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - add health check';
- is_deeply \%main::HEALTH_CHECK, { hid => { manage => [
- [ $expected{virtual}[0], $expected{virtual}[0]{real}[0] ]
- ] } }, 'ld_start - add health check id';
-}
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( { vid => { 'foo:bar' => { ip => 'foo' } } } );
- local @get_virtual_id_str_returns = ('vid');
- local @get_health_check_id_str_returns = ('hid');
- local @fallback_find_returns = ();
- local @get_ip_port_returns = ( 'foo:bar' );
- $main::CONFIG{virtual} = [ {
- protocol => 'tcp',
- real => [ 'real' ],
- } ];
- local %main::HEALTH_CHECK = ( hid => { manage => [ [ $main::CONFIG{virtual}[0], $main::CONFIG{virtual}[0]{real}[0] ] ] } );
- my %expected = %main::GLOBAL;
- $expected{virtual} = [ {
- protocol => 'tcp',
- real => [ 'real' ],
- } ];
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - ignore exists health check';
- is_deeply \%main::HEALTH_CHECK, { hid => { manage => [
- [ $expected{virtual}[0], $expected{virtual}[0]{real}[0] ]
- ] } }, 'ld_start - ignore exists health check id';
-}
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( {} );
- $main::CONFIG{old_virtual} = [];
- my %expected = %main::GLOBAL;
- delete $expected{old_virtual};
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - empty old virtual';
-}
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( {} );
- local @get_virtual_id_str_returns = ( 'vid' );
- $main::CONFIG{old_virtual} = ['ov'];
- my %expected = %main::GLOBAL;
- delete $expected{old_virtual};
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - not exists old virtual';
-}
-{
- set_default();
- local @ld_read_l7vsadm_returns = ( { vid => { ip => 'foo' } } );
- local @get_virtual_id_str_returns = ( 'vid' );
- $main::CONFIG{old_virtual} = ['ov'];
- my %expected = %main::GLOBAL;
- delete $expected{old_virtual};
- ld_start();
- is_deeply \%main::CONFIG, \%expected, 'ld_start - exists old virtual';
-##Warnning is_deeply \@ld_delete_virtual_args, ['ov'], 'ld_start - exists old virtual delete';
-}
-# - ld_stop
-{
- set_default();
- local @ld_read_l7vsadm_returns = ();
- ld_stop();
- is_deeply \%main::CONFIG, \%main::GLOBAL, 'ld_stop - l7vsadm no service';
-}
-{
- set_default();
- local @ld_read_l7vsadm_returns = ({});
- $main::CONFIG{virtual} = [];
- my %expected = %main::GLOBAL;
- $expected{virtual} = [];
- ld_stop();
- is_deeply \%main::CONFIG, \%expected, 'ld_stop - empty virtual';
-}
-{
- set_default();
- local @ld_read_l7vsadm_returns = ({});
- local @get_virtual_id_str_args = ();
- local @get_virtual_id_str_returns = ('vid');
- local @ld_delete_virtual_args = ();
- $main::CONFIG{virtual} = ['virtual'];
- my %expected = %main::GLOBAL;
- $expected{virtual} = ['virtual'];
- ld_stop();
- is_deeply \%main::CONFIG, \%expected, 'ld_stop - no real';
- is_deeply \@get_virtual_id_str_args, ['virtual'], 'ld_stop - get_virtual_id_str';
- is_deeply \@ld_delete_virtual_args, ['virtual'], 'ld_stop - delete virtual';
-}
-{
- set_default();
- local @ld_read_l7vsadm_returns = ({ vid => { rid1 => 'real1', rid2 => 'real2' } });
- local @get_virtual_id_str_args = ();
- local @get_virtual_id_str_returns = ('vid');
- local @ld_delete_virtual_args = ();
- local @ld_delete_real_args = ();
- $main::CONFIG{virtual} = ['virtual'];
- my %expected = %main::GLOBAL;
- $expected{virtual} = ['virtual'];
- ld_stop();
- is_deeply \%main::CONFIG, \%expected, 'ld_stop - exists real';
- is_deeply \@get_virtual_id_str_args, ['virtual'], 'ld_stop - get_virtual_id_str';
-## is_deeply \@ld_delete_real_args, ['virtual', 'real2', 'virtual', 'real1'], 'ld_stop - delete real';
- is_deeply \@ld_delete_virtual_args, ['virtual'], 'ld_stop - delete virtual';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
- %main::CONFIG = %main::GLOBAL;
- %main::HEALTH_CHECK = ();
-}
-sub override {
- *ld_read_l7vsadm = \&__ld_read_l7vsadm;
- *get_virtual_id_str = \&__get_virtual_id_str;
- *ld_add_virtual = \&__ld_add_virtual;
- *ld_edit_virtual = \&__ld_edit_virtual;
- *fallback_find = \&__fallback_find;
- *get_ip_port = \&__get_ip_port;
- *get_health_check_id_str = \&__get_health_check_id_str;
- *ld_delete_virtual = \&__ld_delete_virtual;
- *ld_delete_real = \&__ld_delete_real;
- *ld_log = \&__ld_log;
-}
-sub __ld_read_l7vsadm {
- push @ld_read_l7vsadm_args, @_;
- return shift @ld_read_l7vsadm_returns;
-}
-sub __get_virtual_id_str {
- push @get_virtual_id_str_args, @_;
- return shift @get_virtual_id_str_returns;
-}
-sub __ld_add_virtual {
- push @ld_add_virtual_args, @_;
- return shift @ld_add_virtual_returns;
-}
-sub __ld_edit_virtual {
- push @ld_edit_virtual_args, @_;
- return shift @ld_edit_virtual_returns;
-}
-sub __fallback_find {
- push @fallback_find_args, @_;
- return shift @fallback_find_returns;
-}
-sub __get_ip_port {
- push @get_ip_port_args, @_;
- return shift @get_ip_port_returns;
-}
-sub __get_health_check_id_str {
- push @get_health_check_id_str_args, @_;
- return shift @get_health_check_id_str_returns;
-}
-sub __ld_delete_virtual {
- push @ld_delete_virtual_args, @_;
- return shift @ld_delete_virtual_returns;
-}
-sub __ld_delete_real {
- push @ld_delete_real_args, @_;
- return shift @ld_delete_real_returns;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 6;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our @system_wrapper_args = ();
-our @system_wrapper_returns = ();
-#...............................................
-# test start
-# - ld_cmd_children
-{
- set_default();
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- ld_cmd_children();
- is_deeply \@system_wrapper_args, [], 'ld_cmd_children - no execute';
-}
-{
- set_default();
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- $main::CONFIG{execute} = { subconf1 => 1, subconf2 => 1 };
- ld_cmd_children();
- is_deeply \@system_wrapper_args, [], 'ld_cmd_children - exists execute, but no command';
-}
-{
- set_default();
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- $main::CONFIG{execute} = { subconf1 => 1, subconf2 => 1 };
- ld_cmd_children('start');
- is_deeply \@system_wrapper_args, ['l7directord subconf1 start', 'l7directord subconf2 start'],
- 'ld_cmd_children - exists execute and command';
-}
-{
- set_default();
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- $main::CONFIG{execute} = { subconf1 => 1, subconf2 => 1 };
- ld_cmd_children('start', {});
- is_deeply \@system_wrapper_args, [], 'ld_cmd_children - specified empty config';
-}
-{
- set_default();
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- my $execute = { subconf1 => 1, subconf2 => 1 };
- ld_cmd_children(undef, $execute);
- is_deeply \@system_wrapper_args, [], 'ld_cmd_children - specified config but not exist command';
-}
-{
- set_default();
- local @system_wrapper_args = ();
- local @system_wrapper_returns = ();
- my $execute = { subconf1 => 1, subconf2 => 1 };
- ld_cmd_children('start', $execute);
- is_deeply \@system_wrapper_args, ['l7directord subconf1 start', 'l7directord subconf2 start'],
- 'ld_cmd_children - specified config and exists command';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
- %main::CONFIG = %main::GLOBAL;
- $main::PROC_ENV{l7directord} = 'l7directord';
-}
-sub override {
- *system_wrapper = \&__system_wrapper;
- *ld_log = \&__ld_log;
-}
-sub __system_wrapper {
- push @system_wrapper_args, @_;
- return shift @system_wrapper_returns;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 29;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our $ld_start_called = 0;
-our $ld_stop_called = 0;
-our $reread_config_called = 0;
-our @check_child_process_args = ();
-our @check_child_process_returns = ();
-our @create_check_process_args = ();
-our @create_check_process_returns = ();
-our @sleep_and_check_signal_args = ();
-our @sleep_and_check_signal_returns = ();
-our $check_cfgfile_called = 0;
-our @check_cfgfile_returns = ();
-#...............................................
-# test start
-# - ld_main
-{
- set_default();
- local @check_child_process_returns = ([]);
- local @sleep_and_check_signal_returns = ('halt');
- local $SIG{TERM} = sub { is $_[0], 'TERM', 'catch sigterm'; };
- $main::HEALTH_CHECK{id}{pid} = $$;
- ld_main();
- is $ld_start_called, 1, 'ld_main - start called';
- is $reread_config_called, 0, 'ld_main - reread_config called';
- is $check_cfgfile_called, 0, 'ld_main - check_cfgfile called';
- is $ld_stop_called, 1, 'ld_main - stop called';
-}
-{
- set_default();
- local @check_child_process_returns = (['id1', 'id2']);
- local @sleep_and_check_signal_returns = ('halt');
- local $SIG{TERM} = sub { is $_[0], 'TERM', 'catch sigterm'; };
- $main::HEALTH_CHECK{id}{pid} = $$;
- ld_main();
- is $ld_start_called, 1, 'ld_main - start called';
- is $reread_config_called, 0, 'ld_main - reread_config called';
- is $ld_stop_called, 1, 'ld_main - stop called';
- is $check_cfgfile_called, 0, 'ld_main - check_cfgfile called';
- is_deeply \@create_check_process_args, ['id1', 'id2'], 'ld_main - create_check_process args';
-}
-{
- set_default();
- local @check_child_process_returns = (['id1', 'id2'], [], []);
- local @sleep_and_check_signal_returns = (undef, undef , 'halt');
- local @create_check_process_args = ();
- local $SIG{TERM} = sub { is $_[0], 'TERM', 'catch sigterm'; };
- $main::HEALTH_CHECK{id}{pid} = $$;
- ld_main();
- is $ld_start_called, 1, 'ld_main - start called';
- is $reread_config_called, 0, 'ld_main - reread_config called';
- is $ld_stop_called, 1, 'ld_main - stop called';
- is $check_cfgfile_called, 2, 'ld_main - check_cfgfile called';
- is_deeply \@create_check_process_args, ['id1', 'id2'], 'ld_main - create_check_process args';
-}
-{
- set_default();
- local @check_child_process_returns = (['id1', 'id2'], [], []);
- local @sleep_and_check_signal_returns = (undef, 'reload' , 'halt');
- local @create_check_process_args = ();
- local $SIG{TERM} = sub { is $_[0], 'TERM', 'catch sigterm'; };
- $main::HEALTH_CHECK{id}{pid} = $$;
- ld_main();
- is $ld_start_called, 1, 'ld_main - start called';
- is $reread_config_called, 1, 'ld_main - reread_config called';
- is $ld_stop_called, 1, 'ld_main - stop called';
- is $check_cfgfile_called, 1, 'ld_main - check_cfgfile called';
- is_deeply \@create_check_process_args, ['id1', 'id2'], 'ld_main - create_check_process args';
-}
-{
- set_default();
- local @check_child_process_returns = (['id1', 'id2'], [], []);
- local @sleep_and_check_signal_returns = (undef, 'reload' , 'halt');
- local @check_cfgfile_returns = (1);
- local @create_check_process_args = ();
- local $SIG{TERM} = sub { is $_[0], 'TERM', 'catch sigterm'; };
- $main::HEALTH_CHECK{id}{pid} = $$;
- ld_main();
- is $ld_start_called, 1, 'ld_main - start called';
- is $reread_config_called, 2, 'ld_main - reread_config called';
- is $ld_stop_called, 1, 'ld_main - stop called';
- is $check_cfgfile_called, 1, 'ld_main - check_cfgfile called';
- is_deeply \@create_check_process_args, ['id1', 'id2'], 'ld_main - create_check_process args';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
- %main::CONFIG = %main::GLOBAL;
- %main::HEALTH_CHECK = ();
- $ld_start_called = 0;
- $ld_stop_called = 0;
- $reread_config_called = 0;
- $check_cfgfile_called = 0;
-}
-sub override {
- *ld_start = \&__ld_start;
- *check_child_process = \&__check_child_process;
- *create_check_process = \&__create_check_process;
- *sleep_and_check_signal = \&__sleep_and_check_signal;
- *check_cfgfile = \&__check_cfgfile;
- *reread_config = \&__reread_config;
- *ld_stop = \&__ld_stop;
- *ld_log = \&__ld_log;
-}
-sub __ld_start {
- $ld_start_called++;
-}
-sub __check_child_process {
- push @check_child_process_args, @_;
- my $return = shift @check_child_process_returns;
- return @$return;
-}
-sub __create_check_process {
- push @create_check_process_args, @_;
- return shift @create_check_process_returns;
-}
-sub __sleep_and_check_signal {
- push @sleep_and_check_signal_args, @_;
- return shift @sleep_and_check_signal_returns;
-}
-sub __check_cfgfile {
- $check_cfgfile_called++;
- return shift @check_cfgfile_returns;
-}
-sub __reread_config {
- $reread_config_called++;
-}
-sub __ld_stop {
- $ld_stop_called++;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use subs qw(fork chdir);
-use Test::More tests => 29;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our $health_check_called = 0;
-our $fork_return = -1;
-our $fork_called = 0;
-our $ld_exit_called = 0;
-our $setsid_return = 0;
-our $chdir_return = 0;
-#...............................................
-# test start
-# - check_child_process
-{
- set_default();
- my @got = check_child_process();
- is_deeply \@got, [], 'check_child_process - no process';
-}
-{
- set_default();
- %main::HEALTH_CHECK = ( id1 => { pid => $$ }, id2 => { pid => undef }, id3 => {pid => 100000 } );
- my @got = check_child_process();
- is_deeply \@got, ['id2', 'id3'], 'check_child_process - valid process, no process, invalid process';
-}
-# - create_check_process
-{
- set_default();
- create_check_process();
- is $fork_called, 0, 'create_check_process - no list';
- is $health_check_called, 0, 'create_check_process - no list';
-}
-{
- set_default();
- $fork_return = -1;
- create_check_process('id1', 'id2');
- is $fork_called, 2, 'create_check_process - fork error';
- is $health_check_called, 0, 'create_check_process - fork error';
- is_deeply \%main::HEALTH_CHECK, {}, 'create_check_process - fork error';
-}
-{
- set_default();
- $fork_return = 0;
- create_check_process('id1');
- is $fork_called, 1, 'create_check_process - fork child';
- is $health_check_called, 1, 'create_check_process - fork child';
- is_deeply \%main::HEALTH_CHECK, { id1 => {} }, 'create_check_process - fork child';
-}
-{
- set_default();
- $fork_return = 1000;
- create_check_process('id1', 'id2');
- is $fork_called, 2, 'create_check_process - fork parent';
- is $health_check_called, 0, 'create_check_process - fork parent';
- is_deeply \%main::HEALTH_CHECK, { id1 => {pid => 1000}, id2 => {pid => 1000} }, 'create_check_process - fork parent';
-}
-# - ld_daemon_become_child
-{
- set_default();
- local $fork_return = 0;
- eval { ld_daemon_become_child(); };
- is $fork_called, 1, 'ld_daemon_become_child - fork child';
- is $ld_exit_called, 0, 'ld_daemon_become_child - become child';
-}
-{
- set_default();
- local $fork_return = 1;
- eval { ld_daemon_become_child(); };
- is $fork_called, 1, 'ld_daemon_become_child - fork parent';
- is $ld_exit_called, 1, 'ld_daemon_become_child - parent ld_exit';
-}
-{
- set_default();
- local $fork_return = -1;
- eval { ld_daemon_become_child(); };
- is $fork_called, 1, 'ld_daemon_become_child - fork error';
- is $ld_exit_called, 1, 'ld_daemon_become_child - fork error ld_exit';
-}
-# - ld_daemon
-SKIP: {
- skip "need root privilege", 2 if ($> != 0);
- set_default();
- local $fork_return = 0;
- eval { ld_daemon(); };
- is $fork_called, 2, 'ld_daemon - fork child 2 times';
- is $ld_exit_called, 0, 'ld_daemon - become daemon';
-}
-{
- set_default();
- local $fork_return = 1;
- eval { ld_daemon(); };
- is $fork_called, 1, 'ld_daemon - fork parent';
- is $ld_exit_called, 1, 'ld_daemon - cannot become daemon';
-}
-{
- set_default();
- local $fork_return = -1;
- eval { ld_daemon(); };
- is $fork_called, 1, 'ld_daemon - fork error';
- is $ld_exit_called, 1, 'ld_daemon - cannot become daemon';
-}
-{
- set_default();
- local $fork_return = 0;
- local $setsid_return = -1;
- eval { ld_daemon(); };
- is $fork_called, 1, 'ld_daemon - setsid error';
- is $ld_exit_called, 1, 'ld_daemon - cannot become daemon';
-}
-{
- set_default();
- local $fork_return = 0;
- local $chdir_return = -1;
- eval { ld_daemon(); };
- is $fork_called, 2, 'ld_daemon - chdir error';
- is $ld_exit_called, 1, 'ld_daemon - cannot become daemon';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
- %main::HEALTH_CHECK = ();
- $health_check_called = 0;
- $fork_return = -1;
- $fork_called = 0;
- $ld_exit_called = 0;
-}
-sub override {
- *health_check = \&__health_check;
- *ld_log = \&__ld_log;
- *ld_exit = \&__ld_exit;
- *fork = \&__fork;
- *chdir = \&__chdir;
- *POSIX::setsid = \&__setsid;
-}
-sub __health_check {
- $health_check_called++;
-}
-sub __fork {
- $fork_called++;
- return $fork_return;
-}
-sub __ld_exit {
- $ld_exit_called++;
- die @_;
-}
-sub __setsid {
- return $setsid_return;
-}
-sub __chdir {
- return $chdir_return;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use subs qw(fork);
-use Test::More tests => 11;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our @check_func_args = ();
-our @check_func_returns = ();
-our @get_status_args = ();
-our @get_status_returns = ();
-our @get_ip_port_args = ();
-our @get_ip_port_returns = ();
-our @get_check_func_args = ();
-our @get_check_func_returns = ();
-our @service_set_args = ();
-our @service_set_returns = ();
-our @check_connect_args = ();
-our @check_connect_returns = ();
-our @sleep_and_check_signal_args = ();
-our @sleep_and_check_signal_returns = ();
-our $health_check_called = 0;
-#...............................................
-# test start
-# - health_check
-{
- set_default();
- eval {
- health_check();
- };
- is $@, "1\n", 'health_check - no virtual real list';
-}
-{
- set_default();
- local @get_status_returns = ();
- local @get_check_func_returns = ( \&check_func );
- my $v = {};
- my $r = {};
- eval {
- health_check([ [] ]);
- };
- is $@, "2\n", 'health_check - no virtual real';
-}
-{
- set_default();
- local @get_status_returns = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_check_func_returns = ( \&check_func );
- local @check_func_returns = ( $main::SERVICE_DOWN );
- local @sleep_and_check_signal_returns = ( 'halt' );
- local @service_set_args = ();
- my $v = {
- checktype => 'connect',
- checkcount => 1,
- retryinterval => 5,
- checkinterval => 8,
- };
- my $r = {};
- eval {
- health_check([ [$v, $r] ]);
- };
- is $@, "0\n", 'health_check - no virtual real';
- is_deeply \@service_set_args, [ [[$v,$r]], 'down' ], 'health_check - service set down';
-}
-{
- set_default();
- local @get_status_returns = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_check_func_returns = ( \&check_func );
- local @check_func_returns = ( $main::SERVICE_UP,
- $main::SERVICE_DOWN,
- $main::SERVICE_DOWN,
- $main::SERVICE_DOWN,
- );
- local @sleep_and_check_signal_returns = ( 'run',
- 'run',
- 'run',
- 'halt',
- );
- local @service_set_args = ();
- my $v = {
- checktype => 'connect',
- checkcount => 3,
- retryinterval => 5,
- checkinterval => 8,
- };
- my $r = {};
- eval {
- health_check([ [$v, $r] ]);
- };
- is $@, "0\n", 'health_check - no virtual real';
- is_deeply \@service_set_args, [ [[$v,$r]], 'up', [[$v,$r]], 'down' ], 'health_check - service set up and down';
- is_deeply \@sleep_and_check_signal_args, [8,1,5,1,5,1,8,1], 'health_check - sleep time';
-}
-{
- set_default();
- local @get_status_returns = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_check_func_returns = ( \&check_func );
- local @check_func_returns = ( $main::SERVICE_DOWN,
- $main::SERVICE_DOWN,
- $main::SERVICE_UP,
- $main::SERVICE_DOWN,
- );
- local @sleep_and_check_signal_returns = ( 'run',
- 'run',
- 'run',
- 'halt',
- );
- local @service_set_args = ();
- my $v = {
- checktype => 'connect',
- checkcount => 3,
- retryinterval => 5,
- checkinterval => 8,
- };
- my $r = {};
- eval {
- health_check([ [$v, $r] ]);
- };
- is $@, "0\n", 'health_check - no virtual real';
- is_deeply \@service_set_args, [ [[$v,$r]], 'up' ], 'health_check - service set up and down';
- is_deeply \@sleep_and_check_signal_args, [5,1,5,1,8,1,5,1], 'health_check - sleep time';
-}
-{
- set_default();
- local $main::PROC_STAT{parent_pid} = 100000;
- local @get_status_returns = ();
- local @get_ip_port_returns = ('ip:port');
- local @get_check_func_returns = ( \&check_func );
- local @check_func_returns = ( $main::SERVICE_DOWN );
- local @sleep_and_check_signal_returns = ( 'run' );
- local @service_set_args = ();
- my $v = {
- checktype => 'connect',
- checkcount => 3,
- retryinterval => 5,
- checkinterval => 8,
- };
- my $r = {};
- eval {
- health_check([ [$v, $r] ]);
- };
- is $@, "3\n", 'health_check - parent process is down';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub check_func {
- push @check_func_args, @_;
- return shift @check_func_returns;
-}
-sub set_default {
- $main::PROC_STAT{parent_pid} = $$;
- @get_status_args = ();
- @get_status_returns = ();
- @get_check_func_args = ();
- @get_check_func_returns = ();
- @get_ip_port_args = ();
- @get_ip_port_returns = ();
- @service_set_args = ();
- @service_set_returns = ();
- @check_connect_args = ();
- @check_connect_returns = ();
- $health_check_called = 0;
- @sleep_and_check_signal_args = ();
- @sleep_and_check_signal_returns = ();
-}
-sub override {
- *POSIX::_exit = \&__POSIX__exit;
- *get_status = \&__get_status;
- *get_check_func = \&__get_check_func;
- *service_set = \&__service_set;
- *check_connect = \&__check_connect;
- *sleep_and_check_signal = \&__sleep_and_check_signal;
- *ld_log = \&__ld_log;
-}
-sub __get_status {
- push @get_status_args, @_;
- return shift @get_status_returns;
-}
-sub __get_ip_port {
- push @get_ip_port_args, @_;
- return shift @get_ip_port_returns;
-}
-sub __get_check_func {
- push @get_check_func_args, @_;
- return shift @get_check_func_returns;
-}
-sub __service_set {
- push @service_set_args, @_;
- return shift @service_set_returns;
-}
-sub __check_connect {
- push @get_status_args, @_;
- return shift @get_status_returns;
-}
-sub __sleep_and_check_signal {
- push @sleep_and_check_signal_args, @_;
- return shift @sleep_and_check_signal_returns;
-}
-sub __POSIX__exit {
- die "$_[0]\n";
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 8;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-#...............................................
-# test start
-# - sleep_and_check_signal
-{
- set_default();
- my $sec = undef;
- my $child = 0;
- my $got = sleep_and_check_signal($sec, $child);
- is $got, 'halt', 'sleep_and_check_signal - sleep time is undef';
-}
-{
- set_default();
- my $sec = 'ten';
- my $child = 0;
- my $got = sleep_and_check_signal($sec, $child);
- is $got, 'halt', 'sleep_and_check_signal - sleep time is invalid';
-}
-{
- set_default();
- my $sec = 0;
- my $child = 0;
- my $got = sleep_and_check_signal($sec, $child);
- is $got, 'run', 'sleep_and_check_signal - sleep time is zero';
-}
-{
- set_default();
- my $sec = 10;
- my $child = 0;
- local $main::PROC_STAT{reload} = 1;
- my $got = sleep_and_check_signal($sec, $child);
- is $got, 'reload', 'sleep_and_check_signal - sleep parent and reload';
- is $main::PROC_STAT, undef, 'sleep_and_check_signal - reload flag off';
-}
-{
- set_default();
- my $sec = 10;
- my $child = 0;
- local $main::PROC_STAT{halt} = 1;
- my $got = sleep_and_check_signal($sec, $child);
- is $got, 'halt', 'sleep_and_check_signal - sleep parent and halt';
-}
-{
- set_default();
- my $sec = 10;
- my $child = 1;
- local $main::PROC_STAT{halt} = 1;
- my $got = sleep_and_check_signal($sec, $child);
- is $got, 'halt', 'sleep_and_check_signal - sleep child and halt';
-}
-{
- set_default();
- my $sec = 3;
- my $child = 1;
- local $main::PROC_STAT{reload} = 1;
- my $got = sleep_and_check_signal($sec, $child);
- is $got, 'run', 'sleep_and_check_signal - sleep child and ignore reload';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
- $main::CONFIG_FILE{path} = 'config';
-}
-sub override {
- *ld_log = \&__ld_log;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 34;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-#...............................................
-# test start
-# - get_check_func
-{
- set_default();
- my $got = get_check_func();
- is $got, \&main::check_off, 'get_check_func - virtual is undef';
-}
-{
- set_default();
- my $v = {};
- my $got = get_check_func($v);
- is $got, \&main::check_none, 'get_check_func - no checktype';
-}
-{
- set_default();
- my $v = {
- checktype => 'negotiate',
- service => 'http'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_http, 'get_check_func - negotiate http';
-}
-{
- set_default();
- my $v = {
- checktype => 'negotiate',
- service => 'https'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_http, 'get_check_func - negotiate https';
-}
-{
- set_default();
- my $v = {
- checktype => 'negotiate',
- service => 'pop'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_pop, 'get_check_func - negotiate pop';
-}
-{
- set_default();
- my $v = {
- checktype => 'negotiate',
- service => 'imap'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_imap, 'get_check_func - negotiate imap';
-}
-{
- set_default();
- my $v = {
- checktype => 'negotiate',
- service => 'smtp'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_smtp, 'get_check_func - negotiate smtp';
-}
-{
- set_default();
- my $v = {
- checktype => 'negotiate',
- service => 'ftp'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_ftp, 'get_check_func - negotiate ftp';
-}
-{
- set_default();
- my $v = {
- checktype => 'negotiate',
- service => 'ldap'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_ldap, 'get_check_func - negotiate ldap';
-}
-{
- set_default();
- my $v = {
- checktype => 'negotiate',
- service => 'nntp'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_nntp, 'get_check_func - negotiate nntp';
-}
-{
- set_default();
- my $v = {
- checktype => 'negotiate',
- service => 'dns'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_dns, 'get_check_func - negotiate dns';
-}
-{
- set_default();
- my $v = {
- checktype => 'negotiate',
- service => 'sip'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_sip, 'get_check_func - negotiate sip';
-}
-{
- set_default();
- my $v = {
- checktype => 'negotiate',
- service => 'mysql'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_mysql, 'get_check_func - negotiate mysql';
-}
-{
- set_default();
- my $v = {
- checktype => 'negotiate',
- service => 'pgsql'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_pgsql, 'get_check_func - negotiate pgsql';
-}
-{
- set_default();
- my $v = {
- checktype => 'negotiate',
- service => 'unknown'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_none, 'get_check_func - negotiate unknown';
-}
-TODO:{
- todo_skip 'should check closure.', 1 if 1;
- set_default();
- my $v = {
- checktype => 'combined',
- service => 'http'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_http, 'get_check_func - combined http';
-}
-TODO:{
- todo_skip 'should check closure.', 1 if 1;
- set_default();
- my $v = {
- checktype => 'combined',
- service => 'https'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_http, 'get_check_func - combined https';
-}
-TODO:{
- todo_skip 'should check closure.', 1 if 1;
- set_default();
- my $v = {
- checktype => 'combined',
- service => 'pop'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_pop, 'get_check_func - combined pop';
-}
-TODO:{
- todo_skip 'should check closure.', 1 if 1;
- set_default();
- my $v = {
- checktype => 'combined',
- service => 'imap'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_imap, 'get_check_func - combined imap';
-}
-TODO:{
- todo_skip 'should check closure.', 1 if 1;
- set_default();
- my $v = {
- checktype => 'combined',
- service => 'smtp'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_smtp, 'get_check_func - combined smtp';
-}
-TODO:{
- todo_skip 'should check closure.', 1 if 1;
- set_default();
- my $v = {
- checktype => 'combined',
- service => 'ftp'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_ftp, 'get_check_func - combined ftp';
-}
-TODO:{
- todo_skip 'should check closure.', 1 if 1;
- set_default();
- my $v = {
- checktype => 'combined',
- service => 'ldap'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_ldap, 'get_check_func - combined ldap';
-}
-TODO:{
- todo_skip 'should check closure.', 1 if 1;
- set_default();
- my $v = {
- checktype => 'combined',
- service => 'nntp'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_nntp, 'get_check_func - combined nntp';
-}
-TODO:{
- todo_skip 'should check closure.', 1 if 1;
- set_default();
- my $v = {
- checktype => 'combined',
- service => 'dns'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_dns, 'get_check_func - combined dns';
-}
-TODO:{
- todo_skip 'should check closure.', 1 if 1;
- set_default();
- my $v = {
- checktype => 'combined',
- service => 'sip'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_sip, 'get_check_func - combined sip';
-}
-TODO:{
- todo_skip 'should check closure.', 1 if 1;
- set_default();
- my $v = {
- checktype => 'combined',
- service => 'mysql'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_mysql, 'get_check_func - combined mysql';
-}
-TODO:{
- todo_skip 'should check closure.', 1 if 1;
- set_default();
- my $v = {
- checktype => 'combined',
- service => 'pgsql'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_pgsql, 'get_check_func - combined pgsql';
-}
-{
- set_default();
- my $v = {
- checktype => 'combined',
- service => 'unknown'
- };
- my $got = get_check_func($v);
- is $got, \&main::check_none, 'get_check_func - combined unknown';
-}
-{
- set_default();
- my $v = {
- checktype => 'connect',
- };
- my $got = get_check_func($v);
- is $got, \&main::check_ping, 'get_check_func - connect, but no protocol';
-}
-{
- set_default();
- my $v = {
- checktype => 'connect',
- protocol => 'udp',
- };
- my $got = get_check_func($v);
- is $got, \&main::check_ping, 'get_check_func - connect, protocol is not tcp';
-}
-{
- set_default();
- my $v = {
- checktype => 'connect',
- protocol => 'tcp',
- };
- my $got = get_check_func($v);
- is $got, \&main::check_connect, 'get_check_func - connect, protocol is tcp';
-}
-{
- set_default();
- my $v = {
- checktype => 'ping',
- };
- my $got = get_check_func($v);
- is $got, \&main::check_ping, 'get_check_func - ping';
-}
-{
- set_default();
- my $v = {
- checktype => 'off',
- };
- my $got = get_check_func($v);
- is $got, \&main::check_off, 'get_check_func - off';
-}
-{
- set_default();
- my $v = {
- checktype => 'on',
- };
- my $got = get_check_func($v);
- is $got, \&main::check_on, 'get_check_func - on';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 23;
-use IO::Socket::INET;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-#...............................................
-# test start
-# - check_http
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n");
- set_default();
- my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'GET'};
- my $r = {url => "http://localhost:$port/", fail_counts => 0,
- server => {ip => '127.0.0.1', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_UP, 'check_http - GET ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n");
- set_default();
- my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'HEAD'};
- my $r = {url => "http://localhost:$port/", fail_counts => 0,
- server => {ip => '127.0.0.1', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_UP, 'check_http - HEAD ok';
- close_child($pid);
- close $sock;
-}
-{
- set_default();
- my $port = 63334;
- my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'HEAD'};
- my $r = {url => "http//localhost:$port/", fail_counts => 0,
- server => {ip => '127.0.0.1', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_http - URL error';
-}
-{
- set_default();
- my $port = 63334;
- my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'HEAD'};
- my $r = {url => "http://localhost:$port/", fail_counts => 0,
- server => {ip => '127.0.0.1', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_http - cannot connect';
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n", 2);
- set_default();
- my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'HEAD'};
- my $r = {url => "http://localhost:$port/", fail_counts => 0,
- server => {ip => '127.0.0.1', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_http - timeout';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "HTTP/1.0 500 Internal Server Error\r\n\r\n");
- set_default();
- my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'HEAD'};
- my $r = {url => "http://localhost:$port/", fail_counts => 0,
- server => {ip => '127.0.0.1', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_http - error response';
- close_child($pid);
- close $sock;
-}
-# https
-TODO: {
-#SKIP: {
- todo_skip 'not ready https response', 1;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n");
- set_default();
- my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'GET'};
- my $r = {url => "https://localhost:$port/", fail_counts => 0,
- server => {ip => '127.0.0.1', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_UP, 'check_http - GET ok (https)';
- close_child($pid);
- close $sock;
-}
-TODO: {
-#SKIP: {
- todo_skip 'not ready https response', 1;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n");
- set_default();
- my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'HEAD'};
- my $r = {url => "https://localhost:$port/", fail_counts => 0,
- server => {ip => '127.0.0.1', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_UP, 'check_http - HEAD ok (https)';
- close_child($pid);
- close $sock;
-}
-{
- set_default();
- my $port = 63334;
- my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'HEAD'};
- my $r = {url => "https//localhost:$port/", fail_counts => 0,
- server => {ip => '127.0.0.1', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_http - URL error (https)';
-}
-{
- set_default();
- my $port = 63334;
- my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'HEAD'};
- my $r = {url => "https://localhost:$port/", fail_counts => 0,
- server => {ip => '127.0.0.1', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_http - cannot connect (https)';
-}
-TODO: {
-#SKIP: {
- todo_skip 'not ready https response', 1;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n", 2);
- set_default();
- my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'HEAD'};
- my $r = {url => "https://localhost:$port/", fail_counts => 0,
- server => {ip => '127.0.0.1', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_http - timeout (https)';
- close_child($pid);
- close $sock;
-}
-TODO: {
-#SKIP: {
- todo_skip 'not ready https response', 1;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "HTTP/1.0 500 Internal Server Error\r\n\r\n");
- set_default();
- my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'HEAD'};
- my $r = {url => "https://localhost:$port/", fail_counts => 0,
- server => {ip => '127.0.0.1', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_http - error response (https)';
- close_child($pid);
- close $sock;
-}
-#############################################################################
-### IPv6 Test
-SKIP: {
- my $port = 63334;
- my $sock = create_sock6($port);
- skip 'cannot create socket6', 1 if !$sock;
- my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n");
- set_default();
- my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'GET'};
- my $r = {url => "http://localhost:$port/", fail_counts => 0,
- server => {ip => '[::1]', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_UP, 'check_http IPv6 - GET ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock6($port);
- skip 'cannot create socket6', 1 if !$sock;
- my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n");
- set_default();
- my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'HEAD'};
- my $r = {url => "http://localhost:$port/", fail_counts => 0,
- server => {ip => '[::1]', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_UP, 'check_http IPv6 - HEAD ok';
- close_child($pid);
- close $sock;
-}
-{
- set_default();
- my $port = 63334;
- my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'HEAD'};
- my $r = {url => "http//localhost:$port/", fail_counts => 0,
- server => {ip => '[::1]', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_http IPv6 - URL error';
-}
-{
- set_default();
- my $port = 63334;
- my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'HEAD'};
- my $r = {url => "http://localhost:$port/", fail_counts => 0,
- server => {ip => '[::1]', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_http IPv6 - cannot connect';
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock6($port);
- skip 'cannot create socket6', 1 if !$sock;
- my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n", 2);
- set_default();
- my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'HEAD'};
- my $r = {url => "http://localhost:$port/", fail_counts => 0,
- server => {ip => '[::1]', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_http IPv6 - timeout';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock6($port);
- skip 'cannot create socket6', 1 if !$sock;
- my $pid = prepare_child($sock, "HTTP/1.0 500 Internal Server Error\r\n\r\n");
- set_default();
- my $v = {negotiatetimeout => 1, service => 'http', httpmethod => 'HEAD'};
- my $r = {url => "http://localhost:$port/", fail_counts => 0,
- server => {ip => '[::1]', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_http IPv6 - error response';
- close_child($pid);
- close $sock;
-}
-# https
-TODO: {
-#SKIP: {
- todo_skip 'not ready https response', 1;
- my $port = 63334;
- my $sock = create_sock6($port);
- skip 'cannot create socket6', 1 if !$sock;
- my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n");
- set_default();
- my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'GET'};
- my $r = {url => "https://localhost:$port/", fail_counts => 0,
- server => {ip => '[::1]', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_UP, 'check_http IPv6 - GET ok (https)';
- close_child($pid);
- close $sock;
-}
-TODO: {
-#SKIP: {
- todo_skip 'not ready https response', 1;
- my $port = 63334;
- my $sock = create_sock6($port);
- skip 'cannot create socket6', 1 if !$sock;
- my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n");
- set_default();
- my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'HEAD'};
- my $r = {url => "https://localhost:$port/", fail_counts => 0,
- server => {ip => '[::1]', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_UP, 'check_http IPv6 - HEAD ok (https)';
- close_child($pid);
- close $sock;
-}
-{
- set_default();
- my $port = 63334;
- my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'HEAD'};
- my $r = {url => "https//localhost:$port/", fail_counts => 0,
- server => {ip => '[::1]', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_http IPv6 - URL error (https)';
-}
-{
- set_default();
- my $port = 63334;
- my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'HEAD'};
- my $r = {url => "https://localhost:$port/", fail_counts => 0,
- server => {ip => '[::1]', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_http IPv6 - cannot connect (https)';
-}
-TODO: {
-#SKIP: {
- todo_skip 'not ready https response', 1;
- my $port = 63334;
- my $sock = create_sock6($port);
- skip 'cannot create socket6', 1 if !$sock;
- my $pid = prepare_child($sock, "HTTP/1.0 200 OK\r\n\r\n", 2);
- set_default();
- my $v = {negotiatetimeout => 1, service => 'https', httpmethod => 'HEAD'};
- my $r = {url => "https://localhost:$port/", fail_counts => 0,
- server => {ip => '127.0.0.1', port => $port }};
- my $got = check_http($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_http IPv6 - timeout (https)';
- close_child($pid);
- close $sock;
-}
-
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub create_sock {
- my $port = shift;
- my $sock = IO::Socket::INET->new(
- Listen => 5,
- LocalAddr => 'localhost',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => 'tcp');
- return $sock;
-}
-sub create_sock6 {
- my $port = shift;
- my $sock = IO::Socket::INET->new(
- Listen => 5,
- LocalAddr => '::1',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => 'tcp');
- return $sock;
-}
-sub prepare_child {
- my $sock = shift;
- my $res = shift;
- my $sleep = shift;
- my $pid = fork();
- if ($pid == 0) {
- my $s = $sock->accept;
- <$s>;
- if ($sleep) { sleep $sleep; }
- print $s $res;
- close $s;
- exit;
- }
- return $pid;
-}
-sub close_child {
- my $pid = shift;
- kill 15, $pid;
- waitpid $pid, 0;
-}
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
- *get_status = \&__get_status;
-}
-sub __get_status {
- return $main::SERVICE_UP;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 5;
-use IO::Socket::INET;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-#...............................................
-# test start
-# - check_smtp
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "220\n250\n");
- set_default();
- my $v = {negotiatetimeout => 3};
- my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
- my $got = check_smtp($v, $r);
- is $got, $main::SERVICE_UP, 'check_smtp - connect ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "220\n250\n");
- set_default();
- my $v = {negotiatetimeout => 3, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_smtp($v, $r);
- is $got, $main::SERVICE_UP, 'check_smtp - checkport connect ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "420\n");
- set_default();
- my $v = {negotiatetimeout => 1, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_smtp($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_smtp - error response';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "220\n250\n", 2);
- set_default();
- my $v = {negotiatetimeout => 1, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_smtp($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_smtp - timeout';
- close_child($pid);
- close $sock;
-}
-{
- my $port = 63334;
- set_default();
- my $v = {negotiatetimeout => 1, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_smtp($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_smtp - connect error';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub create_sock {
- my $port = shift;
- my $sock = IO::Socket::INET->new(
- Listen => 5,
- LocalAddr => 'localhost',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => 'tcp');
- return $sock;
-}
-sub prepare_child {
- my $sock = shift;
- my $res = shift;
- my $sleep = shift;
- my $pid = fork();
- if ($pid == 0) {
- my $s = $sock->accept;
- if ($sleep) { sleep $sleep; }
- print $s $res;
- close $s;
- exit;
- }
- return $pid;
-}
-sub close_child {
- my $pid = shift;
- kill 15, $pid;
- waitpid $pid, 0;
-}
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
- *get_status = \&__get_status;
-}
-sub __get_status {
- return $main::SERVICE_UP;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 6;
-use IO::Socket::INET;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-#...............................................
-# test start
-# - check_pop
-#+OK ready <24814.1224854220@HOST>
-#USER USERNAME
-#+OK Password required for USERNAME.
-#PASS PASSWORD
-#+OK USERNAME has 0 visible messages (0 hidden) in 0 octets.
-#-ERR [AUTH] Password supplied for "USERNAME" is incorrect.
-#QUIT
-#+OK Pop server at HOST signing off.
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "+OK ready\n+OK Password\n+OK user has 0 visible messages (0 hidden) in 0 octets.\n");
- set_default();
- my $v = {negotiatetimeout => 3};
- my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
- my $got = check_pop($v, $r);
- is $got, $main::SERVICE_UP, 'check_pop - connect ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "+OK ready\n+OK Password\n+OK user has 0 visible messages (0 hidden) in 0 octets.\n");
- set_default();
- my $v = {negotiatetimeout => 3, checkport => $port};
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_pop($v, $r);
- is $got, $main::SERVICE_UP, 'check_pop - checkport connect ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "+OK ready\n+OK Password\n+OK user has 0 visible messages (0 hidden) in 0 octets.\n");
- set_default();
- my $v = {negotiatetimeout => 3, login => 'foo', passwd => 'bar'};
- my $r = { server => {ip => '127.0.0.1', port => $port } , fail_counts => 0 };
- my $got = check_pop($v, $r);
- is $got, $main::SERVICE_UP, 'check_pop - login ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "+OK ready\n+OK Password\n+OK user has 0 visible messages (0 hidden) in 0 octets.\n", 2);
- set_default();
- my $v = {negotiatetimeout => 1, login => 'foo', passwd => 'bar'};
- my $r = { server => {ip => '127.0.0.1', port => $port } , fail_counts => 0 };
- my $got = check_pop($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_pop - timeout';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, "+OK ready\n+OK Password\n-ERR\n");
- set_default();
- my $v = {negotiatetimeout => 1, login => 'foo', passwd => 'bar'};
- my $r = { server => {ip => '127.0.0.1', port => $port } , fail_counts => 0 };
- my $got = check_pop($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_pop - response error';
- close_child($pid);
- close $sock;
-}
-{
- my $port = 63334;
- set_default();
- my $v = {negotiatetimeout => 1, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_pop($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_pop - connect error';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub create_sock {
- my $port = shift;
- my $sock = IO::Socket::INET->new(
- Listen => 5,
- LocalAddr => 'localhost',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => 'tcp');
- return $sock;
-}
-sub prepare_child {
- my $sock = shift;
- my $res = shift;
- my $sleep = shift;
- my $pid = fork();
- if ($pid == 0) {
- my $s = $sock->accept;
- if ($sleep) { sleep $sleep; }
- print $s $res;
- close $s;
- exit;
- }
- return $pid;
-}
-sub close_child {
- my $pid = shift;
- kill 15, $pid;
- waitpid $pid, 0;
-}
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
- *get_status = \&__get_status;
-}
-sub __get_status {
- return $main::SERVICE_UP;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 6;
-use IO::Socket::INET;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our $module_error = 0;
-eval { require Mail::IMAPClient; };
-if ($@) {
- $module_error = 1;
-}
-
-#...............................................
-# test start
-# - check_imap
-SKIP: {
- skip q{Can't locate Mail/IMAPClient.pm in @INC}, 1 if $module_error;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["* OK IMAP4 ready\n", "* BYE\n1 OK completed\n"]);
- set_default();
- my $v = { negotiatetimeout => 3, };
- my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
- my $got = check_imap($v, $r);
- is $got, $main::SERVICE_UP, 'check_imap - connect ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate Mail/IMAPClient.pm in @INC}, 1 if $module_error;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["* OK IMAP4 ready\n", "* BYE\n1 OK completed\n"]);
- set_default();
- my $v = { negotiatetimeout => 3, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_imap($v, $r);
- is $got, $main::SERVICE_UP, 'check_imap - checkport connect ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate Mail/IMAPClient.pm in @INC}, 1 if $module_error;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["* OK IMAP4 ready\n", "1 OK LOGIN completed\n", "* BYE\n2 OK completed\n"]);
- set_default();
- my $v = {negotiatetimeout => 3, login => 'foo', passwd => 'bar'};
- my $r = { server => {ip => '127.0.0.1', port => $port } , fail_counts => 0 };
- my $got = check_imap($v, $r);
- is $got, $main::SERVICE_UP, 'check_imap - login ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate Mail/IMAPClient.pm in @INC}, 1 if $module_error;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["* OK IMAP4 ready\n", "1 OK LOGIN completed\n", "* BYE\n2 OK completed\n"], 5);
- set_default();
- my $v = {negotiatetimeout => 1, login => 'foo', passwd => 'bar'};
- my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
- my $got = check_imap($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_imap - timeout';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate Mail/IMAPClient.pm in @INC}, 1 if $module_error;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["* OK IMAP4 ready\n", "1 NO LOGIN Error\n", "* BYE\n2 OK completed\n"]);
- set_default();
- my $v = {negotiatetimeout => 1, login => 'foo', passwd => 'bar'};
- my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
- my $got = check_imap($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_imap - response error';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate Mail/IMAPClient.pm in @INC}, 1 if $module_error;
- my $port = 63334;
- set_default();
- my $v = {negotiatetimeout => 1, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_imap($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_imap - connect error';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub create_sock {
- my $port = shift;
- my $sock = IO::Socket::INET->new(
- Listen => 5,
- LocalAddr => 'localhost',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => 'tcp');
- return $sock;
-}
-sub prepare_child {
- my $sock = shift;
- my $res = shift;
- my $sleep = shift;
- my $pid = fork();
- if ($pid == 0) {
- my $s = $sock->accept;
- if ($sleep) { sleep $sleep; }
- for (@$res) {
- print $s $_;
- <$s>;
- }
- close $s;
- exit;
- }
- return $pid;
-}
-sub close_child {
- my $pid = shift;
- kill 15, $pid;
- waitpid $pid, 0;
-}
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
- *get_status = \&__get_status;
-}
-sub __get_status {
- return $main::SERVICE_UP;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 7;
-use IO::Socket::INET;
-use IO::Handle;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our $module_error = 0;
-eval { require Net::LDAP; };
-if ($@) {
- $module_error = 1;
-}
-
-#...............................................
-# test start
-# - check_ldap
-SKIP: {
- skip q{Can't locate Net/LDAP.pm in @INC}, 1 if $module_error;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- # 30 0C 02 01 01 61 07 0A 01 00 04 00 04 00 __ __ 0....a........
- my $normal_response = pack 'H*', '300C02010161070A010004000400';
- my $pid = prepare_child($sock, [$normal_response]);
- set_default();
- my $v = { negotiatetimeout => 3, };
- my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
- my $got = check_ldap($v, $r);
- is $got, $main::SERVICE_UP, 'check_ldap - connect ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate Net/LDAP.pm in @INC}, 1 if $module_error;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- # 30 0C 02 01 01 61 07 0A 01 00 04 00 04 00 __ __ 0....a........
- my $normal_response = pack 'H*', '300C02010161070A010004000400';
- my $pid = prepare_child($sock, [$normal_response]);
- set_default();
- my $v = { negotiatetimeout => 3, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_ldap($v, $r);
- is $got, $main::SERVICE_UP, 'check_ldap - checkport connect ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate Net/LDAP.pm in @INC}, 1 if $module_error;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- # 30 0C 02 01 01 61 07 0A 01 00 04 00 04 00 __ __ 0....a........
- my $normal_response = pack 'H*', '300C02010161070A010004000400';
- # 30 64 02 01 02 64 5F 04 11 64 63 3D 65 78 61 6D 0d...d_..dc=exam
- # 70 6C 65 2C 64 63 3D 63 6F 6D 30 4A 30 27 04 0B ple,dc=com0J0'..
- # 6F 62 6A 65 63 74 43 6C 61 73 73 31 18 04 08 64 objectClass1...d
- # 63 4F 62 6A 65 63 74 04 0C 6F 72 67 61 6E 69 7A cObject..organiz
- # 61 74 69 6F 6E 30 0F 04 02 64 63 31 09 04 07 65 ation0...dc1...e
- # 78 61 6D 70 6C 65 30 0E 04 01 6F 31 09 04 07 65 xample0...o1...e
- # 78 61 6D 70 6C 65 __ __ __ __ __ __ __ __ __ __ xample
- my $search_response = pack 'H*',
- '3064020102645F041164633D6578616D706C652C64633D636F6D304A3027040B' .
- '6F626A656374436C6173733118040864634F626A656374040C6F7267616E697A' .
- '6174696F6E300F04026463310904076578616D706C65300E04016F3109040765' .
- '78616D706C65';
- my $pid = prepare_child($sock, [$normal_response, $search_response]);
- set_default();
- my $v = {negotiatetimeout => 3, };
- my $r = { server => {ip => '127.0.0.1', port => $port}, request => 'dc=example,dc=com' , fail_counts => 0 };
- my $got = check_ldap($v, $r);
- is $got, $main::SERVICE_UP, 'check_ldap - search ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate Net/LDAP.pm in @INC}, 1 if $module_error;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- # 30 0C 02 01 01 61 07 0A 01 00 04 00 04 00 __ __ 0....a........
- my $normal_response = pack 'H*', '300C02010161070A010004000400';
- # 30 64 02 01 02 64 5F 04 11 64 63 3D 65 78 61 6D 0d...d_..dc=exam
- # 70 6C 65 2C 64 63 3D 63 6F 6D 30 4A 30 27 04 0B ple,dc=com0J0'..
- # 6F 62 6A 65 63 74 43 6C 61 73 73 31 18 04 08 64 objectClass1...d
- # 63 4F 62 6A 65 63 74 04 0C 6F 72 67 61 6E 69 7A cObject..organiz
- # 61 74 69 6F 6E 30 0F 04 02 64 63 31 09 04 07 65 ation0...dc1...e
- # 78 61 6D 70 6C 65 30 0E 04 01 6F 31 09 04 07 65 xample0...o1...e
- # 78 61 6D 70 6C 65 __ __ __ __ __ __ __ __ __ __ xample
- my $search_response = pack 'H*',
- '3064020102645F041164633D6578616D706C652C64633D636F6D304A3027040B' .
- '6F626A656374436C6173733118040864634F626A656374040C6F7267616E697A' .
- '6174696F6E300F04026463310904076578616D706C65300E04016F3109040765' .
- '78616D706C65';
- my $pid = prepare_child($sock, [$normal_response, $search_response]);
- set_default();
- my $v = {negotiatetimeout => 3};
- my $r = { server => {ip => '127.0.0.1', port => $port}, request => 'dc=example,dc=com', receive => 'example' , fail_counts => 0 };
- my $got = check_ldap($v, $r);
- is $got, $main::SERVICE_UP, 'check_ldap - response check ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate Net/LDAP.pm in @INC}, 1 if $module_error;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- # 30 0C 02 01 01 61 07 0A 01 00 04 00 04 00 __ __ 0....a........
- my $normal_response = pack 'H*', '300C02010161070A010004000400';
- my $pid = prepare_child($sock, [$normal_response], 2);
- set_default();
- my $v = {negotiatetimeout => 1};
- my $r = { server => {ip => '127.0.0.1', port => $port}, request => 'dc=example,dc=com', receive => 'example' , fail_counts => 0 };
- my $got = check_ldap($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_ldap - timeout';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate Net/LDAP.pm in @INC}, 1 if $module_error;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- # 30 0C 02 01 01 61 07 0A 01 00 04 00 04 00 __ __ 0....a........
- my $normal_response = pack 'H*', '300C02010161070A010004000400';
- # 30 64 02 01 02 64 5F 04 11 64 63 3D 65 78 61 6D 0d...d_..dc=exam
- # 70 6C 65 2C 64 63 3D 63 6F 6D 30 4A 30 27 04 0B ple,dc=com0J0'..
- # 6F 62 6A 65 63 74 43 6C 61 73 73 31 18 04 08 64 objectClass1...d
- # 63 4F 62 6A 65 63 74 04 0C 6F 72 67 61 6E 69 7A cObject..organiz
- # 61 74 69 6F 6E 30 0F 04 02 64 63 31 09 04 07 65 ation0...dc1...e
- # 78 61 6D 70 6C 65 30 0E 04 01 6F 31 09 04 07 65 xample0...o1...e
- # 78 61 6D 70 6C 65 __ __ __ __ __ __ __ __ __ __ xample
- my $search_response = pack 'H*',
- '3064020102645F041164633D6578616D706C652C64633D636F6D304A3027040B' .
- '6F626A656374436C6173733118040864634F626A656374040C6F7267616E697A' .
- '6174696F6E300F04026463310904076578616D706C65300E04016F3109040765' .
- '78616D706C65';
- my $pid = prepare_child($sock, [$normal_response, $search_response]);
- set_default();
- my $v = {negotiatetimeout => 3};
- my $r = { server => {ip => '127.0.0.1', port => $port}, request => 'dc=example,dc=com', receive => 'foo' , fail_counts => 0 };
- my $got = check_ldap($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_ldap - response error';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate Net/LDAP.pm in @INC}, 1 if $module_error;
- my $port = 63334;
- set_default();
- my $v = {negotiatetimeout => 1, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_ldap($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_ldap - connect error';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub create_sock {
- my $port = shift;
- my $sock = IO::Socket::INET->new(
- Listen => 5,
- LocalAddr => 'localhost',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => 'tcp');
- return $sock;
-}
-sub prepare_child {
- my $sock = shift;
- my $res = shift;
- my $sleep = shift;
- my $pid = fork();
- if ($pid == 0) {
- my $s = $sock->accept;
- $s->autoflush(1);
- if ($sleep) { sleep $sleep; }
- for my $response (@$res) {
- my $length;
- read $s, $length, 1;
- read $s, $length, 1;
- $length = unpack('C', $length);
- #print "read length: $length\n";
- my $req;
- read $s, $req, $length;
- #print "read: ", unpack('H*', $req), "\n";
- my $num = substr $req, 2, 1;
- $response =~ s/^(....)./$1$num/;
- print $s $response;
- }
- close $s;
- exit;
- }
- return $pid;
-}
-sub close_child {
- my $pid = shift;
- kill 15, $pid;
- waitpid $pid, 0;
-}
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
- *get_status = \&__get_status;
-}
-sub __get_status {
- return $main::SERVICE_UP;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 9;
-use IO::Socket::INET;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-#...............................................
-# test start
-# - check_nntp
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["200\n"]);
- set_default();
- my $v = { negotiatetimeout => 3};
- my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
- my $got = check_nntp($v, $r);
- is $got, $main::SERVICE_UP, 'check_nntp - response ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["200\n"]);
- set_default();
- my $v = { negotiatetimeout => 3, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_nntp($v, $r);
- is $got, $main::SERVICE_UP, 'check_nntp - checkport response ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["200\n"], 2);
- set_default();
- my $v = {negotiatetimeout => 1};
- my $r = { server => {ip => '127.0.0.1', port => $port } , fail_counts => 0 };
- my $got = check_nntp($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_nntp - timeout';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["500\n"]);
- set_default();
- my $v = {negotiatetimeout => 1};
- my $r = { server => {ip => '127.0.0.1', port => $port } , fail_counts => 0 };
- my $got = check_nntp($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_nntp - response error';
- close_child($pid);
- close $sock;
-}
-{
- my $port = 63334;
- set_default();
- my $v = {negotiatetimeout => 1, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_nntp($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_nntp - connect error';
-}
-###################################
-### IPv6 TestPattern
-SKIP: {
- my $port = 63334;
- my $sock = create_sock6($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["200\n"]);
- set_default();
- my $v = { negotiatetimeout => 3};
- my $r = { server => {ip => '[::1]', port => $port }, fail_counts => 0 };
- my $got = check_nntp($v, $r);
- is $got, $main::SERVICE_UP, 'check_nntp - IPv6 - response ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock6($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["200\n"]);
- set_default();
- my $v = { negotiatetimeout => 3, checkport => $port };
- my $r = { server => {ip => '[::1]', port => 10000 }, fail_counts => 0 };
- my $got = check_nntp($v, $r);
- is $got, $main::SERVICE_UP, 'check_nntp - IPv6 - checkport response ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock6($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["200\n"], 2);
- set_default();
- my $v = {negotiatetimeout => 1};
- my $r = { server => {ip => '[::1]', port => $port } , fail_counts => 0 };
- my $got = check_nntp($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_nntp - IPv6 - timeout';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock6($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["500\n"]);
- set_default();
- my $v = {negotiatetimeout => 1};
- my $r = { server => {ip => '[::1]', port => $port } , fail_counts => 0 };
- my $got = check_nntp($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_nntp - IPv6 - response error';
- close_child($pid);
- close $sock;
-}
-
-
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub create_sock {
- my $port = shift;
- my $sock = IO::Socket::INET->new(
- Listen => 5,
- LocalAddr => 'localhost',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => 'tcp');
- return $sock;
-}
-
-sub create_sock6 {
- my $port = shift;
- my $sock = IO::Socket::INET6->new(
- Listen => 5,
- LocalAddr => '::1',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => 'tcp');
- return $sock;
-}
-
-sub prepare_child {
- my $sock = shift;
- my $res = shift;
- my $sleep = shift;
- my $pid = fork();
- if ($pid == 0) {
- my $s = $sock->accept;
- if ($sleep) { sleep $sleep; }
- for (@$res) {
- print $s $_;
- <$s>;
- }
- close $s;
- exit;
- }
- return $pid;
-}
-sub close_child {
- my $pid = shift;
- kill 15, $pid;
- waitpid $pid, 0;
-}
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
- *get_status = \&__get_status;
-}
-sub __get_status {
- return $main::SERVICE_UP;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 14;
-use IO::Socket::INET;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our $dbi_error = 0;
-eval { require DBI; };
-if ($@) {
- $dbi_error = 1;
-}
-our $pg_error = 0;
-eval { require DBD::Pg; };
-if ($@) {
- $pg_error = 1;
-}
-our $mysql_error = 0;
-eval { require DBD::mysql; };
-if ($@) {
- $mysql_error = 1;
-}
-
-#...............................................
-# test start
-# - check_sql
-# - check_mysql
-TODO: {
- todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
- todo_skip q{Can't locate DBD/mysql.pm in @INC}, 1 if $mysql_error;
- todo_skip 'not ready mysql response', 1;
-#SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $response = ''; # TODO create mysql response
- my $pid = prepare_child($sock, [$response]);
- set_default();
- my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
- my $got = check_mysql($v, $r);
- is $got, $main::SERVICE_UP, 'check_mysql - connect ok';
- close_child($pid);
- close $sock;
-}
-TODO: {
- todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
- todo_skip q{Can't locate DBD/mysql.pm in @INC}, 1 if $mysql_error;
- todo_skip 'not ready mysql response', 1;
-#SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $response = ''; # TODO create mysql response
- my $pid = prepare_child($sock, [$response]);
- set_default();
- my $v = { server => {ip => '127.0.0.1'}, checkport => $port, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_mysql($v, $r);
- is $got, $main::SERVICE_UP, 'check_mysql - checkport connect ok';
- close_child($pid);
- close $sock;
-}
-TODO: {
- todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
- todo_skip q{Can't locate DBD/mysql.pm in @INC}, 1 if $mysql_error;
- todo_skip 'not ready mysql response', 1;
-#SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $response = ''; # TODO create mysql response
- my $query_response = ''; # TODO create mysql query response
- my $pid = prepare_child($sock, [$response, $query_response]);
- set_default();
- my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', fail_counts => 0 };
- my $got = check_mysql($v, $r);
- is $got, $main::SERVICE_UP, 'check_mysql - request ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
- skip q{Can't locate DBD/mysql.pm in @INC}, 1 if $mysql_error;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $response = ''; # TODO create mysql response
- my $pid = prepare_child($sock, [$response], 5);
- set_default();
- my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 1, login => 'postgres', passwd => '', database => 'template1' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', fail_counts => 0 };
- my $got = check_mysql($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_mysql - timeout';
- close_child($pid);
- close $sock;
-}
-TODO: {
- todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
- todo_skip q{Can't locate DBD/mysql.pm in @INC}, 1 if $mysql_error;
- todo_skip 'not ready mysql response', 1;
-#SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $response = ''; # TODO create mysql response
- my $query_response = ''; # TODO create mysql query response (3rows)
- my $pid = prepare_child($sock, [$response, $query_response]);
- set_default();
- my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', receive => 3, fail_counts => 0 };
- my $got = check_mysql($v, $r);
- is $got, $main::SERVICE_UP, 'check_mysql - receive ok';
- close_child($pid);
- close $sock;
-}
-TODO: {
- todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
- todo_skip q{Can't locate DBD/mysql.pm in @INC}, 1 if $mysql_error;
- todo_skip 'not ready mysql response', 1;
-#SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $response = ''; # TODO create mysql response
- my $query_response = ''; # TODO create mysql query response (3rows)
- my $pid = prepare_child($sock, [$response, $query_response]);
- set_default();
- my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', receive => 5, fail_counts => 0 };
- my $got = check_mysql($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_mysql - receive error';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
- skip q{Can't locate DBD/mysql.pm in @INC}, 1 if $mysql_error;
- my $port = 63334;
- set_default();
- my $v = {negotiatetimeout => 1, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_mysql($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_mysql - connect error';
-}
-# - check_pgsql
-TODO: {
- todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
- todo_skip q{Can't locate DBD/Pg.pm in @INC}, 1 if $pg_error;
- todo_skip 'not ready pgsql response', 1;
-#SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $response = ''; # TODO create pgsql response
- my $pid = prepare_child($sock, [$response]);
- set_default();
- my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
- my $got = check_pgsql($v, $r);
- is $got, $main::SERVICE_UP, 'check_pgsql - connect ok';
- close_child($pid);
- close $sock;
-}
-TODO: {
- todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
- todo_skip q{Can't locate DBD/Pg.pm in @INC}, 1 if $pg_error;
- todo_skip 'not ready pgsql response', 1;
-#SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $response = ''; # TODO create pgsql response
- my $pid = prepare_child($sock, [$response]);
- set_default();
- my $v = { server => {ip => '127.0.0.1'}, checkport => $port, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_pgsql($v, $r);
- is $got, $main::SERVICE_UP, 'check_pgsql - checkport connect ok';
- close_child($pid);
- close $sock;
-}
-TODO: {
- todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
- todo_skip q{Can't locate DBD/Pg.pm in @INC}, 1 if $pg_error;
- todo_skip 'not ready pgsql response', 1;
-#SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $response = ''; # TODO create pgsql response
- my $query_response = ''; # TODO create pgsql query response
- my $pid = prepare_child($sock, [$response, $query_response]);
- set_default();
- my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', fail_counts => 0 };
- my $got = check_pgsql($v, $r);
- is $got, $main::SERVICE_UP, 'check_pgsql - request ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
- skip q{Can't locate DBD/Pg.pm in @INC}, 1 if $pg_error;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $response = ''; # TODO create pgsql response
- my $pid = prepare_child($sock, [$response], 5);
- set_default();
- my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 1, login => 'postgres', passwd => '', database => 'template1' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', fail_counts => 0 };
- my $got = check_pgsql($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_pgsql - timeout';
- close_child($pid);
- close $sock;
-}
-TODO: {
- todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
- todo_skip q{Can't locate DBD/Pg.pm in @INC}, 1 if $pg_error;
- todo_skip 'not ready pgsql response', 1;
-#SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $response = ''; # TODO create pgsql response
- my $query_response = ''; # TODO create pgsql query response (3rows)
- my $pid = prepare_child($sock, [$response, $query_response]);
- set_default();
- my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', receive => 3, fail_counts => 0 };
- my $got = check_pgsql($v, $r);
- is $got, $main::SERVICE_UP, 'check_pgsql - receive ok';
- close_child($pid);
- close $sock;
-}
-TODO: {
- todo_skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
- todo_skip q{Can't locate DBD/Pg.pm in @INC}, 1 if $pg_error;
- todo_skip 'not ready pgsql response', 1;
-#SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $response = ''; # TODO create pgsql response
- my $query_response = ''; # TODO create pgsql query response (3rows)
- my $pid = prepare_child($sock, [$response, $query_response]);
- set_default();
- my $v = { server => {ip => '127.0.0.1'}, negotiatetimeout => 3, login => 'postgres', passwd => '', database => 'template1' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'SELECT * from foo', receive => 5, fail_counts => 0 };
- my $got = check_pgsql($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_pgsql - receive error';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate DBI.pm in @INC}, 1 if $dbi_error;
- skip q{Can't locate DBD/Pg.pm in @INC}, 1 if $pg_error;
- my $port = 63334;
- set_default();
- my $v = {negotiatetimeout => 1, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_pgsql($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_pgsql - connect error';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub create_sock {
- my $port = shift;
- my $sock = IO::Socket::INET->new(
- Listen => 5,
- LocalAddr => 'localhost',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => 'tcp');
- return $sock;
-}
-sub prepare_child {
- my $sock = shift;
- my $res = shift;
- my $sleep = shift;
- my $pid = fork();
- if ($pid == 0) {
- my $s = $sock->accept;
- if ($sleep) { sleep $sleep; }
- for (@$res) {
- print $s $_;
-# <$s>;
- }
- close $s;
- exit;
- }
- return $pid;
-}
-sub close_child {
- my $pid = shift;
- kill 15, $pid;
- waitpid $pid, 0;
-}
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
- *get_status = \&__get_status;
-}
-sub __get_status {
- return $main::SERVICE_UP;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 9;
-use IO::Socket::INET6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-#...............................................
-# test start
-# - check_connect
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- set_default();
- my $v = { checktimeout => 3, protocol => 'tcp' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
-## my $r = { server => {ip => '192.168.0.11', port => $port }, fail_counts => 0 };
- my $got = check_connect($v, $r);
- is $got, $main::SERVICE_UP, 'check_connect - connect ok';
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- set_default();
- my $v = { checktimeout => 3, protocol => 'tcp', checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_connect($v, $r);
- is $got, $main::SERVICE_UP, 'check_connect - checkport connect ok';
- close $sock;
-}
-TODO: {
- todo_skip 'cannot half open socket', 1;
-#SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- set_default();
- my $v = { checktimeout => 1, protocol => 'tcp' };
- my $r = { server => {ip => '127.0.0.1', port => $port } , fail_counts => 0 };
- my $got = check_connect($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_connect - timeout';
- close $sock;
-}
-{
- my $port = 63334;
- set_default();
- my $v = { checktimeout => 1, checkport => $port, protocol => 'tcp' };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_connect($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_connect - connect error';
-}
-SKIP: {
- my $port = 63335;
- my $sock = create_sock($port, 'udp');
- skip 'cannot create socket', 1 if !$sock;
- set_default();
- my $v = { checktimeout => 3, protocol => 'udp' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
- my $got = check_connect($v, $r);
- is $got, $main::SERVICE_UP, 'check_connect - connect ok (udp)';
- close $sock;
-}
-SKIP: {
- my $port = 63336;
- my $sock = create_sock($port, 'udp');
- skip 'cannot create socket', 1 if !$sock;
- set_default();
- my $v = { checktimeout => 3, protocol => 'udp', checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_connect($v, $r);
- is $got, $main::SERVICE_UP, 'check_connect - checkport connect ok (udp)';
- close $sock;
-}
-TODO: {
- todo_skip 'cannot half open socket', 1;
-#SKIP: {
- my $port = 63337;
- my $sock = create_sock($port, 'udp');
- skip 'cannot create socket', 1 if !$sock;
- set_default();
- my $v = { checktimeout => 1, protocol => 'udp' };
- my $r = { server => {ip => '127.0.0.1', port => $port } , fail_counts => 0 };
- my $got = check_connect($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_connect - timeout (udp)';
- close $sock;
-}
-TODO: {
- todo_skip 'udp socket can connect any port?', 1;
- my $port = 63338;
- set_default();
- my $v = { checktimeout => 1, checkport => $port, protocol => 'udp' };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_connect($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_connect - connect error (udp)';
-}
-##################################################
-### IPv6 ld_open_socket Check
-SKIP: {
- my $port = 63334;
- my $sock = create_sock6($port);
- skip 'cannot create socket!!!!', 1 if !$sock;
- set_default();
- my $v = { checktimeout => 3, protocol => 'tcp' };
- my $r = { server => {ip => '::1', port => $port }, fail_counts => 0 };
- my $got = check_connect($v, $r);
- is $got, $main::SERVICE_UP, 'check_connect(IPv6) - connect ok';
- close $sock;
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub create_sock {
- my $port = shift;
- my $proto = shift || 'tcp';
- if ($proto eq 'tcp') {
- my $sock = IO::Socket::INET6->new(
- Listen => 5,
- LocalAddr => 'localhost',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => $proto);
- return $sock;
- }
- else {
- my $sock = IO::Socket::INET6->new(
- LocalAddr => 'localhost',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => $proto);
- return $sock;
- }
-}
-sub create_sock6 {
- my $port = shift;
- my $proto = shift || 'tcp';
- if ($proto eq 'tcp') {
- my $sock = IO::Socket::INET6->new(
- Listen => 5,
- LocalAddr => '::1',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => $proto);
- return $sock;
- }
- else {
- my $sock = IO::Socket::INET6->new(
- LocalAddr => '::1',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => $proto);
- return $sock;
- }
-}
-sub prepare_child {
- my $sock = shift;
- my $res = shift;
- my $sleep = shift;
- my $pid = fork();
- if ($pid == 0) {
- if ($sleep) { sleep $sleep; }
- my $s = $sock->accept;
- for (@$res) {
- print $s $_;
- <$s>;
- }
- close $s;
- exit;
- }
- return $pid;
-}
-sub close_child {
- my $pid = shift;
- kill 15, $pid;
- waitpid $pid, 0;
-}
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
- *get_status = \&__get_status;
-}
-sub __get_status {
- return $main::SERVICE_UP;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 12;
-use Socket;
-use Socket6;
-use IO::Socket::INET6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-#...............................................
-# test start
-# - check_sip
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["SIP/2.0 200 OK\n"]);
- set_default();
- my $v = { negotiatetimeout => 3, protocol => 'tcp', login => 'carol@chicago.com' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
- my $got = check_sip($v, $r);
- is $got, $main::SERVICE_UP, 'check_sip - response ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["SIP/2.0 200 OK\n"]);
- set_default();
- my $v = { negotiatetimeout => 3, protocol => 'tcp', checkport => $port, login => 'carol@chicago.com' };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_sip($v, $r);
- is $got, $main::SERVICE_UP, 'check_sip - checkport response ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["SIP/2.0 200 OK\n"], 2);
- set_default();
- my $v = { negotiatetimeout => 1, protocol => 'tcp', login => 'carol@chicago.com' };
- my $r = { server => {ip => '127.0.0.1', port => $port } , fail_counts => 0 };
- my $got = check_sip($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_sip - timeout';
- close_child($pid);
- close $sock;
-}
-{
- my $port = 63334;
- set_default();
- my $v = { negotiatetimeout => 1, checkport => $port, protocol => 'tcp', login => 'carol@chicago.com' };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_sip($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_sip - connect error';
-}
-TODO: {
- todo_skip 'not implement udp sip response', 1;
-#SKIP: {
- my $port = 63335;
- my $sock = create_sock($port, 'udp');
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["SIP/2.0 200 OK\n"], 0, 'udp');
- set_default();
- my $v = { negotiatetimeout => 3, protocol => 'udp', login => 'carol@chicago.com' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
- my $got = check_sip($v, $r);
- is $got, $main::SERVICE_UP, 'check_sip - connect ok (udp)';
- close_child($pid);
- close $sock;
-}
-TODO: {
- todo_skip 'not implement udp sip response', 1;
-#SKIP: {
- my $port = 63336;
- my $sock = create_sock($port, 'udp');
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["SIP/2.0 200 OK\n"], 0, 'udp');
- set_default();
- my $v = { negotiatetimeout => 3, protocol => 'udp', checkport => $port, login => 'carol@chicago.com' };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_sip($v, $r);
- is $got, $main::SERVICE_UP, 'check_sip - checkport connect ok (udp)';
- close_child($pid);
- close $sock;
-}
-TODO: {
- todo_skip 'not implement udp sip response', 1;
-#SKIP: {
- my $port = 63337;
- my $sock = create_sock($port, 'udp');
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, ["SIP/2.0 200 OK\n"], 2, 'udp');
- set_default();
- my $v = { negotiatetimeout => 1, protocol => 'udp', login => 'carol@chicago.com' };
- my $r = { server => {ip => '127.0.0.1', port => $port } , fail_counts => 0 };
- my $got = check_sip($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_sip - timeout (udp)';
- close_child($pid);
- close $sock;
-}
-TODO: {
- todo_skip 'udp socket can connect any port?', 1;
- my $port = 63338;
- set_default();
- my $v = { negotiatetimeout => 1, checkport => $port, protocol => 'udp', login => 'carol@chicago.com' };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_sip($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_sip - connect error (udp)';
-}
-#### IPv6
-SKIP: {
- my $port = 63334;
- my $sock = create_sock6($port);
- skip 'cannot create socket6', 1 if !$sock;
- my $pid = prepare_child($sock, ["SIP/2.0 200 OK\n"]);
- set_default();
- my $v = { negotiatetimeout => 3, protocol => 'tcp', login => 'carol@chicago.com' };
- my $r = { server => {ip => '[::1]', port => $port }, fail_counts => 0 };
- my $got = check_sip($v, $r);
- is $got, $main::SERVICE_UP, 'check_sip IPv6 - response ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock6($port);
- skip 'cannot create socket6', 1 if !$sock;
- my $pid = prepare_child($sock, ["SIP/2.0 200 OK\n"]);
- set_default();
- my $v = { negotiatetimeout => 3, protocol => 'tcp', checkport => $port, login => 'carol@chicago.com' };
- my $r = { server => {ip => '[::1]', port => 10000 }, fail_counts => 0 };
- my $got = check_sip($v, $r);
- is $got, $main::SERVICE_UP, 'check_sip - checkport response ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock6($port);
- skip 'cannot create socket6', 1 if !$sock;
- my $pid = prepare_child($sock, ["SIP/2.0 200 OK\n"], 2);
- set_default();
- my $v = { negotiatetimeout => 1, protocol => 'tcp', login => 'carol@chicago.com' };
- my $r = { server => {ip => '[::1]', port => $port } , fail_counts => 0 };
- my $got = check_sip($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_sip - timeout';
- close_child($pid);
- close $sock;
-}
-{
- my $port = 63334;
- set_default();
- my $v = { negotiatetimeout => 1, checkport => $port, protocol => 'tcp', login => 'carol@chicago.com' };
- my $r = { server => {ip => '[::1]', port => 10000 }, fail_counts => 0 };
- my $got = check_sip($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_sip - connect error';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub create_sock {
- my $port = shift;
- my $proto = shift || 'tcp';
- if ($proto eq 'tcp') {
- my $sock = IO::Socket::INET6->new(
- Listen => 5,
- LocalAddr => 'localhost',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => $proto);
- return $sock;
- }
- else {
- my $sock = IO::Socket::INET6->new(
- LocalAddr => 'localhost',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => $proto);
- return $sock;
- }
-}
-sub create_sock6 {
- my $port = shift;
- my $proto = shift || 'tcp';
- if ($proto eq 'tcp') {
- my $sock = IO::Socket::INET6->new(
- Listen => 5,
- LocalAddr => 'localhost6',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => $proto);
- return $sock;
- }
- else {
- my $sock = IO::Socket::INET6->new(
- LocalAddr => 'localhost6',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => $proto);
- return $sock;
- }
-}
-
-sub prepare_child {
- my $sock = shift;
- my $res = shift;
- my $sleep = shift;
- my $udp = shift;
- my $pid = fork();
- if ($pid == 0) {
- if (!$udp) {
- my $s = $sock->accept;
- if ($sleep) { sleep $sleep; }
- for (@$res) {
- <$s>;
- print $s $_;
- }
- close $s;
- exit;
- } else {
- my $req;
- my $ip1;
- my $port1;
- recv $sock, $req, 1500, 0;
- if($req =~ /^Via.+(\d+\.\d+\.\d+\.\d+):(\d+)/){
- $ip1 = $1;
- $port1 = $2;
- }
- else {
- $req =~ /^Via\s*:(\[(0-9a-zA-Z:_-)\]):(\d+)/;
- $ip1 = $1;
- $port1 = $2;
- }
- my $ret_sock = IO::Socket::INET->new(
- PeerAddr => $ip1,
- PeerPort => $port1,
- Proto => 'udp',
- );
- if ($sleep) { sleep $sleep; }
- for (@$res) {
- send $ret_sock, $_, 0;
- }
- close $ret_sock;
- exit;
- }
- }
- return $pid;
-}
-sub close_child {
- my $pid = shift;
- kill 15, $pid;
- waitpid $pid, 0;
-}
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
- *get_status = \&__get_status;
-}
-sub __get_status {
- return $main::SERVICE_UP;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 19;
-use IO::Socket::INET;
-use IO::Socket::INET6;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-#...............................................
-# test start
-# - check_ftp
-#220 (vsFTPd 2.0.5)
-#USER ftp
-#331 Please specify the password.
-#PASS ftp
-#230 Login successful.
-#CWD /
-#250 Directory successfully changed.
-#TYPE I
-#200 Switching to Binary mode.
-#PASV
-#227 Entering Passive Mode (127,0,0,1,191,154)
-#RETR test.dat
-#150 Opening BINARY mode data connection for test.dat (9 bytes).
-#226 File send OK.
-#QUIT
-#221 Goodbye.
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, [
- "220 (vsFTPd 2.0.5)\n",
- "331 Please specify the password\n",
- "230 Login successful.\n",
- "250 Directory successfully changed.\n",
- "221 Goodbye.\n",
- ]);
- set_default();
- my $v = { negotiatetimeout => 3, login => 'ftp', passwd => 'ftppass' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, fail_counts => 0 };
- my $got = check_ftp($v, $r);
- is $got, $main::SERVICE_UP, 'check_ftp - login ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, [
- "220 (vsFTPd 2.0.5)\n",
- "331 Please specify the password\n",
- "230 Login successful.\n",
- "250 Directory successfully changed.\n",
- "221 Goodbye.\n",
- ]);
- set_default();
- my $v = { negotiatetimeout => 3, login => 'ftp', passwd => 'ftppass', checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_ftp($v, $r);
- is $got, $main::SERVICE_UP, 'check_ftp - checkport login ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, [
- "220 (vsFTPd 2.0.5)\n",
- "331 Please specify the password\n",
- "230 Login successful.\n",
- "250 Directory successfully changed.\n",
- "221 Goodbye.\n",
- ], 2);
- set_default();
- my $v = {negotiatetimeout => 1, login => 'ftp', passwd => 'ftppass'};
- my $r = { server => {ip => '127.0.0.1', port => $port } , fail_counts => 0 };
- my $got = check_ftp($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_ftp - timeout';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- my $dataport = 53332;
- my $datasock = create_sock($dataport);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, [
- "220 (vsFTPd 2.0.5)\n",
- "331 Please specify the password\n",
- "530 Login incorrect.\n",
- "221 Goodbye.\n",
- ]);
- set_default();
- my $v = {negotiatetimeout => 1, login => 'foo', passwd => 'bar'};
- my $r = { server => {ip => '127.0.0.1', port => $port } , fail_counts => 0 };
- my $got = check_ftp($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_ftp - login error';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, [
- "220 (vsFTPd 2.0.5)\n",
- "331 Please specify the password\n",
- "230 Login successful.\n",
- "550 Failed to change directory.\n",
- "221 Goodbye.\n",
- ]);
- set_default();
- my $v = { negotiatetimeout => 3, login => 'ftp', passwd => 'ftppass', checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_ftp($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_ftp - checkport cwd error';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- my $dataport = 53334;
- my $datasock = create_sock($dataport);
- skip 'cannot create socket', 1 if !$sock;
- skip 'cannot create data socket', 1 if !$datasock;
- my $pasvport = sprintf "%d,%d", $dataport / 256, $dataport % 256;
- my $pid = prepare_child($sock, [
- "220 (vsFTPd 2.0.5)\n",
- "331 Please specify the password\n",
- "230 Login successful.\n",
- "250 Directory successfully changed.\n",
- "200 Switching to Binary mode.\n",
- "227 Entering Passive Mode (127,0,0,1,$pasvport)\n",
- "150 Opening BINARY mode data connection for test.dat (9 bytes).\n226 File send OK.\n",
- "221 Goodbye.\n",
- ]);
- my $datapid = prepare_child($datasock, ["test.dat\n"], 0, 1);
- set_default();
- my $v = { negotiatetimeout => 3, login => 'ftp', passwd => 'ftppass' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'test.dat' , fail_counts => 0 };
- my $got = check_ftp($v, $r);
- is $got, $main::SERVICE_UP, 'check_ftp - get ok';
- close_child($pid);
- close_child($datapid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- my $dataport = 53335;
- my $datasock = create_sock($dataport);
- skip 'cannot create socket', 1 if !$sock;
- skip 'cannot create socket', 1 if !$datasock;
- my $pasvport = sprintf "%d,%d", $dataport / 256, $dataport % 256;
- my $pid = prepare_child($sock, [
- "220 (vsFTPd 2.0.5)\n",
- "331 Please specify the password\n",
- "230 Login successful.\n",
- "250 Directory successfully changed.\n",
- "200 Switching to Binary mode.\n",
- "227 Entering Passive Mode (127,0,0,1,$pasvport)\n",
- "550 Failed to open file.\n",
- "221 Goodbye.\n",
- ]);
- my $datapid = prepare_child($datasock, ["test.dat\n"]);
- set_default();
- my $v = { negotiatetimeout => 3, login => 'ftp', passwd => 'ftppass' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'test.dat' , fail_counts => 0 };
- my $got = check_ftp($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_ftp - get error';
- close_child($pid);
- close_child($datapid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- my $dataport = 53334;
- my $datasock = create_sock($dataport);
- skip 'cannot create socket', 1 if !$sock;
- skip 'cannot create data socket', 1 if !$datasock;
- my $pasvport = sprintf "%d,%d", $dataport / 256, $dataport % 256;
- my $pid = prepare_child($sock, [
- "220 (vsFTPd 2.0.5)\n",
- "331 Please specify the password\n",
- "230 Login successful.\n",
- "250 Directory successfully changed.\n",
- "200 Switching to Binary mode.\n",
- "227 Entering Passive Mode (127,0,0,1,$pasvport)\n150 Opening BINARY mode data connection for test.dat (9 bytes).\n",
- "226 File send OK.\n",
- "221 Goodbye.\n",
- ]);
- my $datapid = prepare_child($datasock, ["test.dat\n"], 0, 1);
- set_default();
- my $v = { negotiatetimeout => 3, login => 'ftp', passwd => 'ftppass' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'test.dat', receive => 'test' , fail_counts => 0 };
- my $got = check_ftp($v, $r);
- is $got, $main::SERVICE_UP, 'check_ftp - receive ok';
- close_child($pid);
- close_child($datapid);
- close $sock;
-}
-SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- my $dataport = 53334;
- my $datasock = create_sock($dataport);
- skip 'cannot create socket', 1 if !$sock;
- skip 'cannot create data socket', 1 if !$datasock;
- my $pasvport = sprintf "%d,%d", $dataport / 256, $dataport % 256;
- my $pid = prepare_child($sock, [
- "220 (vsFTPd 2.0.5)\n",
- "331 Please specify the password\n",
- "230 Login successful.\n",
- "250 Directory successfully changed.\n",
- "200 Switching to Binary mode.\n",
- "227 Entering Passive Mode (127,0,0,1,$pasvport)\n150 Opening BINARY mode data connection for test.dat (9 bytes).\n",
- "226 File send OK.\n",
- "221 Goodbye.\n",
- ]);
- my $datapid = prepare_child($datasock, ["test.dat\n"], 0, 1);
- set_default();
- my $v = { negotiatetimeout => 3, login => 'ftp', passwd => 'ftppass' };
- my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'test.dat', receive => 'foo' , fail_counts => 0 };
- my $got = check_ftp($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_ftp - receive error';
- close_child($pid);
- close_child($datapid);
- close $sock;
-}
-{
- my $port = 63334;
- set_default();
- my $v = {negotiatetimeout => 1, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_ftp($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_ftp - connect error';
-}
-########################################################################
-#### IPv6 Test
-## 2001::11 接続確認
-SKIP: {
- my $port = 63335;
- my $sock = create_sock6($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, [
- "220 (vsFTPd 2.0.5)\n",
- "331 Please specify the password\n",
- "230 Login successful.\n",
- "250 Directory successfully changed.\n",
- "221 Goodbye.\n",
- ]);
- set_default();
- my $v = { negotiatetimeout => 3, login => 'ftp', passwd => 'ftppass' };
- my $r = { server => {ip => '2001::11', port => 21 }, fail_counts => 0 };
- my $got = check_ftp($v, $r);
- is $got, $main::SERVICE_UP, 'check_ftp6 - login ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- my $port = 63335;
- my $sock = create_sock6($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, [
- "220 (vsFTPd 2.0.5)\n",
- "331 Please specify the password\n",
- "230 Login successful.\n",
- "250 Directory successfully changed.\n",
- "221 Goodbye.\n",
- ]);
- set_default();
- my $v = { negotiatetimeout => 3, login => 'ftp', passwd => 'ftppass', checkport => $port };
- my $r = { server => {ip => '2001::11', port => 10000 }, fail_counts => 0 };
- my $got = check_ftp($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_ftp - checkport login ok';
- close_child($pid);
- close $sock;
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub create_sock {
- my $port = shift;
- my $sock = IO::Socket::INET->new(
- Listen => 5,
- LocalAddr => 'localhost',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => 'tcp');
- return $sock;
-}
-sub create_sock6 {
- my $port = shift;
- my $proto = shift || 'tcp';
- if ($proto eq 'tcp') {
- my $sock = IO::Socket::INET6->new(
- Listen => 5,
- LocalAddr => '::1',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => $proto);
- return $sock;
- }
- else {
- my $sock = IO::Socket::INET6->new(
- LocalAddr => '::1',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => $proto);
- return $sock;
- }
-}
-##
-##sub create_sock6 {
-## my $port = shift;
-## my $sock = IO::Socket::INET6->new(
-## Listen => 5,
-## LocalAddr => '::1',
-## LocalPort => $port,
-## ReuseAddr => 1,
-## Proto => 'tcp');
-## return $sock;
-##}
-sub prepare_child {
- my $sock = shift;
- my $res = shift;
- my $sleep = shift;
- my $pid = fork();
- if ($pid == 0) {
- my $s = $sock->accept;
- if ($sleep) { sleep $sleep; }
- my $read = 0;
- for (@$res) {
- if ($read) {
- my $req = <$s>;
- }
- print $s $_;
- $read = 1;
- }
- close $s;
- exit;
- }
- return $pid;
-}
-sub close_child {
- my $pid = shift;
- kill 15, $pid;
- waitpid $pid, 0;
-}
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
- *get_status = \&__get_status;
-}
-sub __get_status {
- return $main::SERVICE_UP;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 6;
-use Socket;
-use Socket6;
-use IO::Socket::INET;
-use IO::Socket::INET6;
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our $module_error = 0;
-eval { require Net::DNS::Resolver; };
-if ($@) {
- $module_error = 1;
-}
-
-#...............................................
-# test start
-# - check_dns
-TODO: {
- todo_skip q{Can't locate Net/DNS.pm in @INC}, 1 if $module_error;
- todo_skip 'not implement dns response', 1;
-#SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, []);
- set_default();
- my $v = { negotiatetimeout => 3 };
- my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'localhost', receive => '127.0.0.1' , fail_counts => 0 };
-local $main::DEBUG_LEVEL = 100;
- my $got = check_dns($v, $r);
- is $got, $main::SERVICE_UP, 'check_dns - A ok';
- close_child($pid);
- close $sock;
-}
-TODO: {
- todo_skip q{Can't locate Net/DNS.pm in @INC}, 1 if $module_error;
- todo_skip 'not implement dns response', 1;
-#SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, []);
- set_default();
- my $v = { negotiatetimeout => 3, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000}, request => 'localhost', receive => '127.0.0.1' , fail_counts => 0 };
-local $main::DEBUG_LEVEL = 100;
- my $got = check_dns($v, $r);
- is $got, $main::SERVICE_UP, 'check_dns - checkport A ok';
- close_child($pid);
- close $sock;
-}
-TODO: {
- todo_skip q{Can't locate Net/DNS.pm in @INC}, 1 if $module_error;
- todo_skip 'not implement dns response', 1;
-#SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, []);
- set_default();
- my $v = {negotiatetimeout => 3};
- my $r = { server => {ip => '127.0.0.1', port => $port}, request => '127.0.0.1', receive => 'localhost' , fail_counts => 0 };
-local $main::DEBUG_LEVEL = 100;
- my $got = check_dns($v, $r);
- is $got, $main::SERVICE_UP, 'check_dns - PTR ok';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate Net/DNS.pm in @INC}, 1 if $module_error;
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, [], 2);
- set_default();
- my $v = {negotiatetimeout => 1};
- my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'localhost', receive => '127.0.0.1' , fail_counts => 0 };
- my $got = check_dns($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_dns - timeout';
- close_child($pid);
- close $sock;
-}
-TODO: {
- todo_skip q{Can't locate Net/DNS.pm in @INC}, 1 if $module_error;
- todo_skip 'not implement dns response', 1;
-#SKIP: {
- my $port = 63334;
- my $sock = create_sock($port);
- skip 'cannot create socket', 1 if !$sock;
- my $pid = prepare_child($sock, []);
- set_default();
- my $v = {negotiatetimeout => 1};
- my $r = { server => {ip => '127.0.0.1', port => $port }, request => 'localhost', receive => '128.0.0.1' , fail_counts => 0 };
-local $main::DEBUG_LEVEL = 100;
- my $got = check_dns($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_dns - A error';
- close_child($pid);
- close $sock;
-}
-SKIP: {
- skip q{Can't locate Net/DNS.pm in @INC}, 1 if $module_error;
- my $port = 63334;
- set_default();
- my $v = {negotiatetimeout => 1, checkport => $port };
- my $r = { server => {ip => '127.0.0.1', port => 10000 }, fail_counts => 0 };
- my $got = check_dns($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_dns - connect error';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub create_sock {
- my $port = shift;
- my $sock = IO::Socket::INET->new(
- LocalAddr => 'localhost',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => 'udp');
- return $sock;
-}
-sub create_sock6 {
- my $port = shift;
- my $sock = IO::Socket::INET6->new(
- LocalAddr => 'localhost6',
- LocalPort => $port,
- ReuseAddr => 1,
- Proto => 'udp');
- return $sock;
-}
-sub prepare_child {
- my $sock = shift;
- my $res = shift;
- my $sleep = shift;
- my $pid = fork();
- if ($pid == 0) {
- if ($sleep) { sleep $sleep; }
- for (@$res) {
- my $req;
- recv $sock, $req, 1500, 0;
- send $sock, $_, 0;
- }
- exit;
- }
- return $pid;
-}
-sub close_child {
- my $pid = shift;
- kill 15, $pid;
- waitpid $pid, 0;
-}
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
- *get_status = \&__get_status;
-}
-sub __get_status {
- return $main::SERVICE_UP;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 4;
-use IO::Socket::INET;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-#...............................................
-# test start
-# - check_ping
-#### IPv6 Ping
-SKIP: {
- skip 'icmp ping requires root privilege', 1 if $< != 0;
- set_default();
- my $v = { checktimeout => 1 };
- my $r = { server => {ip => '2001::11'} , fail_counts => 0 };
- my $got = check_ping($v, $r);
- is $got, $main::SERVICE_UP, 'check_ping - ping ok';
-}
-SKIP: {
- skip 'icmp ping requires root privilege', 1 if $< != 0;
- set_default();
- my $v = { checktimeout => 2 };
- my $r = { server => {ip => '2001::19'} , fail_counts => 0 };
- my $got = check_ping($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_ping - timeout';
-}
-SKIP: {
- skip 'icmp ping requires root privilege', 1 if $< != 0;
- set_default();
- my $v = { checktimeout => 3 };
- my $r = { server => {ip => '127.0.0.1'} , fail_counts => 0 };
- my $got = check_ping($v, $r);
- is $got, $main::SERVICE_UP, 'check_ping - ping ok';
-}
-SKIP: {
- skip 'icmp ping requires root privilege', 1 if $< != 0;
- set_default();
- my $v = { checktimeout => 1 };
- my $r = { server => {ip => '128.0.0.1'} , fail_counts => 0 };
- my $got = check_ping($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_ping - timeout';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
- *get_status = \&__get_status;
-}
-sub __get_status {
- return $main::SERVICE_UP;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 6;
-use IO::Socket::INET;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-#...............................................
-# test start
-# - check_none
-{
- set_default();
- my $v = { checktimeout => 3 };
- my $r = { server => {ip => '127.0.0.1'} , fail_counts => 0 };
- my $got = check_none($v, $r);
- is $got, $main::SERVICE_UP, 'check_none - ok';
-}
-# - check_off
-{
- set_default();
- my $v = { checktimeout => 3 };
- my $r = { server => {ip => '127.0.0.1'} , fail_counts => 0 };
- my $got = check_off($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_off - ok';
-}
-# - check_on
-{
- set_default();
- my $v = { checktimeout => 3 };
- my $r = { server => {ip => '127.0.0.1'} , fail_counts => 0 };
- my $got = check_on($v, $r);
- is $got, $main::SERVICE_UP, 'check_on - ok';
-}
-#############################################################
-### IPv6
-{
- set_default();
- my $v = { checktimeout => 3 };
- my $r = { server => {ip => '[::1]'} , fail_counts => 0 };
- my $got = check_none($v, $r);
- is $got, $main::SERVICE_UP, 'check_none - ok';
-}
-# - check_off
-{
- set_default();
- my $v = { checktimeout => 3 };
- my $r = { server => {ip => '[::1]'} , fail_counts => 0 };
- my $got = check_off($v, $r);
- is $got, $main::SERVICE_DOWN, 'check_off - ok';
-}
-# - check_on
-{
- set_default();
- my $v = { checktimeout => 3 };
- my $r = { server => {ip => '[::1]'} , fail_counts => 0 };
- my $got = check_on($v, $r);
- is $got, $main::SERVICE_UP, 'check_on - ok';
-}
-
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 21;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our @get_health_check_id_str_args = ();
-our @get_health_check_id_str_returns = ();
-our @fallback_on_args = ();
-our @fallback_off_args = ();
-our @__restore_service_args = ();
-our @__remove_service_args = ();
-
-#...............................................
-# test start
-# - service_set
-# - _service_up
-# - _service_down
-# - _status_up
-# - _status_down
-# - get_status
-{
- set_default();
- my $v_r_list = undef;
- my $state = undef;
- service_set($v_r_list, $state);
- pass 'service_set - state is undef';
-}
-{
- set_default();
- my $v_r_list = undef;
- my $state = 'up';
- service_set($v_r_list, $state);
- pass 'service_set - v_r_list is undef(1)';
-}
-{
- set_default();
- my $v_r_list = undef;
- my $state = 'down';
- service_set($v_r_list, $state);
- pass 'service_set - v_r_list is undef(2)';
-}
-{
- local @get_health_check_id_str_args = ();
- local @get_health_check_id_str_returns = ('id1');
- set_default();
- my $v_r_list = [ ['v', 'r'] ];
- my $state = 'up';
- local $main::HEALTH_CHECK{id1}{status} = $main::SERVICE_UP;
- service_set($v_r_list, $state);
- is_deeply \@get_health_check_id_str_args, [['v', 'r']], 'service_set - set up, but already up';
-}
-{
- local @get_health_check_id_str_args = ();
- local @get_health_check_id_str_returns = ('id2');
- set_default();
- my $v_r_list = [ ['v', 'r'] ];
- my $state = 'down';
- local $main::HEALTH_CHECK{id2}{status} = $main::SERVICE_DOWN;
- service_set($v_r_list, $state);
- is_deeply \@get_health_check_id_str_args, [['v', 'r']], 'service_set - set down, but already down';
-}
-{
- local @get_health_check_id_str_args = ();
- local @get_health_check_id_str_returns = ('id1', 'id1');
- local @fallback_off_args = ();
- local @__restore_service_args = ();
- set_default();
- my $v_r_list = [ ['v', 'r'] ];
- my $state = 'up';
- local $main::HEALTH_CHECK{id1}{status} = $main::SERVICE_DOWN;
- service_set($v_r_list, $state);
- is_deeply \@get_health_check_id_str_args, [['v', 'r'], ['v', 'r']], 'service_set - set up';
- is_deeply \@fallback_off_args, ['v'], 'service_set - set up - fallback off args';
- is_deeply \@__restore_service_args, ['v', 'r', 'real'], 'service_set - set up - restore service args';
- is $main::HEALTH_CHECK{id1}{status}, $main::SERVICE_UP, 'service_set - status is changed to up';
-}
-{
- local @get_health_check_id_str_args = ();
- local @get_health_check_id_str_returns = ('id2', 'id2');
- local @fallback_on_args = ();
- local @__remove_service_args = ();
- set_default();
- my $v_r_list = [ ['v', 'r'] ];
- my $state = 'down';
- local $main::HEALTH_CHECK{id2}{status} = $main::SERVICE_UP;
- service_set($v_r_list, $state);
- is_deeply \@get_health_check_id_str_args, [['v', 'r'], ['v', 'r']], 'service_set - set down';
- is_deeply \@fallback_on_args, ['v'], 'service_set - set up - fallback on args';
- is_deeply \@__remove_service_args, ['v', 'r', 'real'], 'service_set - set up - remove service args';
- is $main::HEALTH_CHECK{id2}{status}, $main::SERVICE_DOWN, 'service_set - status is changed to down';
-}
-{
- local @get_health_check_id_str_args = ();
- local @get_health_check_id_str_returns = ('id1', 'id1');
- local @fallback_off_args = ();
- local @__restore_service_args = ();
- set_default();
- my $v_r_list = [ ['v', 'r'] ];
- my $state = 'up';
- service_set($v_r_list, $state);
- is_deeply \@get_health_check_id_str_args, [['v', 'r'], ['v', 'r']], 'service_set - set up, but not defined id';
- is_deeply \@fallback_off_args, ['v'], 'service_set - set up - fallback off args';
- is_deeply \@__restore_service_args, ['v', 'r', 'real'], 'service_set - set up - restore service args';
- is $main::HEALTH_CHECK{id1}{status}, $main::SERVICE_UP, 'service_set - status is registerd as up';
-}
-{
- local @get_health_check_id_str_args = ();
- local @get_health_check_id_str_returns = ('id2', 'id2');
- local @fallback_on_args = ();
- local @__remove_service_args = ();
- set_default();
- my $v_r_list = [ ['v', 'r'] ];
- my $state = 'down';
- service_set($v_r_list, $state);
- is_deeply \@get_health_check_id_str_args, [['v', 'r'], ['v', 'r']], 'service_set - set down, but not defined id';
- is_deeply \@fallback_on_args, ['v'], 'service_set - set up - fallback on args';
- is_deeply \@__remove_service_args, ['v', 'r', 'real'], 'service_set - set up - remove service args';
- is $main::HEALTH_CHECK{id2}{status}, $main::SERVICE_DOWN, 'service_set - status is registerd as down';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
- *get_health_check_id_str = \&__get_health_check_id_str;
- *fallback_on = \&__fallback_on;
- *fallback_off = \&__fallback_off;
- *_restore_service = \&___restore_service;
- *_remove_service = \&___remove_service;
-}
-sub __get_health_check_id_str {
- push @get_health_check_id_str_args, [@_];
- return shift @get_health_check_id_str_returns;
-}
-sub __fallback_on {
- push @fallback_on_args, @_;
-}
-sub __fallback_off {
- push @fallback_off_args, @_;
-}
-sub ___restore_service {
- push @__restore_service_args, @_;
-}
-sub ___remove_service {
- push @__remove_service_args, @_;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 10;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our @_status_up_args = ();
-our @_status_up_returns = ();
-our @_status_down_args = ();
-our @_status_down_returns = ();
-our @__restore_service_args = ();
-our @__remove_service_args = ();
-
-#...............................................
-# test start
-# - fallback_on
-# - fallback_off
-# - fallback_find
-{
- set_default();
- my $v = undef;
- fallback_on($v);
- pass 'fallback_on - v is undef';
-}
-{
- set_default();
- my $v = undef;
- fallback_off($v);
- pass 'fallback_off - v is undef';
-}
-{
- set_default();
- local @_status_up_args = ();
- local @_status_up_returns = (1);
- local @__restore_service_args = ();
- my $v = { fallback => { tcp => 'r' } };
- fallback_on($v);
- is_deeply \@_status_up_args, [[[$v, 'r']], 'fallback'], 'fallback_on - status change to up';
- is_deeply \@__restore_service_args, [$v, 'r', 'fallback'], 'fallback_on - restore service args';
-}
-{
- set_default();
- local @_status_down_args = ();
- local @_status_down_returns = (1);
- local @__remove_service_args = ();
- my $v = { fallback => { tcp => 'r' } };
- fallback_off($v);
- is_deeply \@_status_down_args, [[[$v, 'r']], 'fallback'], 'fallback_off - status change to down';
- is_deeply \@__remove_service_args, [$v, 'r', 'fallback'], 'fallback_off - remove service args';
-}
-{
- set_default();
- local @_status_up_args = ();
- local @_status_up_returns = (0);
- local @__restore_service_args = ();
- my $v = { fallback => { tcp => 'r' } };
- fallback_on($v);
- is_deeply \@_status_up_args, [[[$v, 'r']], 'fallback'], 'fallback_on - status is not changed';
- is_deeply \@__restore_service_args, [], 'fallback_on - restore service no args';
-}
-{
- set_default();
- local @_status_down_args = ();
- local @_status_down_returns = (0);
- local @__remove_service_args = ();
- my $v = { fallback => { tcp => 'r' } };
- fallback_off($v);
- is_deeply \@_status_down_args, [[[$v, 'r']], 'fallback'], 'fallback_off - status is not changed';
- is_deeply \@__remove_service_args, [], 'fallback_off - remove service no args';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
- *_status_up = \&___status_up;
- *_status_down = \&___status_down;
- *_restore_service = \&___restore_service;
- *_remove_service = \&___remove_service;
-}
-sub ___status_up {
- push @_status_up_args, @_;
- return shift @_status_up_returns;
-}
-sub ___status_down {
- push @_status_down_args, @_;
- return shift @_status_down_returns;
-}
-sub ___restore_service {
- push @__restore_service_args, @_;
-}
-sub ___remove_service {
- push @__remove_service_args, @_;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 46;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-#...............................................
-# test start
-# - get_ip_port
-{
- my $host = undef;
- my $checkport = undef;
- my $got = get_ip_port($host, $checkport);
- is $got, '', 'get_ip_port - host and checkport is undef';
-}
-{
- my $host = { server => { ip => '127.0.0.1', port => undef } };
- my $checkport = undef;
- my $got = get_ip_port($host, $checkport);
- is $got, '', 'get_ip_port - host port and checkport is undef';
-}
-{
- my $host = { server => { ip => undef, port => undef } };
- my $checkport = 100;
- my $got = get_ip_port($host, $checkport);
- is $got, '', 'get_ip_port - host ip is undef';
-}
-{
- my $host = { server => { ip => '127.0.0.1', port => 80 } };
- my $checkport = undef;
- my $got = get_ip_port($host, $checkport);
- is $got, '127.0.0.1:80', 'get_ip_port - get host ip and port';
-}
-{
- my $host = { server => { ip => '127.0.0.1', port => 80 } };
- my $checkport = 8080;
- my $got = get_ip_port($host, $checkport);
- is $got, '127.0.0.1:8080', 'get_ip_port - get host ip and checkport';
-}
-{
- my $host = { server => { ip => '127.0.0.1', port => 0 } };
- my $checkport = undef;
- my $got = get_ip_port($host, $checkport);
- is $got, '127.0.0.1:0', 'get_ip_port - get host ip and port zero';
-}
-####### IPv6
-{
- my $host = { server => { ip => '::', port => undef } };
- my $checkport = undef;
- my $got = get_ip_port($host, $checkport);
- is $got, '', 'get_ip_port - host port and checkport is undef';
-}
-{
- my $host = { server => { ip => '::1', port => 80 } };
- my $checkport = undef;
- my $got = get_ip_port($host, $checkport);
- is $got, '[::1]:80', 'get_ip_port - get host ip6 and port';
-}
-{
- my $host = { server => { ip => '::1', port => 80 } };
- my $checkport = 8080;
- my $got = get_ip_port($host, $checkport);
- is $got, '[::1]:8080', 'get_ip_port - get host ip6 and checkport';
-}
-{
- my $host = { server => { ip => '::1', port => 0 } };
- my $checkport = undef;
- my $got = get_ip_port($host, $checkport);
- is $got, '[::1]:0', 'get_ip_port - get host ip6 and port zero';
-}
-{
- my $host = { server => { ip => 'fe80::200:1aff:fe19:5534%eth0', port => 0 } };
- my $checkport = undef;
- my $got = get_ip_port($host, $checkport);
- is $got, '[fe80::200:1aff:fe19:5534%eth0]:0', 'get_ip_port - get host ip6(LinkLocal) and port zero';
-}
-# - get_health_check_id_str
-{
- my $v = undef;
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, undef, 'get_health_check_id_str - v is undef';
-}
-{
- my $v = {};
- my $r = undef;
- my $got = get_health_check_id_str($v, $r);
- is $got, undef, 'get_health_check_id_str - r is undef';
-}
-{
- my $v = {};
- my $r = {};
- my $got = get_health_check_id_str($v, $r);
- is $got, undef, 'get_health_check_id_str - r->{server} is undef';
-}
-{
- my $v = {};
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, '::::::::::::::::::', 'get_health_check_id_str - all args is ok(empty)';
-}
-{
- my $v = {};
- my $r = { server => { ip => 1 } };
- my $got = get_health_check_id_str($v, $r);
- is $got, '1::::::::::::::::::', 'get_health_check_id_str - set real ip';
-}
-{
- my $v = {};
- my $r = { server => { port => 1 } };
- my $got = get_health_check_id_str($v, $r);
- is $got, ':1:::::::::::::::::', 'get_health_check_id_str - set real port';
-}
-{
- my $v = { checkport => 1 };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, ':1:::::::::::::::::', 'get_health_check_id_str - set checkport';
-}
-{
- my $v = { checktype => 'connect' };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, '::connect::::::::::::::::', 'get_health_check_id_str - set checktype';
-}
-{
- my $v = { service => 'http' };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, ':::http:::::::::::::::', 'get_health_check_id_str - set service';
-}
-{
- my $v = { protocol => 'tcp' };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, '::::tcp::::::::::::::', 'get_health_check_id_str - set protocol';
-}
-{
- my $v = { num_connects => 1 };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, ':::::1:::::::::::::', 'get_health_check_id_str - set num_connects';
-}
-{
- my $v = {};
- my $r = { server => {}, request => '/' };
- my $got = get_health_check_id_str($v, $r);
- is $got, '::::::/::::::::::::', 'get_health_check_id_str - set real request';
-}
-{
- my $v = {};
- my $r = { server => {}, receive => 'ok' };
- my $got = get_health_check_id_str($v, $r);
- is $got, ':::::::ok:::::::::::', 'get_health_check_id_str - set real receive';
-}
-{
- my $v = { httpmethod => 'GET' };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, '::::::::GET::::::::::', 'get_health_check_id_str - set httpmethod';
-}
-{
- my $v = { virtualhost => 'virtual' };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, ':::::::::virtual:::::::::', 'get_health_check_id_str - set virtualhost';
-}
-{
- my $v = { login => 'ftp' };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, '::::::::::ftp::::::::', 'get_health_check_id_str - set login';
-}
-{
- my $v = { passwd => 'ftp' };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, ':::::::::::ftp:::::::', 'get_health_check_id_str - set passwd';
-}
-{
- my $v = { database => 'template' };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, '::::::::::::template::::::', 'get_health_check_id_str - set database';
-}
-{
- my $v = { customcheck => '/bin/echo' };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, ':::::::::::::/bin/echo:::::', 'get_health_check_id_str - set customcheck';
-}
-{
- my $v = { checkinterval => 1 };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, '::::::::::::::1::::', 'get_health_check_id_str - set checkinterval';
-}
-{
- my $v = { checkcount => 1 };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, ':::::::::::::::1:::', 'get_health_check_id_str - set checkcount';
-}
-{
- my $v = { checktimeout => 1 };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, '::::::::::::::::1::', 'get_health_check_id_str - set checktimeout';
-}
-{
- my $v = { negotiatetimeout => 1 };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, ':::::::::::::::::1:', 'get_health_check_id_str - set negotiatetimeout';
-}
-{
- my $v = { retryinterval => 1 };
- my $r = { server => {} };
- my $got = get_health_check_id_str($v, $r);
- is $got, '::::::::::::::::::1', 'get_health_check_id_str - set retryinterval';
-}
-{
- my $v = {
- checkport => 10,
- checktype => 'connect',
- service => 'http',
- protocol => 'tcp',
- num_connects => 2,
- httpmethod => 'GET',
- virtualhost => 'virtual',
- login => 'ftp',
- passwd => 'ftp',
- database => 'template',
- customcheck => '/bin/echo',
- checkinterval => 3,
- checkcount => 4,
- checktimeout => 5,
- negotiatetimeout => 6,
- retryinterval => 7,
- };
- my $r = {
- server => { ip => 1, port => 1 },
- request => '/',
- receive => 'ok',
- };
- my $got = get_health_check_id_str($v, $r);
- is $got, '1:10:connect:http:tcp:2:/:ok:GET:virtual:ftp:ftp:template:/bin/echo:3:4:5:6:7',
- 'get_health_check_id_str - set all';
-}
-# - get_virtual_id_str
-{
- my $v = undef;
- my $got = get_virtual_id_str($v);
- is $got, undef, 'get_virtual_id_str - v is undef';
-}
-{
- my $v = {};
- my $got = get_virtual_id_str($v);
- is $got, undef, 'get_virtual_id_str - v->{module} is undef';
-}
-{
- my $v = { module => {} };
- my $got = get_virtual_id_str($v);
- is $got, '::', 'get_virtual_id_str - arg is ok(empty)';
-}
-{
- my $v = { module => {}, protocol => 'tcp' };
- my $got = get_virtual_id_str($v);
- is $got, 'tcp::', 'get_virtual_id_str - set protocol';
-}
-{
- my $v = { module => {}, server => { ip => '127.0.0.1', port => 80 } };
- my $got = get_virtual_id_str($v);
- is $got, ':127.0.0.1:80:', 'get_virtual_id_str - set server';
-}
-{
- my $v = { module => { name => 'cinsert', key => '--cookie-name monkey' } };
- my $got = get_virtual_id_str($v);
- is $got, '::cinsert --cookie-name monkey', 'get_virtual_id_str - set module';
-}
-{
- my $v = {
- server => { ip => '127.0.0.1', port => 80 },
- module => { name => 'cinsert', key => '--cookie-name monkey' },
- protocol => 'tcp',
- };
- my $got = get_virtual_id_str($v);
- is $got, 'tcp:127.0.0.1:80:cinsert --cookie-name monkey', 'get_virtual_id_str - set all';
-}
-# - get_forward_flag
-{
- my $got = get_forward_flag();
- is $got, '', 'get_forward_flag - forward is undef';
-}
-{
- my $got = get_forward_flag('MAsq');
- is $got, '-m', 'get_forward_flag - forward is masq';
-}
-{
- my $got = get_forward_flag('MAsqs');
- is $got, '', 'get_forward_flag - forward is otherwise';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 39;
-use Config;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-close *STDOUT;
-open *STDOUT, '>', '/dev/null';
-close *STDERR;
-open *STDERR, '>', '/dev/null';
-
-#...............................................
-# test start
-# - command_wrapper
-{
- my @got = command_wrapper();
- is_deeply \@got, [$?, ''], 'command_wrapper - args is undef';
-}
-{
- my @got = command_wrapper('ls');
- is $got[0], 0, 'command_wrapper - ls is ok';
- like $got[1], qr/Makefile.*l7directord.*t/s, 'command_wrapper - ls result';
-}
-{
- my @got = command_wrapper('env LANG=C ls /proc/100000 2>&1');
- if ( $Config{'use64bitint'} ) {
- is_deeply \@got, [512, "ls: /proc/100000: No such file or directory\n"], 'command_wrapper - ls /proc/100000(string) is ok';
- }
- else {
- is_deeply \@got, [256, "ls: /proc/100000: No such file or directory\n"], 'command_wrapper - ls /proc/100000(string) is ok';
- }
-}
-{
- my @got = command_wrapper('/etc');
- is_deeply \@got, [-1, undef], 'command_wrapper - no such command';
-}
-# - system_wrapper
-{
- my $got = system_wrapper();
- is $got, 65280, 'system_wrapper - args is undef';
-}
-{
- my $got = system_wrapper('ls');
- is $got, 0, 'system_wrapper - ls is ok';
-}
-{
- my $got = system_wrapper('ls /proc/100000');
- if ( $Config{'use64bitint'} ) {
- is $got, 512, 'system_wrapper - ls /proc/100000(string) is ok';
- }
- else {
- is $got, 256, 'system_wrapper - ls /proc/100000(string) is ok';
- }
-}
-{
- my $got = system_wrapper('ls', '/proc/100000');
- if ( $Config{'use64bitint'} ) {
- is $got, 512, 'system_wrapper - ls /proc/100000(array) is ok';
- }
- else {
- is $got, 256, 'system_wrapper - ls /proc/100000(array) is ok';
- }
-}
-{
- my $got = system_wrapper('/etc');
- is $got, -1, 'system_wrapper - no such command';
-}
-# - exec_wrapper
-{
- my $got = exec_wrapper();
- is $got, 0, 'exec_wrapper - args is undef';
-}
-{
- my $got = exec_wrapper('/etc');
- is $got, 0, 'exec_wrapper - no such command';
-}
-# - ld_gethostbyname
-{
- my $got = ld_gethostbyname();
- is $got, undef, 'ld_gethostbyname - name is undef';
-}
-{
- my $got = ld_gethostbyname('localhost');
- is $got, '127.0.0.1', 'ld_gethostbyname - resolve localhost';
-}
-{
- my $got = ld_gethostbyname('0.0.0.0');
- is $got, '0.0.0.0', 'ld_gethostbyname - already resolved';
-}
-{
- my $got = ld_gethostbyname('any host name');
- is $got, undef, 'ld_gethostbyname - cannot resolve';
-}
-# - ld_getservbyname
-{
- my $name = undef;
- my $protocol = 'tcp';
- my $got = ld_getservbyname($name, $protocol);
- is $got, undef, 'ld_getservbyname - name is undef';
-}
-{
- my $name = 'www';
- my $protocol = undef;
- my $got = ld_getservbyname($name, $protocol);
- is $got, 80, 'ld_getservbyname - protocol is undef';
-}
-{
- my $name = 0;
- my $protocol = 'tcp';
- my $got = ld_getservbyname($name, $protocol);
- is $got, 0, 'ld_getservbyname - name is 0(min)';
-}
-{
- my $name = 65535;
- my $protocol = 'tcp';
- my $got = ld_getservbyname($name, $protocol);
- is $got, 65535, 'ld_getservbyname - name is 65535(max)';
-}
-{
- my $name = 65536;
- my $protocol = 'tcp';
- my $got = ld_getservbyname($name, $protocol);
- is $got, undef, 'ld_getservbyname - name is 65536(error)';
-}
-{
- my $name = 'foobar';
- my $protocol = 'tcp';
- my $got = ld_getservbyname($name, $protocol);
- is $got, undef, 'ld_getservbyname - no such service name';
-}
-{
- my $name = 'www';
- my $protocol = 'foo';
- my $got = ld_getservbyname($name, $protocol);
- is $got, undef, 'ld_getservbyname - no such protocol name';
-}
-{
- my $name = 'www';
- my $protocol = 'tcp';
- my $got = ld_getservbyname($name, $protocol);
- is $got, 80, 'ld_getservbyname - resolve www tcp';
-}
-{
- my $name = 'www';
- my $protocol = 'udp';
- my $got = ld_getservbyname($name, $protocol);
- is $got, 80, 'ld_getservbyname - resolve www udp';
-}
-# - ld_getservhostbyname
-{
- my $hostserv = '127.0.0.1:80';
- my $protocol = 'tcp';
- my $got = ld_gethostservbyname($hostserv, $protocol);
- is_deeply $got, { ip => '127.0.0.1', port => 80 }, 'ld_getservhostbyname - resolve localhost:www tcp';
-}
-{
- my $hostserv = 'localhost:www';
- my $protocol = 'tcp';
- my $got = ld_gethostservbyname($hostserv, $protocol);
- is_deeply $got, { ip => '127.0.0.1', port => 80 }, 'ld_getservhostbyname - resolve localhost:www tcp';
-}
-{
- my $hostserv = 'localhost:www';
- my $protocol = 'udp';
- my $got = ld_gethostservbyname($hostserv, $protocol);
- is_deeply $got, { ip => '127.0.0.1', port => 80 }, 'ld_getservhostbyname - resolve localhost:www udp';
-}
-{
- my $hostserv = 'localhost:www';
- my $protocol = undef;
- my $got = ld_gethostservbyname($hostserv, $protocol);
- is_deeply $got, { ip => '127.0.0.1', port => 80 }, 'ld_getservhostbyname - protocol is undef';
-}
-{
- my $hostserv = 'localhost:www';
- my $protocol = 'foo';
- my $got = ld_gethostservbyname($hostserv, $protocol);
- is $got, undef, 'ld_getservhostbyname - no such protocol';
-}
-{
- my $hostserv = 'foo-bar-host:www';
- my $protocol = 'tcp';
- my $got = ld_gethostservbyname($hostserv, $protocol);
- is $got, undef, 'ld_getservhostbyname - invalid host address';
-}
-{
- my $hostserv = 'localhost:foobar';
- my $protocol = 'tcp';
- my $got = ld_gethostservbyname($hostserv, $protocol);
- is $got, undef, 'ld_getservhostbyname - invalid service name';
-}
-{
- my $hostserv = undef;
- my $protocol = 'tcp';
- my $got = ld_gethostservbyname($hostserv, $protocol);
- is $got, undef, 'ld_getservhostbyname - hostserv is undef';
-}
-{
- my $hostserv = 'localhost';
- my $protocol = 'tcp';
- my $got = ld_gethostservbyname($hostserv, $protocol);
- is $got, undef, 'ld_getservhostbyname - hostserv is invalid format';
-}
-##########################################################
-### IPv6
-# - ld_getservhostbyname
-{
- my $hostserv = '[2001::11]:80';
- my $protocol = 'tcp';
- my $got = ld_gethostservbyname($hostserv, $protocol);
- is_deeply $got, { ip => '2001::11', port => 80 }, 'ld_getservhostbyname - [2001::11]:80 tcp';
-}
-{
- my $hostserv = '[2001::11]:www';
- my $protocol = 'udp';
- my $got = ld_gethostservbyname($hostserv, $protocol);
- is_deeply $got, { ip => '2001::11', port => 80 }, 'ld_getservhostbyname - resolve localhost:www udp';
-}
-{
- my $hostserv = 'um08eth1ipv6:www';
- my $protocol = undef;
- my $got = ld_gethostservbyname($hostserv, $protocol);
- is_deeply $got, { ip => '2001::11', port => 80 }, 'ld_getservhostbyname - protocol is undef';
-}
-{
- my $hostserv = '10.144.169.222:www';
- my $protocol = 'foo';
- my $got = ld_gethostservbyname($hostserv, $protocol);
- is $got, undef, 'ld_getservhostbyname - no such protocol';
-}
-{
- my $hostserv = 'localhost6:80';
- my $protocol = 'tcp';
- my $got = ld_gethostservbyname($hostserv, $protocol);
- is_deeply $got, { ip => '::1' , port => 80 }, 'ld_getservhostbyname - invalid host address';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
-}
-sub override {
- *ld_log = \&__ld_log;
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 27;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our $get_virtual_id_str_arg = undef;
-our $get_virtual_id_str_return = undef;
-our $ld_read_l7vsadm_return = undef;
-our $ld_add_real_arg = ();
-our $ld_edit_real_arg = ();
-our $ld_delete_real_arg = ();
-our $system_wrapper_arg = ();
-
-#...............................................
-# test start
-# - _remove_service
-{
- set_default();
- my $v = undef;
- my $r = undef;
- my $tag = undef;
- _remove_service($v, $r, $tag);
- pass '_remove_service - args is undef';
-}
-{
- set_default();
- my $v = {};
- my $r = {};
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = {};
- _remove_service($v, $r, $tag);
- pass '_remove_service - not exist vip id in l7vsadm';
-}
-{
- set_default();
- my $v = { quiescent => 0, module => { name => 'cinsert', key => '' } };
- my $r = { server => { ip => '127.0.0.1', port => 80 } };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => {} };
- _remove_service($v, $r, $tag);
- pass '_remove_service - not quiescent and not exist real';
-}
-{
- set_default();
- my $v = { quiescent => 1, module => { name => 'cinsert', key => '' } };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, option => { forward => '-m' } };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => { '127.0.0.1:80' => { weight => 0, option => { forward => '-m' } } } };
- _remove_service($v, $r, $tag);
- pass '_remove_service - quiescent and exist real and weight 0, same forward mode';
-}
-{
- set_default();
- my $v = { quiescent => 1, module => { name => 'cinsert', key => '' } };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, option => { forward => '-m' } };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => { '127.0.0.1:80' => { weight => 1, option => { forward => '-m' } } } };
- _remove_service($v, $r, $tag);
- is_deeply $ld_edit_real_arg, [$v, $r, 0], '_remove_service - quiescent and exist real, no realdowncallback';
-}
-{
- set_default();
- my $v = { quiescent => 1, realdowncallback => '/bin/sh', module => { name => 'cinsert', key => '' } };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, option => { forward => '-m' } };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => { '127.0.0.1:80' => { weight => 1, option => { forward => '-m' } } } };
- _remove_service($v, $r, $tag);
- is_deeply $ld_edit_real_arg, [$v, $r, 0], '_remove_service - quiescent and exist real, realdowncallback, first healthcheck';
-}
-{
- set_default();
- my $v = { quiescent => 1, realdowncallback => '/bin/sh', module => { name => 'cinsert', key => '' } };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, option => { forward => '-m' }, healthchecked => 1 };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => { '127.0.0.1:80' => { weight => 1, option => { forward => '-m' } } } };
- _remove_service($v, $r, $tag);
- is_deeply $ld_edit_real_arg, [$v, $r, 0], '_remove_service - quiescent and exist real, realdowncallback, not first healthcheck';
- is_deeply $system_wrapper_arg, ['/bin/sh', '127.0.0.1:80'], '_remove_service - run realdowncallback';
-}
-{
- set_default();
- my $v = { quiescent => 1, module => { name => 'cinsert', key => '' } };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, option => { forward => '-m' } };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => {} };
- _remove_service($v, $r, $tag);
- is_deeply $ld_add_real_arg, [$v, $r, 0], '_remove_service - quiescent and not exist real, no realdowncallback';
-}
-{
- set_default();
- my $v = { quiescent => 1, realdowncallback => '/bin/sh', module => { name => 'cinsert', key => '' } };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, option => { forward => '-m' } };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => {} };
- _remove_service($v, $r, $tag);
- is_deeply $ld_add_real_arg, [$v, $r, 0], '_remove_service - quiescent and not exist real, realdowncallback, first healthcheck';
-}
-{
- set_default();
- my $v = { quiescent => 1, realdowncallback => '/bin/sh', module => { name => 'cinsert', key => '' } };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, option => { forward => '-m' }, healthchecked => 1 };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => {} };
- _remove_service($v, $r, $tag);
- is_deeply $ld_add_real_arg, [$v, $r, 0], '_remove_service - quiescent and not exist real, realdowncallback, not first healthcheck';
- is_deeply $system_wrapper_arg, ['/bin/sh', '127.0.0.1:80'], '_remove_service - run realdowncallback';
-}
-{
- set_default();
- my $v = { quiescent => 0, module => { name => 'cinsert', key => '' } };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, option => { forward => '-m' } };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => { '127.0.0.1:80' => { weight => 1, option => { forward => '-m' } } } };
- _remove_service($v, $r, $tag);
- is_deeply $ld_delete_real_arg, [$v, $r], '_remove_service - no quiescent and exist real, no realdowncallback';
-}
-{
- set_default();
- my $v = { quiescent => 0, realdowncallback => '/bin/sh', module => { name => 'cinsert', key => '' } };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, option => { forward => '-m' } };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => { '127.0.0.1:80' => { weight => 1, option => { forward => '-m' } } } };
- _remove_service($v, $r, $tag);
- is_deeply $ld_delete_real_arg, [$v, $r], '_remove_service - no quiescent and exist real, realdowncallback, first healthcheck';
-}
-{
- set_default();
- my $v = { quiescent => 0, realdowncallback => '/bin/sh', module => { name => 'cinsert', key => '' } };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, option => { forward => '-m' }, healthchecked => 1 };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => { '127.0.0.1:80' => { weight => 1, option => { forward => '-m' } } } };
- _remove_service($v, $r, $tag);
- is_deeply $ld_delete_real_arg, [$v, $r], '_remove_service - no quiescent and exist real, realdowncallback, not first healthcheck';
- is_deeply $system_wrapper_arg, ['/bin/sh', '127.0.0.1:80'], '_remove_service - run realdowncallback';
-}
-# - _restore_service
-{
- set_default();
- my $v = undef;
- my $r = undef;
- my $tag = undef;
- _restore_service($v, $r, $tag);
- pass '_restore_service - args is undef';
-}
-{
- set_default();
- my $v = {};
- my $r = {};
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = {};
- _restore_service($v, $r, $tag);
- pass '_restore_service - not exist vip id in l7vsadm';
-}
-{
- set_default();
- my $v = { module => { name => 'cinsert', key => '' } };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, weight => 1, option => { forward => '-m' } };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => { '127.0.0.1:80' => { weight => 1, option => { forward => '-m' } } } };
- _restore_service($v, $r, $tag);
- pass '_restore_service - exist real and same weight, same forward mode';
-}
-{
- set_default();
- my $v = { module => { name => 'cinsert', key => '' } };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, weight => 1, option => { forward => '-m' } };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => { '127.0.0.1:80' => { weight => 2, option => { forward => '-m' } } } };
- _restore_service($v, $r, $tag);
- is_deeply $ld_edit_real_arg, [$v, $r, 1], '_restore_service - change weight, no realrecovercallback';
-}
-{
- set_default();
- my $v = { module => { name => 'cinsert', key => '' }, realrecovercallback => '/bin/sh' };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, weight => 1, option => { forward => '-m' } };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => { '127.0.0.1:80' => { weight => 2, option => { forward => '-m' } } } };
- _restore_service($v, $r, $tag);
- is_deeply $ld_edit_real_arg, [$v, $r, 1], '_restore_service - change weight, realrecovercallback, first healthcheck';
-}
-{
- set_default();
- my $v = { module => { name => 'cinsert', key => '' }, realrecovercallback => '/bin/sh' };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, weight => 1, option => { forward => '-m' }, healthchecked => 1 };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => { '127.0.0.1:80' => { weight => 2, option => { forward => '-m' } } } };
- _restore_service($v, $r, $tag);
- is_deeply $ld_edit_real_arg, [$v, $r, 1], '_restore_service - change weight, realrecovercallback, not first healthcheck';
- is_deeply $system_wrapper_arg, ['/bin/sh', '127.0.0.1:80'], '_restore_service - run realrecovercallback';
-}
-{
- set_default();
- my $v = { module => { name => 'cinsert', key => '' } };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, weight => 1, option => { forward => '-m' } };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => {} };
- _restore_service($v, $r, $tag);
- is_deeply $ld_add_real_arg, [$v, $r, 1], '_restore_service - add real, no realrecovercallback';
-}
-{
- set_default();
- my $v = { module => { name => 'cinsert', key => '' }, realrecovercallback => '/bin/sh' };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, weight => 1, option => { forward => '-m' } };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => {} };
- _restore_service($v, $r, $tag);
- is_deeply $ld_add_real_arg, [$v, $r, 1], '_restore_service - add real, realrecovercallback, first healthcheck';
-}
-{
- set_default();
- my $v = { module => { name => 'cinsert', key => '' }, realrecovercallback => '/bin/sh' };
- my $r = { server => { ip => '127.0.0.1', port => 80 }, weight => 1, option => { forward => '-m' }, healthchecked => 1 };
- my $tag = undef;
- local $get_virtual_id_str_return = 'vipid';
- local $ld_read_l7vsadm_return = { vipid => {} };
- _restore_service($v, $r, $tag);
- is_deeply $ld_add_real_arg, [$v, $r, 1], '_restore_service - add real, realrecovercallback, not first healthcheck';
- is_deeply $system_wrapper_arg, ['/bin/sh', '127.0.0.1:80'], '_restore_service - run realrecovercallback';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
- $get_virtual_id_str_arg = undef;
- $get_virtual_id_str_return = undef;
- $ld_read_l7vsadm_return = undef;
- $ld_add_real_arg = ();
- $ld_edit_real_arg = ();
- $ld_delete_real_arg = ();
- $system_wrapper_arg = ();
-}
-sub override {
- *ld_log = \&__ld_log;
- *get_virtual_id_str = \&__get_virtual_id_str;
- *ld_read_l7vsadm = \&__ld_read_l7vsadm;
- *ld_add_real = \&__ld_add_real;
- *ld_edit_real = \&__ld_edit_real;
- *ld_delete_real = \&__ld_delete_real;
- *system_wrapper = \&__system_wrapper;
-}
-sub __get_virtual_id_str {
- $get_virtual_id_str_arg = shift;
- return $get_virtual_id_str_return;
-}
-sub __ld_read_l7vsadm {
- return $ld_read_l7vsadm_return;
-}
-sub __ld_add_real {
- $ld_add_real_arg = [@_];
-}
-sub __ld_edit_real {
- $ld_edit_real_arg = [@_];
-}
-sub __ld_delete_real {
- $ld_delete_real_arg = [@_];
-}
-sub __system_wrapper {
- $system_wrapper_arg = [@_];
-}
-sub __ld_log {
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(exit print);
-use Cwd;
-use L7lib;
-use Test::More tests => 33;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-override();
-
-our $ld_log_called = 0;
-
-close *STDOUT;
-open *STDOUT, '>', '/dev/null';
-close *STDERR;
-open *STDERR, '>', '/dev/null';
-
-#...............................................
-# test start
-# - ld_openlog
-{
- local *ld_log = \&__ld_log;
- my $got = ld_openlog();
- is $got, 1, 'ld_openlog - log_config is undef';
-}
-{
- local *ld_log = \&__ld_log;
- local $main::DEBUG_LEVEL = 1;
- my $got = ld_openlog('logfile');
- is $got, 0, 'ld_openlog - debug mode';
-}
-{
- local *ld_log = \&__ld_log;
- local $main::CONFIG{supervised} = 1;
- my $got = ld_openlog('logfile');
- is $got, 0, 'ld_openlog - supervised mode';
-}
-{
- local *ld_log = \&__ld_log;
- my $log_config = '/tmp/' . time;
- my $got = ld_openlog($log_config);
- is $got, 0, 'ld_openlog - open normal logfile';
- unlink $log_config;
-}
-{
- local *ld_log = \&__ld_log;
- my $log_config = '/tmp';
- my $got = ld_openlog($log_config);
- is $got, 1, 'ld_openlog - cannot open normal logfile';
-}
-{
- local *ld_log = \&__ld_log;
- my $log_config = 'local0';
- my $got = ld_openlog($log_config);
- is $got, 0, 'ld_openlog - open syslog';
-}
-# - ld_log
-SKIP: {
- skip 'aboid logging', 1;
- my $got = ld_log();
- is $got, 1, 'ld_log - message is undef';
-}
-{
- local $main::PROC_STAT{pid} = 12345;
- local $main::CONFIG{logfile} = '/tmp/' . time;
- my $got = ld_log('test');
- is $got, 0, 'ld_log - write message to logfile';
- unlink $main::CONFIG{logfile};
-}
-{
- local $main::PROC_STAT{pid} = 12345;
- local $main::CONFIG{logfile} = '/tmp';
- my $got = ld_log('test');
- is $got, 1, 'ld_log - cannot write message to logfile';
-}
-{
- local $main::PROC_STAT{pid} = 12345;
- local $main::CONFIG{logfile} = 'local0';
- my $got = ld_log('test');
- is $got, 0, 'ld_log - write message to syslog';
-}
-{
- local $main::CONFIG{supervised} = 1;
- local $main::PROC_STAT{pid} = 12345;
- local $main::CONFIG{logfile} = 'local0';
- my $got = ld_log('test');
- is $got, 0, 'ld_log - write message to stderr(supervised mode)';
-}
-# - ld_debug
-{
- local *ld_log = \&__ld_log;
- ld_debug();
- pass 'ld_debug - args is undef';
-}
-{
- local *ld_log = \&__ld_log;
- ld_debug(undef, 'test');
- pass 'ld_debug - priority is undef';
-}
-{
- local *ld_log = \&__ld_log;
- ld_debug('fatal', 'test');
- pass 'ld_debug - priority is string';
-}
-{
- local *ld_log = \&__ld_log;
- ld_debug(3, undef);
- pass 'ld_debug - message is undef';
-}
-{
- local *ld_log = \&__ld_log;
- local $main::DEBUG_LEVEL = 10;
- ld_debug(3, 'debug');
- pass 'ld_debug - priority and message is ok';
-}
-# - ld_exit
-{
- local *ld_log = \&__ld_log;
- local $main::DEBUG_LEVEL = 0;
- local $ld_log_called = 0;
- ld_exit();
- is $ld_log_called, 0, 'ld_exit - args is undef';
-}
-{
- local *ld_log = \&__ld_log;
- local $main::DEBUG_LEVEL = 0;
- local $ld_log_called = 0;
- ld_exit(undef, 'exit');
- is $ld_log_called, 0, 'ld_exit - status is undef';
-}
-{
- local *ld_log = \&__ld_log;
- local $main::DEBUG_LEVEL = 0;
- local $ld_log_called = 0;
- ld_exit(1, undef);
- is $ld_log_called, 0, 'ld_exit - message is undef';
-}
-{
- local *ld_log = \&__ld_log;
- local $main::DEBUG_LEVEL = 0;
- local $ld_log_called = 0;
- ld_exit(0, 'exit');
- is $ld_log_called, 1, 'ld_exit - status is 0 (normal exit)';
-}
-{
- local *ld_log = \&__ld_log;
- local $main::DEBUG_LEVEL = 3;
- local $ld_log_called = 0;
- ld_exit(0, 'exit');
- is $ld_log_called, 1, 'ld_exit - debug enable';
-}
-{
- local *ld_log = \&__ld_log;
- local $main::DEBUG_LEVEL = 0;
- local $ld_log_called = 0;
- ld_exit(1, 'exit');
- is $ld_log_called, 1, 'ld_exit - status is 1 (some error)';
-}
-# - init_error
-{
- local *ld_log = \&__ld_log;
- local *ld_exit = \&__ld_exit;
- local $main::DEBUG_LEVEL = 0;
- local $ld_log_called = 0;
- init_error();
- is $ld_log_called, 0, 'init_error - message is undef';
-}
-{
- local *ld_log = \&__ld_log;
- local *ld_exit = \&__ld_exit;
- local $main::DEBUG_LEVEL = 0;
- local $ld_log_called = 0;
- init_error('init error');
- is $ld_log_called, 1, 'init_error - no debug';
-}
-{
- local *ld_log = \&__ld_log;
- local *ld_exit = \&__ld_exit;
- local $main::DEBUG_LEVEL = 1;
- local $ld_log_called = 0;
- init_error('init error');
- is $ld_log_called, 1, 'init_error - debug mode';
-}
-# - config_error
-{
- local *ld_log = \&__ld_log;
- local *ld_exit = \&__ld_exit;
- local $main::CONFIG_FILE{path} = 'filepath';
- local $main::PROC_STAT{initialized} = 1;
- local $main::DEBUG_LEVEL = 1;
- local $ld_log_called = 0;
- eval { config_error(1, 'WRN0004'); };
- is $ld_log_called, 0, 'config_error - debug mode';
- ok $@, 'config_error - initialized and died';
-}
-{
- local *ld_log = \&__ld_log;
- local *ld_exit = \&__ld_exit;
- local $main::CONFIG_FILE{path} = 'filepath';
- local $main::PROC_STAT{initialized} = 0;
- local $main::DEBUG_LEVEL = 1;
- local $ld_log_called = 0;
- eval { config_error(1, 'WRN0004'); };
- is $ld_log_called, 0, 'config_error - debug mode';
- is $@, '', 'config_error - not initialized exit';
-}
-{
- local *ld_log = \&__ld_log;
- local *ld_exit = \&__ld_exit;
- local $main::CONFIG_FILE{path} = 'filepath';
- local $main::PROC_STAT{initialized} = 1;
- local $main::DEBUG_LEVEL = 0;
- local $ld_log_called = 0;
- eval { config_error(0, 'WRN0004'); };
- is $ld_log_called, 1, 'config_error - no debug mode and line is 0';
- ok $@, 'config_error - initialized and died';
-}
-{
- local *ld_log = \&__ld_log;
- local *ld_exit = \&__ld_exit;
- local $main::CONFIG_FILE{path} = 'filepath';
- local $main::PROC_STAT{initialized} = 1;
- local $main::DEBUG_LEVEL = 0;
- local $ld_log_called = 0;
- eval { config_error(1, 'WRN0004'); };
- is $ld_log_called, 2, 'config_error - no debug mode and line is 1';
- ok $@, 'config_error - initialized and died';
-}
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub set_default {
-}
-sub override {
- *exit = \&__exit;
-}
-sub __exit {
-}
-sub __ld_exit {
-}
-sub __ld_log {
- $ld_log_called++;
-}
+++ /dev/null
-use strict;
-use warnings;
-no warnings qw(redefine once);
-use lib qw(t/lib lib);
-use subs qw(print);
-use Cwd;
-use L7lib;
-use Test::More tests => 1;
-use Config;
-use Socket;
-use Socket6;
-
-L7lib::chdir();
-L7lib::comment_out();
-require './l7directord';
-
-override();
-
-#...............................................
-# test start
-#####################
-### check_require_module
-{
- default_value();
- $main::CONFIG{virtual} = [ undef, undef, {
- service => 'sip',
- checktype => 'negotiate',
- } ];
-## $expected = [ undef, undef, {
-## service => 'sip',
-## checktype => 'negotiate',
-## } ];
- eval {
- check_require_module();
- };
- is_deeply \%main::CONFIG, \%main::CONFIG, 'check_require_module - ok';
-}
-#####################################################################
-# test end
-#...............................................
-
-L7lib::comment_in();
-
-sub default_value {
- $main::CONFIG_FILE{path} = time;
- undef $main::CONFIG_FILE{stattime};
- undef $main::CONFIG_FILE{checksum};
- $main::PROC_STAT{initialized} = 0;
- %main::CONFIG = %main::GLOBAL;
-}
-sub create_config {
- my $input = shift;
- open my $f, ">", $main::CONFIG_FILE{path} or return 0;
- print $f $input;
- close $f;
- return 1;
-}
-sub remove_config {
- if (-f $main::CONFIG_FILE{path}) {
- unlink $main::CONFIG_FILE{path};
- }
-}
-sub override {
- *ld_log = \&__ld_log;
-}
-sub __ld_log {
-}
+++ /dev/null
-#!/usr/bin/perl
-package L7lib;
-use strict;
-use warnings;
-use Cwd;
-
-sub chdir {
- my $pwd = cwd;
- if ($pwd =~ m{/t$}) {
- chdir '..';
- }
- if ($pwd =~ m{/t/lib$}) {
- chdir '../..';
- }
-}
-
-sub comment_in {
- replace( qr{^#main}, q{main} );
-}
-
-sub comment_out {
- replace( qr{^main}, q{#main} );
-}
-
-sub replace {
- my ($before, $after) = @_;
-
- my $file = -f 'l7directord' ? 'l7directord'
- : -f '../l7directord' ? '../l7directord'
- : die 'l7directord not found'
- ;
- local $/ = undef;
- open my $f, '+<', $file or die $!;
- flock $f, 2;
- my $org = <$f>;
- $org =~ s{$before}{$after}m;
- seek $f, 0, 0;
- print $f $org;
- truncate $f, tell $f;
- close $f;
-}
-1;
+++ /dev/null
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-print <<"L7VSADM";
-Layer-7 Virtual Server version x.x.x
-Prot LocalAddress:Port ProtoMod Scheduler
- SSL_config_file
- Socket option
- Access_log_flag
- Access_log_file
- Access_log_rotate option
- -> RemoteAddress:Port Forward Weight ActiveConn InactConn
-L7VSADM
+++ /dev/null
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-print <<"L7VSADM";
-Layer-7 Virtual Server version x.x.x
-Prot LocalAddress:Port ProtoMod Scheduler
- SSL_config_file
- Socket option
- Access_log_flag
- Access_log_file
- Access_log_rotate option
- -> RemoteAddress:Port Forward Weight ActiveConn InactConn
-TCP [2001::1]:80 ip rr
- none
- none
- 0
- none
- none
- -> [fe80::%eth1]:8080 Masq 5 0 3
-L7VSADM
+++ /dev/null
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-print <<"L7VSADM";
-Layer-7 Virtual Server version x.x.x
-Prot LocalAddress:Port ProtoMod Scheduler
- SSL_config_file
- Socket option
- Access_log_flag
- Access_log_file
- Access_log_rotate option
- -> RemoteAddress:Port Forward Weight ActiveConn InactConn
-TCP [2001:1:2:3:4:5:6:7]:80 ip rr
- none
- none
- 0
- none
- none
- -> [fe80:ffff:ffff:eeee:dddd:cccc:bbbb:aaaa]:80 Masq 3 0 3
- -> [fe80:1:22:333:4444:5:66:777]:80 Masq 2 0 3
- -> [fe80:ffff:ffff::ffff:ffff]:80 Masq 1 0 4
-L7VSADM
+++ /dev/null
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-print <<"L7VSADM";
-Layer-7 Virtual Server version x.x.x
-Prot LocalAddress:Port ProtoMod Scheduler
- SSL_config_file
- Socket option
- Access_log_flag
- Access_log_file
- Access_log_rotate option
- -> RemoteAddress:Port Forward Weight ActiveConn InactConn
-TCP [2001::2]:80 sessionless rr
- /etc/l7vs/ssl/ssl.target_1.cf
- deferaccept,nodelay,cork,quickackoff
- 1
- /var/log/l7vs/l7vsd_conn.log
-TCP [::]:8080 sslid rr
- none
- deferaccept,nodelay,cork,quickackoff
- 0
- none
- none
-TCP [3901:222:333:444:555::]:10000 ip rr
- none
- none
- 1
- none
- none
-L7VSADM
+++ /dev/null
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-print <<"L7VSADM";
-Layer-7 Virtual Server version x.x.x
-Prot LocalAddress:Port ProtoMod Scheduler
- SSL_config_file
- Socket option
- Access_log_flag
- Access_log_file
- Access_log_rotate option
- -> RemoteAddress:Port Forward Weight ActiveConn InactConn
-TCP [::]:80 sessionless rr
- none
- none
- 1
- none
- none
- -> 192.168.0.1:80 Masq 1 0 3
- -> 192.168.0.2:80 Masq 1 0 3
-TCP [::1]:10 sslid rr
- none
- none
- 1
- none
- none
-TCP [0:0:0:0:0:0:0:0]:20 ip rr
- none
- none
- 1
- none
- none
- -> [222:333:4::55]:80 Masq 1 0 4
-L7VSADM
+++ /dev/null
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-print <<"L7VSADM";
-Layer-7 Virtual Server version x.x.x
-Prot LocalAddress:Port ProtoMod Scheduler
- SSL_config_file
- Socket option
- Access_log_flag
- Access_log_file
- Access_log_rotate option
- -> RemoteAddress:Port Forward Weight ActiveConn InactConn
- -> [::]:80 Masq 1 0 3
- -> [1:2:3:4:5:6:7:8]:25 Masq 1 0 3
- -> [3:4:5::]:8080 Masq 1 0 4
-L7VSADM
+++ /dev/null
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-print <<"L7VSADM";
-Layer-7 Virtual Server version x.x.x
-Prot LocalAddress:Port ProtoMod Scheduler
- SSL_config_file
- Socket option
- Access_log_flag
- Access_log_file
- Access_log_rotate option
- -> RemoteAddress:Port Forward Weight ActiveConn InactConn
- -> [::1]:80 Masq 1 0 3
-TCP [2001::1]:8080 sessionless rr
- none
- none
- 1
- none
- none
- -> 192.168.0.2:80 Masq 1 0 4
-L7VSADM
+++ /dev/null
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-print <<"L7VSADM";
-Layer-7 Virtual Server version x.x.x
-Prot LocalAddress:Port ProtoMod Scheduler
- SSL_config_file
- Socket option
- Access_log_flag
- Access_log_file
- Access_log_rotate option
- -> RemoteAddress:Port Forward Weight ActiveConn InactConn
-TCP 10.10.10.1:1234 sessionless rr
- none
- none
- 0
- none
- none
-L7VSADM
+++ /dev/null
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-print <<"L7VSADM";
-Layer-7 Virtual Server version x.x.x
-Prot LocalAddress:Port ProtoMod Scheduler
- SSL_config_file
- Socket option
- Access_log_flag
- Access_log_file
- Access_log_rotate option
- -> RemoteAddress:Port Forward Weight ActiveConn InactConn
-TCP 127.0.0.1:80 ip rr
- none
- none
- 0
- none
- none
- -> 192.168.0.1:8080 Masq 5 0 3
-L7VSADM
+++ /dev/null
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-print <<"L7VSADM";
-Layer-7 Virtual Server version x.x.x
-Prot LocalAddress:Port ProtoMod Scheduler
- SSL_config_file
- Socket option
- Access_log_flag
- Access_log_file
- Access_log_rotate option
- -> RemoteAddress:Port Forward Weight ActiveConn InactConn
-TCP 127.0.0.1:80 ip rr
- none
- none
- 0
- none
- none
- -> 192.168.0.1:80 Masq 3 0 3
- -> 192.168.0.2:80 Masq 2 0 3
- -> 192.168.0.3:80 Masq 1 0 4
-L7VSADM
+++ /dev/null
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-print <<"L7VSADM";
-Layer-7 Virtual Server version x.x.x
-Prot LocalAddress:Port ProtoMod Scheduler
- SSL_config_file
- Socket option
- Access_log_flag
- Access_log_file
- Access_log_rotate option
- -> RemoteAddress:Port Forward Weight ActiveConn InactConn
-TCP 127.0.0.1:80 sessionless rr
- /etc/l7vs/ssl/ssl.target_1.cf
- deferaccept,nodelay,cork,quickackoff
- 1
- /var/log/l7vs/l7vsd_conn.log
-TCP 192.168.0.1:8080 sslid rr
- none
- deferaccept,nodelay,cork,quickackoff
- 0
- none
- none
-TCP 192.168.0.100:10000 ip rr
- none
- none
- 1
- none
- none
-L7VSADM
+++ /dev/null
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-print <<"L7VSADM";
-Layer-7 Virtual Server version x.x.x
-Prot LocalAddress:Port ProtoMod Scheduler
- SSL_config_file
- Socket option
- Access_log_flag
- Access_log_file
- Access_log_rotate option
- -> RemoteAddress:Port Forward Weight ActiveConn InactConn
-TCP 127.0.0.1:80 sessionless rr
- none
- none
- 1
- none
- none
- -> 192.168.0.1:80 Masq 1 0 3
- -> 192.168.0.2:80 Masq 1 0 3
-TCP 10.10.10.10:10 sslid rr
- none
- none
- 1
- none
- none
-TCP 20.20.20.20:20 ip rr
- none
- none
- 1
- none
- none
- -> 192.168.0.1:80 Masq 1 0 4
-L7VSADM
+++ /dev/null
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-print <<"L7VSADM";
-Layer-7 Virtual Server version x.x.x
-Prot LocalAddress:Port ProtoMod Scheduler
- SSL_config_file
- Socket option
- Access_log_flag
- Access_log_file
- Access_log_rotate option
- -> RemoteAddress:Port Forward Weight ActiveConn InactConn
- -> 127.0.0.1:80 Masq 1 0 3
- -> 127.0.0.1:25 Masq 1 0 3
- -> 127.0.0.1:8080 Masq 1 0 4
-L7VSADM
+++ /dev/null
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-print <<"L7VSADM";
-Layer-7 Virtual Server version x.x.x
-Prot LocalAddress:Port ProtoMod Scheduler
- SSL_config_file
- Socket option
- Access_log_flag
- Access_log_file
- Access_log_rotate option
- -> RemoteAddress:Port Forward Weight ActiveConn InactConn
- -> 127.0.0.1:80 Masq 1 0 3
-TCP 192.168.0.1:8080 sessionless rr
- none
- none
- 1
- none
- none
- -> 192.168.0.2:80 Masq 1 0 4
-L7VSADM