2012-06-24 58 views
2

我正在編寫一個框架來測試CernVM FS的行爲。 基本上,我有一個服務可以掛載通過http服務的遠程文件系統,只要用戶嘗試訪問配置的掛載點,就可以通過自動掛載進行掛載。如何計算opendir成功或失敗時間?

我必須編寫的一個測試包括檢查cvmfs是否遵守dns請求的超時配置。所以,我有一個dns設置爲等待180秒,但如果使用代理服務器,則服務必須停止嘗試在10秒後裝入文件夾,如果連接是直接連接,則需要5秒。

我已經有三個測試定義(一個有一個很好的DNS,另外兩個帶有和不帶代理的睡眠DNS)。所有的測試都是成功的(所以,實際上它在dns睡眠時失敗),但我不知道如何檢查Perl opendir命令在等待多久之後才聲明它不能訪問該文件夾。

我該如何衡量這個時間?我知道它必須失敗,但我想確保它在10或5秒後失效(取決於配置)。

我必須在Perl中完成,但任何建議,將不勝感激。

回答

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"; 
+0

我用一個簡單的'時間'命令,但你的方法是好的。謝謝。 – Zagorax