#!/usr/bin/env php <?php require_once __DIR__ . '/_bootstrap.php'; try { $rc = 0; if (!class_exists('PyCore', false)) { throw new RuntimeException("PyCore class doesn't exist"); } $os = PyCore::import('os'); $osType = gettype($os); if ($osType !== 'object') { throw new RuntimeException("PyCore::import() should return an object, not {$osType}"); } $osClass = get_class($os); if ($osClass !== 'PyModule') { throw new RuntimeException("PyCore::import() should return a PyModule instance, not {$osClass}"); } $uname = $os->uname(); $unameType = gettype($uname); if ($unameType !== 'object') { throw new RuntimeException("os::uname() should return an object, not {$unameType}"); } $unameClass = get_class($uname); if ($unameClass !== 'PyTuple' && $unameClass !== 'PyObject') { throw new RuntimeException("os::uname() should return a PyTuple or a PyObject instance, not {$unameClass}"); } if ($uname->count() < 5) { throw new RuntimeException('os::uname() should return a PyTuple with at leasd 5 elements'); } $sysname = (string) $uname[0]; $sysNames = ['Linux']; if (!in_array($sysname, $sysNames, true)) { throw new RuntimeException("os::uname()[0] should be '" . implode("' or '", $sysNames) . "', '{$sysname}' received"); } } catch (RuntimeException $x) { fwrite(STDERR, rtrim($x->getMessage()) . "\n"); exit(1); } echo "phpy seems ok.\n";