如何计算opendir的成功或失败时间?

时间:2012-06-24 13:16:02

标签: perl timeout opendir

我正在编写一个框架来测试CernVM FS的行为。 基本上,我有一个服务,安装一个通过http服务的远程文件系统,并在用户尝试访问配置的安装点时立即使用automount。

我必须编写的其中一个测试包括检查cvmfs是否遵守dns请求的超时配置。所以,我有一个dns设置为等待180秒,但是如果使用代理,服务必须停止尝试在10秒后挂载文件夹,如果连接是直接的,则在5秒后停止。

我已经定义了三个测试(一个具有良好的dns,另外两个具有使用和不使用代理的睡眠dns)。所有测试都是成功的(因此,实际上它在dns休眠时失败),但我不知道如何检查Perl opendir命令在说明它无法访问文件夹之前等待多长时间。

我该如何衡量这段时间?我知道它必须失败,但我想确保它在10或5秒后失败(取决于配置)。

我必须在Perl中这样做,但任何建议都会受到赞赏。

1 个答案:

答案 0 :(得分: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";