2

CernVM FSの動作をテストするためのフレームワークを作成しています。基本的に、http経由で提供されるリモートファイルシステムをマウントし、ユーザーが構成済みのマウントポイントにアクセスしようとするとすぐに自動マウントで実行するサービスがあります。

私が書かなければならないテストの 1 つは、cvmfs が dns 要求のタイムアウト設定を尊重しているかどうかを確認することです。そのため、180 秒待機するように dns を設定していますが、プロキシを使用する場合は 10 秒後、接続が直接の場合は 5 秒後に、サービスを停止してフォルダーをマウントしようとする必要があります。

既に 3 つのテストが定義されています (1 つは適切な dns で、残りの 2 つはスリープ状態の dns で、プロキシありとプロキシなし)。すべてのテストは成功しました (つまり、実際には dns がスリープ状態のときに失敗します) が、フォルダーにアクセスできないことを示す前に Perl の opendir コマンドが待機する時間を確認する方法がわかりません。

今回はどうやって計測するの?失敗する必要があることはわかっていますが、10 秒または 5 秒後に失敗することを確認したいと考えています (構成によって異なります)。

私はPerlでそれをしなければなりませんが、何か提案をいただければ幸いです。

4

1 に答える 1

1

を発行してopendirからそのリターン (成功または失敗) までの時間を測定できます。何かのようなもの:

use Carp;
use Time::HiRes qw(gettimeofday tv_interval);
my $dir   = '.' #...whatever...'
my $start = [gettimeofday];
opendir my $dfh, $dir or carp "opendir() failed: $!\n";
my $end   = [gettimeofday];
my $delta = tv_interval $start, $end;
print "opendir() took $delta seconds\n";
于 2012-06-24T13:44:55.083 に答える