-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_seq_raw_basic.pl
87 lines (66 loc) · 2.32 KB
/
test_seq_raw_basic.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#!/usr/bin/perl
# A basic RAW test
# Writes some RAW data, then verifies it
use warnings;
use strict;
use dt_utils;
use dt_os;
use dt_test;
use File::Spec;
use Getopt::Long;
# Test parameters ##################
my $test = undef;
my $loops_nr = 1;
my $raw_dev_file = undef;
my $start_sector = undef;
my $end_sector = "end";
my $IO_size = undef;
my $signature_period = 0;
my $timestamps = 0; # No timestamps by default
my $skip_size = 0;
my $const = 0;
my $seed = undef;
my $read = 0;
my $write = 0;
my $concurrent_requests_nr = 10;
my $verbose = 0;
my $delete_log_file = 0;
my $rc = GetOptions("test=s" => \$test,
"loops_nr=i" => \$loops_nr,
"raw_dev_file=s" => \$raw_dev_file,
"start_sector=i" => \$start_sector,
"end_sector=s" => \$end_sector,
"IO_size=i" => \$IO_size,
"signature_period=i" => \$signature_period,
"timestamps" => \$timestamps,
"skip_size=i" => \$skip_size,
"const" => \$const,
"seed=s" => \$seed,
"read" => \$read,
"write" => \$write,
"conc_req_nr=i" => \$concurrent_requests_nr,
"verbose" => \$verbose,
"delete_log_file" => \$delete_log_file);
if (!$rc || !dt_are_all_defined($test, $raw_dev_file, $start_sector, $IO_size, $seed)) {
dt_utils_print_error("Missing or bad parameters\n");
exit(1);
}
my $cmd = "-test $test -progr 1 -verb $verbose -loops $loops_nr";
my $log_filename = dt_create_log_filename(".", $test);
$cmd .= " -log_file " . $log_filename;
$cmd .= " -target " . dt_os_get_DataTransfer_RAW_target_name() . " " . $raw_dev_file . " " . $start_sector . " " . $end_sector;
$cmd .= " -noRAWcache 1"; # Disable RAW caching
$cmd .= " -IO_size $IO_size -skip_size $skip_size -sgntr_prd $signature_period -ts_in_sgntr $timestamps";
$cmd .= " -seed $seed -const $const -write $write -read $read";
# These parameters are relevant for AsyncSeq test, they are ignored by SyncSeq
$cmd .= " -conc_req $concurrent_requests_nr -dm_rd_ratio 50";
dt_utils_print("Running DataTransfer...\n");
dt_utils_print("cmd: ", $cmd);
$rc = dt_run_DataTransfer($cmd);
if (!$rc) {
exit(1);
}
if ($delete_log_file) {
dt_utils_print("Deleting log file...\n");
dt_delete_file($log_filename);
}