line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package Consul::Simple::Test; |
2
|
|
|
|
|
|
|
$Consul::Simple::Test::VERSION = '1.142430'; |
3
|
|
|
|
|
|
|
my $consul_data_dir = '/tmp/consul_data_' . $$; |
4
|
|
|
|
|
|
|
our $consul_daemon_pid; |
5
|
|
|
|
|
|
|
|
6
|
|
|
|
|
|
|
sub init_tests { |
7
|
10
|
|
|
10
|
0
|
9094
|
my $can_test = init_server(); |
8
|
5
|
50
|
|
|
|
176
|
if(not $can_test) { |
9
|
0
|
|
|
|
|
0
|
print STDERR "#full tests can only be run on Linux or MacOS(Darwin) x86_64. Skipping all.\n"; |
10
|
0
|
|
|
|
|
0
|
exit 0; |
11
|
|
|
|
|
|
|
} |
12
|
|
|
|
|
|
|
} |
13
|
|
|
|
|
|
|
|
14
|
|
|
|
|
|
|
sub init_server { |
15
|
10
|
|
|
10
|
0
|
92684
|
my $uname = `uname 2>&1`; |
16
|
10
|
|
|
|
|
226
|
chomp $uname; |
17
|
10
|
50
|
33
|
|
|
410
|
if($uname ne 'Linux' and $uname ne 'Darwin') { |
18
|
0
|
|
|
|
|
0
|
return 0; |
19
|
|
|
|
|
|
|
} |
20
|
10
|
|
|
|
|
88220
|
my $arch = `uname -m 2>&1`; |
21
|
10
|
|
|
|
|
324
|
chomp $arch; |
22
|
10
|
50
|
|
|
|
1030
|
if($arch ne 'x86_64') { |
23
|
0
|
|
|
|
|
0
|
return 0; |
24
|
|
|
|
|
|
|
} |
25
|
10
|
|
50
|
|
|
2442
|
mkdir $consul_data_dir || return 0; |
26
|
10
|
|
|
|
|
38390
|
my $new_pid = fork; |
27
|
10
|
50
|
|
|
|
1358
|
return 0 if not defined $new_pid; #fork failed. (!??) |
28
|
10
|
100
|
|
|
|
723
|
if(not $new_pid) { #child |
29
|
5
|
|
|
|
|
445
|
my $consul_bin = 'testbin/consul_' . $uname . '_' . $arch; |
30
|
5
|
50
|
33
|
|
|
628
|
$consul_bin = '../' . $consul_bin if $ENV{PWD} and $ENV{PWD} =~ /\/t$/; |
31
|
5
|
|
|
|
|
401
|
my @args = ('agent', '-server', '-bootstrap-expect', '1', '-data-dir', $consul_data_dir, '-log-level', 'err'); |
32
|
5
|
|
|
|
|
1853
|
print STDERR "##Ignore WARNING: Bootstrap* and [ERR] agent* output from consul daemon\n"; |
33
|
5
|
|
|
|
|
0
|
exec $consul_bin, @args; |
34
|
0
|
|
|
|
|
0
|
exit; |
35
|
|
|
|
|
|
|
} |
36
|
5
|
|
|
|
|
70
|
$consul_daemon_pid = $new_pid; #parent |
37
|
5
|
|
|
|
|
15002792
|
sleep 3; |
38
|
5
|
|
|
|
|
71139
|
my $ret = `ps -p $consul_daemon_pid > /dev/null 2>&1;echo \$?`; |
39
|
5
|
|
|
|
|
92
|
chomp $ret; |
40
|
5
|
50
|
|
|
|
143
|
return 0 unless $ret eq '0'; |
41
|
5
|
|
|
|
|
166
|
return 1; |
42
|
|
|
|
|
|
|
} |
43
|
|
|
|
|
|
|
|
44
|
|
|
|
|
|
|
END { |
45
|
5
|
50
|
|
5
|
|
17726
|
kill 9, $consul_daemon_pid if $consul_daemon_pid; |
46
|
5
|
|
|
|
|
5000692
|
sleep 1; |
47
|
5
|
|
|
|
|
82855
|
system "rm -rf $consul_data_dir > /dev/null 2>&1"; |
48
|
5
|
|
|
|
|
|
system 'rm -rf /tmp/consul*'; |
49
|
|
|
|
|
|
|
}; |
50
|
|
|
|
|
|
|
|
51
|
|
|
|
|
|
|
1; |