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