私はLinux上のブロックデバイス(/ dev/sdaなど)のパーティションを編集するプログラムを書いています。私は非常にうまく動作するプログラムを持っています。私はコードをモック(previous question of mineで作業しています)を使ってテストしました。実際のデバイスで自分のコードをテストしたいと思います。偽の現実を作る:仮想ブロックデバイスを使ったテスト
コードはパーティションテーブルをあるドライブから別のドライブにコピーします。必要に応じてパーティションテーブルを縮小する可能性があります。その後、あるドライブから別のドライブにファイルをコピーします。だから私はさまざまなサイズのドライブを使ってドライブをテストしたい。最後に、新しいドライブを起動可能にし、本質的にデバイスをクローンします。残念ながら、妥当な時間内にこのプログラムをテストするのに正しいサイズの物理ドライブはありません。私はプログラムを書くためにPythonを使用しています。
ファイルとさまざまなツールを使って.img(.dd
を使って作成)を使ってテストしましたが、明らかにVirtualBoxはVMでこれらを実行できないため、実際に起動するかどうかはテストできません。また、qemu-nbd
を使って.vdiファイルをマウントしようとしましたが、sgdiskなどのツールでそれらのパーティションを編集できます。私はさらに.imgファイルをマウントし、その方法でマウントしようとするとconvertfromraw
コマンドを使用しようとしました。しかし、grubは正常に起動せず、ハードドライブ上のファイルシステムを読み取ることができませんでした。 (ls (hd0)
がNo such filesystem...
に返されました)
私は自分のLinuxシステムで編集してから仮想ボックスから起動できる(実質的に)任意のサイズの仮想ディスクを作るのに何が使えますか?
私はユニットテストをしていないことに注意してください。これらは自動テストを意図したものではありませんので、コンピュータが簡単に行うことができるものである必要はありません。