Je veux tester automatiquement si un logiciel réagit comme prévu si un fichier DB SQLite essentiel ne parvient pas à être lu (provoquant une erreur d'E / S). C'est exactement ce qui s'est passé il y a quelques jours chez un client. Nous l'avons corrigé manuellement mais maintenant je veux créer du code automatique pour le réparer et j'ai besoin d'accéder à un fichier cassé pour le tester.
Comme tout dans Unix est un fichier, je soupçonne qu'il pourrait y avoir un fichier spécial qui provoque toujours des erreurs d'E / S quand on essaie de le lire (par exemple dans / dev).
Certains fichiers similaires (imo) seraient:
/dev/full
qui dit toujours "Il n'y a plus d'espace sur l'appareil" si vous essayez de l'écrire/dev/null
et/dev/zero
j'ai donc supposé qu'il devait juste y avoir un fichier comme ça (mais je n'en ai pas encore trouvé).
Est-ce que quelqu'un connaît un tel fichier ou toute autre méthode pour que j'obtienne le résultat souhaité (une image de partition intentionnellement défectueuse, un wrapper autour de open () en utilisant LD_PRELOAD, ...)?
Quelle est la meilleure façon d'aller ici?