MDL-42842 testing: Generalization of the site info

This commit is contained in:
David Monllao
2013-11-20 13:50:05 +08:00
parent b3f2d75a47
commit 378d11db3e
2 changed files with 70 additions and 57 deletions
+69
View File
@@ -607,6 +607,75 @@ abstract class testing_util {
cache_helper::purge_all();
}
/**
* Gets a text-based site version description.
*
* @return string The site info
*/
public static function get_site_info() {
global $CFG;
$output = '';
// All developers have to understand English, do not localise!
$release = null;
require("$CFG->dirroot/version.php");
$output .= "Moodle $release, $CFG->dbtype";
if ($hash = self::get_git_hash()) {
$output .= ", $hash";
}
$output .= "\n";
return $output;
}
/**
* Try to get current git hash of the Moodle in $CFG->dirroot.
* @return string null if unknown, sha1 hash if known
*/
public static function get_git_hash() {
global $CFG;
// This is a bit naive, but it should mostly work for all platforms.
if (!file_exists("$CFG->dirroot/.git/HEAD")) {
return null;
}
$ref = file_get_contents("$CFG->dirroot/.git/HEAD");
if ($ref === false) {
return null;
}
$ref = trim($ref);
if (strpos($ref, 'ref: ') !== 0) {
return null;
}
$ref = substr($ref, 5);
if (!file_exists("$CFG->dirroot/.git/$ref")) {
return null;
}
$hash = file_get_contents("$CFG->dirroot/.git/$ref");
if ($hash === false) {
return null;
}
$hash = trim($hash);
if (strlen($hash) != 40) {
return null;
}
return $hash;
}
/**
* Drop the whole test database
* @static