gleiche Prüfsumme ohne Neuberechnung; geänderte Datei -> neue Prüfsumme $cacheValue = get_setting('app_android_hash_cache', ''); app_download_info('android'); $check(get_setting('app_android_hash_cache', '') === $cacheValue && $cacheValue !== '', 'Prüfsumme wird zwischengespeichert'); $apk2 = 'PK' . random_bytes(5000); file_put_contents($dir . '/DeskHub.apk', $apk2); touch($dir . '/DeskHub.apk', time() + 5); $info2 = app_download_info('android'); $check($info2['sha256'] === hash('sha256', $apk2) && $info2['size'] === strlen($apk2), 'ausgetauschte Datei bekommt eine neue Prüfsumme'); file_put_contents($dir . '/DeskHub.apk', 'PK'); $check(app_download_info('android') === null, 'abgebrochene/winzige Datei wird nicht angeboten'); $check(app_format_size(110 * 1048576) === '110,0 MB' && app_format_size(2048) === '2 KB', 'Größenformat'); foreach (scandir($dir) ?: [] as $e) { if ($e !== '.' && $e !== '..') @unlink($dir . '/' . $e); } @rmdir($dir); if ($failures) { fwrite(STDERR, "Fehlgeschlagen:\n - " . implode("\n - ", $failures) . "\n"); exit(1); } echo "App downloads checks passed.\n";