Desejo testar automaticamente se um software reage conforme o esperado, se um arquivo essencial do SQLite DB não for lido (causando um erro de E / S). Exatamente isso aconteceu alguns dias atrás em um cliente. Nós o corrigimos manualmente, mas agora quero criar um código automático para corrigi-lo e preciso acessar um arquivo quebrado para testá-lo.
Como tudo no Unix é um arquivo, suspeitei que possa haver um arquivo especial que sempre cause erros de E / S quando alguém tentar lê-lo (por exemplo, em / dev).
Alguns arquivos semelhantes (imo) seriam:
/dev/full
que sempre diz "Não resta espaço no dispositivo" se você tentar escrevê-lo/dev/null
e/dev/zero
então eu assumi que só precisa haver um arquivo assim (mas ainda não o encontrei).
Alguém conhece um arquivo ou outro método para obter o resultado desejado (uma imagem de partição com defeito intencional, um invólucro em torno de open () usando LD_PRELOAD, ...)?
Qual é a melhor maneira de ir aqui?