[pve-devel] [PATCH ha-manager 1/6] ensure test/sim.pl always use the currently developed code

Thomas Lamprecht t.lamprecht at proxmox.com
Thu Jan 12 15:51:54 CET 2017


sim.pl suggested to be a perl script, but was a bash script which
called ../pve-ha-simulator
It set the include directory to '..' as its intended to use the
currently developed code, not the pve-ha-simulator installed on the
system.
This did not work correctly as pve-ha-simulator has a
use lib '/global/path/to/HA/Simulator'
directive.

Create a small perl script which runs the RTHardware.

Changes which differ from the pve-ha-simulator script include that we
fall back to the 'simtest' directory if none is given.
Also the 'batch' option does not exists here, use the ha-tester
script if you want this behavior.

Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
---

changes since v1:
* removed unnecessary use clauses
* whitespace cleanup

 src/test/sim.pl | 41 ++++++++++++++++++++++++++++++++++++-----
 1 file changed, 36 insertions(+), 5 deletions(-)
 rewrite src/test/sim.pl (98%)

diff --git a/src/test/sim.pl b/src/test/sim.pl
dissimilarity index 98%
index 933c5ba..e5a8491 100755
--- a/src/test/sim.pl
+++ b/src/test/sim.pl
@@ -1,5 +1,36 @@
-#!/bin/sh
-
-rm -rf simtest
-mkdir simtest
-perl -I .. ../pve-ha-simulator simtest
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use lib '..';
+
+use File::Path qw(remove_tree);
+
+use PVE::HA::Sim::RTHardware;
+
+sub show_usage {
+    print "usage: $0 [testdir]\n";
+    exit(-1);
+};
+
+my $testdir = shift;
+
+if (!defined($testdir)) {
+    $testdir = "simtest";
+    remove_tree($testdir);
+    mkdir $testdir;
+}
+
+my $hardware = PVE::HA::Sim::RTHardware->new($testdir);
+
+$hardware->log('info', "starting simulation");
+
+eval { $hardware->run(); };
+if (my $err = $@) {
+    $hardware->log('err', "exit simulation - $err ");
+} else {
+    $hardware->log('info', "exit simulation - done");
+}
+
+exit(0);
-- 
2.1.4




More information about the pve-devel mailing list