test-tool: Add a 'run-test-tool-locally' script.
authorRichard Jones <rjones@redhat.com>
Mon, 6 Sep 2010 09:13:31 +0000 (10:13 +0100)
committerRichard Jones <rjones@redhat.com>
Wed, 8 Sep 2010 13:18:30 +0000 (14:18 +0100)
This can be used to run the test tool without installing it.
It sets the environment variables and command line arguments
up correctly to run the tool from the build directory.
(cherry picked from commit 06c906168c0a96662ad47473cfe5f2fb3c316757)

test-tool/run-test-tool-locally [new file with mode: 0755]

diff --git a/test-tool/run-test-tool-locally b/test-tool/run-test-tool-locally
new file mode 100755 (executable)
index 0000000..ae681c5
--- /dev/null
@@ -0,0 +1,56 @@
+#!/usr/bin/perl
+# Copyright (C) 2010 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+# This script sets up the environment so you can run
+# libguestfs-test-tool in place without needing to do 'make install'
+# first.  You can also run the test tool by creating a symlink to this
+# script and putting it in your path.
+#
+# Normal use is like this:
+#   ./run-test-tool-locally
+
+use strict;
+use warnings;
+
+use File::Basename qw(dirname);
+use File::Spec;
+use Cwd qw(abs_path);
+
+my $path = $0;
+my $tool = shift @ARGV;
+
+# Follow symlinks until we get to the real file
+while(-l $path) {
+    my $link = readlink($path) or die "readlink: $path: $!";
+    if(File::Spec->file_name_is_absolute($link)) {
+        $path = $link;
+    } else {
+        $path = File::Spec->catfile(dirname($path), $link);
+    }
+}
+
+# Get the absolute path of the parent directory
+$path = abs_path(dirname($path).'/..');
+
+$ENV{LD_LIBRARY_PATH} = $path.'/src/.libs';
+$ENV{LIBGUESTFS_PATH} = $path.'/appliance';
+
+exec("$path/test-tool/libguestfs-test-tool",
+     "$path/test-tool/libguestfs-test-tool",
+     "--helper",
+     "$path/test-tool/libguestfs-test-tool-helper",
+     @ARGV);