Voglio testare automaticamente se un software reagisce come previsto se un file DB SQLite essenziale non viene letto (causando un errore I / O). È successo esattamente qualche giorno fa ad un cliente. L'abbiamo risolto manualmente, ma ora voglio creare un codice automatico per risolverlo e ho bisogno di accedere a un file danneggiato per verificarlo.
Dato che tutto in Unix è un file, sospettavo che potesse esserci un file speciale che causa sempre errori I / O quando si cerca di leggerlo (ad esempio in / dev).
Alcuni file simili (imo) sarebbero:
/dev/full
che dice sempre "Nessuno spazio lasciato sul dispositivo" se si tenta di scriverlo/dev/null
e/dev/zero
quindi ho pensato che ci fosse un file come quello (ma non ne ho ancora trovato uno).
Qualcuno conosce un tale file o qualsiasi altro metodo per ottenere il risultato desiderato (un'immagine di partizione intenzionalmente difettosa, un wrapper attorno ad open () usando LD_PRELOAD, ...)?
Qual è il modo migliore per andare qui?