1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
<?php /** * @author Andreas Fischer <bantu@phpbb.com> * @copyright 2013 Andreas Fischer * @license http://www.opensource.org/licenses/mit-license.html MIT License */
abstract class PhpseclibTestCase extends PHPUnit_Framework_TestCase { protected $tempFilesToUnlinkOnTearDown = array();
public function tearDown() { foreach ($this->tempFilesToUnlinkOnTearDown as $filename) { if (!file_exists($filename) || unlink($filename)) { unset($this->tempFilesToUnlinkOnTearDown[$filename]); } } parent::tearDown(); }
/** * Creates a temporary file on the local filesystem and returns its path. * The $number_of_writes and $bytes_per_write parameters can be used to * write $number_of_writes * $bytes_per_write times the character 'a' to the * temporary file. All files created using this method will be deleted from * the filesystem on tearDown(), i.e. after each test method was run. * * @param int $number_of_writes * @param int $bytes_per_write * * @return string */ protected function createTempFile($number_of_writes = 0, $bytes_per_write = 0) { $filename = tempnam(sys_get_temp_dir(), 'phpseclib-test-'); $this->assertTrue(file_exists($filename)); $this->tempFilesToUnlinkOnTearDown[] = $filename; if ($number_of_writes > 0 && $bytes_per_write > 0) { $fp = fopen($filename, 'wb'); for ($i = 0; $i < $number_of_writes; ++$i) { fwrite($fp, str_repeat('a', $bytes_per_write)); } fclose($fp); $this->assertSame($number_of_writes * $bytes_per_write, filesize($filename)); } return $filename; }
/** * @param string $constant * @param mixed $expected * * @return null */ static protected function ensureConstant($constant, $expected) { if (defined($constant)) { $value = constant($constant);
if ($value !== $expected) { if (function_exists('runkit_constant_redefine')) { if (!runkit_constant_redefine($constant, $expected)) { self::markTestSkipped(sprintf( "Failed to redefine constant %s to %s", $constant, $expected )); } } else { self::markTestSkipped(sprintf( "Skipping test because constant %s is %s instead of %s", $constant, $value, $expected )); } } } else { define($constant, $expected); } }
/** * @param string $filename * * @return null */ static protected function reRequireFile($filename) { if (function_exists('runkit_import')) { $result = runkit_import( $filename, RUNKIT_IMPORT_FUNCTIONS | RUNKIT_IMPORT_CLASS_METHODS | RUNKIT_IMPORT_OVERRIDE );
if (!$result) { self::markTestSkipped("Failed to reimport file $filename"); } } } }
|