private function getAllTests()

in util/YamlTests.php [183:227]


    private function getAllTests(string $dir): array
    {
        $it = new RecursiveDirectoryIterator($dir);
        $parsed = [];
        // Iterate over the Yaml test files
        foreach (new RecursiveIteratorIterator($it) as $file) {
            if ($file->getExtension() !== 'yml') {
                continue;
            }
            $omit = false;
            foreach (self::YAML_FILES_TO_OMIT as $fileOmit) {
                if (false !== strpos($file->getPathname(), $fileOmit)) {
                    $omit = true;
                    break;
                }
            }
            if ($omit) {
                continue;
            }
            $content = file_get_contents($file->getPathname());
            $content = str_replace(' y:', " 'y':", $content); // replace y: with 'y': due the y/true conversion in YAML 1.1
            $content = str_replace(' n:', " 'n':", $content); // replace n: with 'n': due the n/false conversion in YAML 1.1
            try {
                $test = yaml_parse($content, -1, $ndocs, [
                    YAML_MAP_TAG => function($value, $tag, $flags) {
                        return empty($value) ? new stdClass : $value;
                    }
                ]);
            } catch (Throwable $e) {
                throw new Exception(sprintf(
                    "YAML parse error file %s: %s",
                    $file->getPathname(),
                    $e->getMessage()
                ));
            }
            if (false === $test) {
                throw new Exception(sprintf(
                    "YAML parse error file %s",
                    $file->getPathname()
                ));
            }
            $parsed[$file->getPathname()] = $test;
        }
        return $parsed;
    }