Ich möchte automatisch testen, ob eine Software wie erwartet reagiert, wenn eine wichtige SQLite-DB-Datei nicht gelesen werden kann (was zu einem E / A-Fehler führt). Genau das ist vor einigen Tagen bei einem Kunden passiert. Wir haben es manuell behoben, aber jetzt möchte ich automatischen Code erstellen, um es zu beheben, und brauche Zugriff auf eine beschädigte Datei, um dies zu testen.
Da alles in Unix eine Datei ist, vermutete ich, dass es eine spezielle Datei geben könnte, die immer I / O-Fehler verursacht, wenn man versucht, sie zu lesen (zB in / dev).
Einige ähnliche Dateien (imo) wären:
/dev/full
die immer "No space left on device" sagt, wenn Sie versuchen, es zu schreiben/dev/null
und/dev/zero
Ich nahm also an, dass es nur eine solche Datei geben muss (aber noch keine gefunden hat).
Kennt jemand eine solche Datei oder eine andere Methode, mit der ich das gewünschte Ergebnis erzielen kann (ein absichtlich fehlerhaftes Partitionsimage, ein Wrapper um open () mit LD_PRELOAD, ...)?
Was ist der beste Weg, um hierher zu kommen?