-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathexp.pl
executable file
·88 lines (74 loc) · 2.48 KB
/
exp.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
88
#!/usr/bin/perl
use strict;
use warnings;
use IPC::Cmd qw/run/;
my $cnt = 1000;
my $timeout = 120;
my $retry = 30;
my @files = qw[
resources/plain.1KB.txt
resources/plain.10KB.txt
resources/plain.100KB.txt
resources/plain.500KB.txt
];
run_test(
'noiseXX',
'data/noiseXX.csv',
"type,role,sendMsgFile,handshake1_len,handshake2_len,handshake3_len,c2sCipher,c2sPlain,s2cCipher,s2cPlain,handshakeCPUTime,commCPUTime",
sub { return qq[java -cp resources/httpcore-4.4.16.jar:noise/noise-java-1.0-SNAPSHOT.jar noise/runNoiseXX.java $_[0] $_[0]] },
);
run_test(
'noiseXKpsk',
'data/noiseXKpsk.csv',
"type,role,sendMsgFile,handshake1_len,handshake2_len,handshake3_len,c2sCipher,c2sPlain,s2cCipher,s2cPlain,handshakeCPUTime,commCPUTime",
sub { return qq[java -cp resources/httpcore-4.4.16.jar:noise/noise-java-1.0-SNAPSHOT.jar noise/runNoiseXKpsk.java $_[0] $_[0]] },
);
run_test(
'noiseNNpsk',
'data/noiseNNpsk.csv',
"type,role,sendMsgFile,handshake1_len,handshake2_len,c2sCipher,c2sPlain,s2cCipher,s2cPlain,handshakeCPUTime,commCPUTime",
sub { return qq[java -cp resources/httpcore-4.4.16.jar:noise/noise-java-1.0-SNAPSHOT.jar noise/runNoiseNNpsk.java $_[0] $_[0]] },
);
run_test(
'continuity',
'data/continuity.csv',
"type,role,sendMsgFile,Send,Recv,HandshakeCPUTime,CommCPUTime",
sub { return qq[java -cp resources/httpcore-4.4.16.jar continuity/runTLSEcho.java $_[0] $_[0]] },
);
run_test(
'ukey2',
'data/ukey2.csv',
"type,role,sendMsgFile,handshake1_len,handshake2_len,handshake3_len,c2sCipher,c2sPlain,s2cCipher,s2cPlain,handshakeCPUTime,commCPUTime",
sub { return qq[java -cp resources/httpcore-4.4.16.jar:ukey2/ukey2_java_shadow.jar ukey2/runUkey2.java $_[0] $_[0]] },
);
sub run_cmd {
my ($cmd, $timeout) = @_;
my $buffer;
if( scalar run( command => $cmd,
verbose => 0,
buffer => \$buffer,
timeout => $timeout )
) {
return $buffer;
}
}
sub run_test {
my ($type, $csv, $head, $cmd_sub) = @_;
open my $fh_some2, '>', $csv;
print $fh_some2 "$head\n";
for my $f (@files){
my $cmd = $cmd_sub->($f);
for my $i (1 .. $cnt){
print "\r$type,$f, $i";
for( 1 .. $retry){
my $c = run_cmd($cmd, $timeout);
if($c and $c!~/Exception/){
print $fh_some2 $c;
last;
}
sleep 1;
}
}
}
close $fh_some2;
}