2012-06-24 2 views
2

CernVM FS의 동작을 테스트하기위한 프레임 워크를 작성 중입니다. 기본적으로 http를 통해 제공되는 원격 파일 시스템을 마운트하고 사용자가 구성된 마운트 지점에 액세스하려고하자마자 automount로 서비스를 마운트합니다.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

간단한 'time' 명령을 사용했지만 방법이 좋습니다. 고맙습니다. – Zagorax

관련 문제