-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun_tests.php
More file actions
executable file
·71 lines (62 loc) · 2.05 KB
/
Copy pathrun_tests.php
File metadata and controls
executable file
·71 lines (62 loc) · 2.05 KB
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
#!/usr/bin/env php
<?php
/**
* manner: convert troff man pages to semantic HTML
* Copyright (C) 2024 Jackson Pauls
*
* 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 3 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, see <https://www.gnu.org/licenses/>.
*/
declare(strict_types=1);
use Manner\Manner;
require_once 'autoload.php';
/**
* @param $filePath
* @throws Exception
*/
function runTest($filePath): void
{
if (!is_file($filePath)) {
exit($filePath . ' is not a file.');
}
$expectedOutputPath = $filePath . '.html';
if (!is_file($expectedOutputPath)) {
exit($expectedOutputPath . ' is not a file.');
}
$fileLines = file($filePath, FILE_IGNORE_NEW_LINES);
ob_start();
Manner::roffToHTML($fileLines, null, true);
$actualOutput = ob_get_contents();
ob_end_clean();
if ($actualOutput !== file_get_contents($expectedOutputPath)) {
echo $filePath, PHP_EOL;
echo '---------------------------', PHP_EOL;
echo implode(PHP_EOL, $fileLines), PHP_EOL;
echo '---------------------------', PHP_EOL;
echo 'Expected:', PHP_EOL;
echo file_get_contents($expectedOutputPath);
echo '---------------------------', PHP_EOL;
echo 'Got:', PHP_EOL;
echo $actualOutput, PHP_EOL;
}
}
$dir = new DirectoryIterator(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'tests');
foreach ($dir as $fileInfo) {
if ($fileInfo->isDot()) {
continue;
}
if ($fileInfo->getExtension() === 'html') {
continue;
}
runTest($fileInfo->getRealPath());
}