MDL-37458 testing common methods generalization
[moodle.git] / lib / phpunit / bootstraplib.php
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
17 /**
18  * PHPUnit bootstrap function
19  *
20  * Note: these functions must be self contained and must not rely on any other library or include
21  *
22  * @package    core
23  * @category   phpunit
24  * @copyright  2012 Petr Skoda {@link http://skodak.org}
25  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
26  */
28 require_once(__DIR__ . '/../testing/lib.php');
30 define('PHPUNIT_EXITCODE_PHPUNITMISSING', 129);
31 define('PHPUNIT_EXITCODE_PHPUNITWRONG', 130);
32 define('PHPUNIT_EXITCODE_PHPUNITEXTMISSING', 131);
33 define('PHPUNIT_EXITCODE_CONFIGERROR', 135);
34 define('PHPUNIT_EXITCODE_CONFIGWARNING', 136);
35 define('PHPUNIT_EXITCODE_INSTALL', 140);
36 define('PHPUNIT_EXITCODE_REINSTALL', 141);
38 /**
39  * Print error and stop execution
40  * @param int $errorcode The exit error code
41  * @param string $text An error message to display
42  * @return void stops code execution with error code
43  */
44 function phpunit_bootstrap_error($errorcode, $text = '') {
45     switch ($errorcode) {
46         case 0:
47             // this is not an error, just print information and exit
48             break;
49         case 1:
50             $text = 'Error: '.$text;
51             break;
52         case PHPUNIT_EXITCODE_PHPUNITMISSING:
53             $text = "Moodle can not find PHPUnit PEAR library";
54             break;
55         case PHPUNIT_EXITCODE_PHPUNITWRONG:
56             $text = 'Moodle requires PHPUnit 3.6.x, '.$text.' is not compatible';
57             break;
58         case PHPUNIT_EXITCODE_PHPUNITEXTMISSING:
59             $text = 'Moodle can not find required PHPUnit extension '.$text;
60             break;
61         case PHPUNIT_EXITCODE_CONFIGERROR:
62             $text = "Moodle PHPUnit environment configuration error:\n".$text;
63             break;
64         case PHPUNIT_EXITCODE_CONFIGWARNING:
65             $text = "Moodle PHPUnit environment configuration warning:\n".$text;
66             break;
67         case PHPUNIT_EXITCODE_INSTALL:
68             $path = testing_cli_argument_path('/admin/tool/phpunit/cli/init.php');
69             $text = "Moodle PHPUnit environment is not initialised, please use:\n php $path";
70             break;
71         case PHPUNIT_EXITCODE_REINSTALL:
72             $path = testing_cli_argument_path('/admin/tool/phpunit/cli/init.php');
73             $text = "Moodle PHPUnit environment was initialised for different version, please use:\n php $path";
74             break;
75         default:
76             $text = empty($text) ? '' : ': '.$text;
77             $text = 'Unknown error '.$errorcode.$text;
78             break;
79     }
81     testing_error($errorcode, $text);
82 }