I/Oエラーを引き起こす特殊ファイル

I/Oエラーを引き起こす特殊ファイル

重要なSQLite DBファイルを読み取れない場合(I / Oエラーが発生した場合)、ソフトウェアが期待どおりに反応するかどうかを自動的にテストしたいと思います。これは、数日前の顧客から起こったことです。手動で問題を解決しましたが、問題を解決するための自動コードを作成してテストするには、破損したファイルにアクセスする必要があります。

Unixのすべてはファイルなので、人々が読もうとすると常にI / Oエラーを引き起こす特別なファイル(/ devなど)があると思います。

いくつかの類似ファイル(imo)は次のとおりです。

  • /dev/full書き込もうとすると、常に「デバイスに残りのスペースがありません」というメッセージが表示されます。
  • /dev/nullそして/dev/zero

だから私の考えにはこのようなファイルがあればいいようです(まだ見つかりませんでした)。

目的の結果を得るためのファイルや他の方法を知っている人はいますか(open()の周りにLD_PRELOADラッパーを使用して意図的に誤ったパーティションイメージ...)?
ここに行く最良の方法は何ですか?

ベストアンサー1

スタックオーバーフローとサーバーエラーに関するこの質問に対する答えはすでにたくさんありますが、いくつかの技術が欠けています。人生を容易にするために、VM/Linux ブロックデバイス/Linux ファイルシステム/Linux ユーザー空間ライブラリ I/O エラー注入メカニズムのリストは次のとおりです。

追加の事実:SQLiteには、エラーシミュレーション用のVFSドライバがあります。これは良いテストの適用範囲につながります。

関連:

おすすめ記事