summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGE-LOG6
-rwxr-xr-xphoronix-test-suite26
-rw-r--r--pts-core/functions/pts-functions.php16
-rw-r--r--pts-core/pts-run-cmd.php52
4 files changed, 93 insertions, 7 deletions
diff --git a/CHANGE-LOG b/CHANGE-LOG
index 445620f..6c46758 100644
--- a/CHANGE-LOG
+++ b/CHANGE-LOG
@@ -1,5 +1,11 @@
PHORONIX TEST SUITE CHANGE-LOG
+Phoronix Test Suite
+- Clean up phoronix-test-suite SH file
+- Define PTS_USER_DIR inside the phoronix-test-suite SH file
+- Define DOWNLOAD_CACHE directory inside the phoronix-test-suite SH file, with support for user-define DOWNLOAD_CACHE=
+- Add make-download-cache option. Running make-download-cache will backup all files downloaded by the Phoronix Test Suite to the DOWNLOAD_CACHE directory, and performs MD5 check-sum comparisons. This is used for easily backing up all your downloaded files so that they can be transfered between test machines
+
Phoronix Test Suite 0.5.1
May 5, 2008
diff --git a/phoronix-test-suite b/phoronix-test-suite
index c755ad0..d77a11e 100755
--- a/phoronix-test-suite
+++ b/phoronix-test-suite
@@ -9,6 +9,21 @@
# Full path to root directory of the actual Phoronix Test Suite code
export PTS_DIR=`pwd`
+if [ $PTS_DIR != `pwd` ]
+then
+ cd $PTS_DIR
+fi
+
+# Location to save results, download cache, results viewer, etc. Must have trailing slash.
+export PTS_USER_DIR=$HOME'/.phoronix-test-suite/'
+
+# Set DOWNLOAD_CACHE if it's not set already by the user
+if [ "X$DOWNLOAD_CACHE" = "X" ]
+then
+ export DOWNLOAD_CACHE=$PTS_USER_DIR'download-cache/'
+fi
+
+# Determine PHP binary location
if [ -x /usr/bin/php5 ] || [ -x /usr/local/bin/php5 ]
then
export PHP_BIN="php5"
@@ -19,6 +34,7 @@ else
export PHP_BIN=""
fi
+# Make sure PHP is installed
if [ "X$PHP_BIN" = "X" ]
then
echo "\n\nPHP5 CLI Must Be Installed To Run The Phoronix Test Suite!"
@@ -28,11 +44,6 @@ then
echo "For support visit: http://www.phoronix.com/forums/forumdisplay.php?f=49\n\n"
fi
-if [ $PTS_DIR != `pwd` ]
-then
- cd $PTS_DIR
-fi
-
case "$1" in
"install")
$PHP_BIN pts-core/pts-run-cmd.php INSTALL_BENCHMARK $2
@@ -69,6 +80,9 @@ case "$1" in
"upload")
$PHP_BIN pts-core/pts-run-cmd.php UPLOAD_RESULT $2
;;
+"make-download-cache")
+ $PHP_BIN pts-core/pts-run-cmd.php MAKE_DOWNLOAD_CACHE
+ ;;
"list-tests")
$PHP_BIN pts-core/pts-run-cmd.php LIST_TESTS
;;
@@ -110,7 +124,6 @@ case "$1" in
echo "Phoronix Test Suite"
echo "http://www.phoronix-test-suite.com/"
echo "=================================\n"
-# echo "gui: Launch The Phoronix Test Suite GUI"
echo "install <suite OR test>: Install or Update The Specified Test(s)"
echo "install-dependencies <suite OR test>: Install The External (Distribution) Dependencies For Specified Test(s)"
echo "run <suite OR test>: Run The Specified Test/Suite"
@@ -121,6 +134,7 @@ case "$1" in
echo "list-tests: List all Phoronix Test Suite test profiles"
echo "list-suites: List all Phoronix Test Suites"
echo "list-results: List all saved results"
+ echo "make-download-cache: Backup all saved files to ~/.phoronix-test-suite/download-cache/"
echo "remove-result <Saved File>: Remove this saved result file and associated files"
echo "remove-all-results: Removes all saved results and associated files"
echo "suite-info: Show tests in a suite and other information about the suite"
diff --git a/pts-core/functions/pts-functions.php b/pts-core/functions/pts-functions.php
index 5d8b3b1..1829a63 100644
--- a/pts-core/functions/pts-functions.php
+++ b/pts-core/functions/pts-functions.php
@@ -33,6 +33,19 @@ function pts_directory()
return $dir;
}
+function pts_download_cache()
+{
+ $dir = getenv("DOWNLOAD_CACHE");
+
+ if(empty($dir))
+ $dir = PTS_USER_DIR . "download-cache/";
+ else
+ if(substr($dir, -1) != '/')
+ $dir .= '/';
+
+ return $dir;
+}
+
define("PTS_DIR", pts_directory());
define("PHP_BIN", getenv("PHP_BIN"));
@@ -60,7 +73,8 @@ define("SCRIPT_DISTRO_DIR", PTS_DIR . "pts/distro-scripts/");
define("BENCHMARK_RESOURCE_DIR", PTS_DIR . "pts/test-resources/");
define("ETC_DIR", PTS_DIR . "pts/etc/");
define("RESULTS_VIEWER_DIR", PTS_DIR . "pts-core/pts-results-viewer/");
-define("PTS_USER_DIR", pts_find_home("~/.phoronix-test-suite/"));
+define("PTS_USER_DIR", getenv("PTS_USER_DIR"));
+define("PTS_DOWNLOAD_CACHE_DIR", pts_download_cache());
define("PTS_MONITOR_DIR", PTS_USER_DIR . strtolower(PTS_CODENAME) . '/');
//define("FONT_DIRECTORY" "/usr/share/fonts/");
diff --git a/pts-core/pts-run-cmd.php b/pts-core/pts-run-cmd.php
index afb9664..6f3d3eb 100644
--- a/pts-core/pts-run-cmd.php
+++ b/pts-core/pts-run-cmd.php
@@ -86,6 +86,58 @@ switch($COMMAND)
else
pts_install_package_on_distribution($ARG_1);
break;
+ case "MAKE_DOWNLOAD_CACHE":
+ echo pts_string_header("Phoronix Test Suite - Making Cache Of Downloads");
+
+ if(!is_dir(PTS_DOWNLOAD_CACHE_DIR))
+ mkdir(PTS_DOWNLOAD_CACHE_DIR);
+
+ foreach(glob(BENCHMARK_RESOURCE_DIR . "*/downloads.xml") as $downloads_file)
+ {
+ $test = substr($downloads_file, strlen(BENCHMARK_RESOURCE_DIR), 0 - 14);
+ $xml_parser = new tandem_XmlReader(file_get_contents($downloads_file));
+ $package_url = $xml_parser->getXMLArrayValues(P_DOWNLOADS_PACKAGE_URL);
+ $package_md5 = $xml_parser->getXMLArrayValues(P_DOWNLOADS_PACKAGE_MD5);
+ $package_filename = $xml_parser->getXMLArrayValues(P_DOWNLOADS_PACKAGE_FILENAME);
+ $download_to = $xml_parser->getXMLArrayValues(P_DOWNLOADS_PACKAGE_DESTINATION);
+
+ echo "\nChecking Downloads For: " . $test . "\n";
+
+ for($i = 0; $i < count($package_url); $i++)
+ {
+ if(empty($package_filename[$i]))
+ {
+ $package_filename[$i] = basename($package_url[$i]);
+ }
+
+ if(is_file(PTS_DOWNLOAD_CACHE_DIR . $package_filename[$i]) && md5_file(PTS_DOWNLOAD_CACHE_DIR . $package_filename[$i]) == $package_md5[$i])
+ {
+ echo "\tPreviously Cached: " . $package_filename[$i] . "\n";
+ }
+ else
+ {
+ if(is_file(BENCHMARK_ENV_DIR . $test . "/" . $package_filename[$i]) && $download_to[$i] != "SHARED")
+ {
+ if(md5_file(BENCHMARK_ENV_DIR . $test . "/" . $package_filename[$i]) == $package_md5[$i])
+ {
+ echo "\tCaching: " . $package_filename[$i] . "\n";
+ copy(BENCHMARK_ENV_DIR . $test . "/" . $package_filename[$i], PTS_DOWNLOAD_CACHE_DIR . $package_filename[$i]);
+ }
+
+ }
+ else if(is_file(BENCHMARK_ENV_DIR . "pts-shared/" . $package_filename[$i]) && $download_to[$i] == "SHARED")
+ {
+ if(md5_file(BENCHMARK_ENV_DIR . "pts-shared/" . $package_filename[$i]) == $package_md5[$i])
+ {
+ echo "\tCaching: " . $package_filename[$i] . "\n";
+ copy(BENCHMARK_ENV_DIR . "pts-shared/" . $package_filename[$i], PTS_DOWNLOAD_CACHE_DIR . $package_filename[$i]);
+ }
+ }
+ }
+ }
+ }
+ echo "\n";
+ break;
case "LIST_TESTS":
echo pts_string_header("Phoronix Test Suite - Tests");
foreach(glob(XML_PROFILE_DIR . "*.xml") as $benchmark_file)