]> git.proxmox.com Git - pve-ha-manager.git/blob - test/ha-tester.pl
read hostname from testdir
[pve-ha-manager.git] / test / ha-tester.pl
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5 use File::Path qw(make_path remove_tree);
6
7 use PVE::Tools;
8
9 #my $testcmd = "../pve-ha-manager --test"
10
11 sub run_test {
12 my $dir = shift;
13
14 $dir =~ s!/+$!!;
15
16 print "run: $dir\n";
17 my $statusdir = "$dir/status";
18 remove_tree($statusdir);
19 mkdir $statusdir;
20
21 if (-f "$dir/manager_status") {
22 system("cp $dir/manager_status $statusdir/manager_status");
23 }
24
25 my $logfile = "$dir/log";
26 my $logexpect = "$logfile.expect";
27
28 my $res = system("../pve-ha-manager --test '$dir'|tee $logfile");
29 die "Test '$dir' failed\n" if $res != 0;
30
31 if (-f $logexpect) {
32 my $cmd = ['diff', '-u', $logexpect, $logfile];
33 $res = system(@$cmd);
34 die "test '$dir' failed\n" if $res != 0;
35 } else {
36 $res = system('cp', $logfile, $logexpect);
37 die "test '$dir' failed\n" if $res != 0;
38 }
39 print "end: $dir (success)\n";
40 }
41
42 if (my $testdir = shift) {
43 run_test($testdir);
44 } else {
45 foreach my $dir (<test-*>) {
46 run_test($dir);
47 }
48 }
49
50
51