aboutsummaryrefslogtreecommitdiff
path: root/tests/benchmarks/benchmarks.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/benchmarks/benchmarks.c')
-rw-r--r--tests/benchmarks/benchmarks.c40
1 files changed, 25 insertions, 15 deletions
diff --git a/tests/benchmarks/benchmarks.c b/tests/benchmarks/benchmarks.c
index 44ddb5d8..e926f920 100644
--- a/tests/benchmarks/benchmarks.c
+++ b/tests/benchmarks/benchmarks.c
@@ -35,28 +35,14 @@ const char *argp_program_bug_address = "Aris Adamantiadis <aris@0xbadc0de.be>";
static char **cmdline;
-#define MAX_HOSTS_CONNECT 20
-
/* Program documentation. */
static char doc[] = "libssh benchmarks";
-enum libssh_benchmarks {
- BENCHMARK_RAW_UPLOAD=1,
- BENCHMARK_NUMBER
-};
const char *libssh_benchmarks_names[]={
"null",
"benchmark_raw_upload"
};
-struct argument_s {
- const char *hosts[MAX_HOSTS_CONNECT];
- char benchmarks[BENCHMARK_NUMBER -1];
- int verbose;
- int nhosts;
- int ntests;
-};
-
/* The options we understand. */
static struct argp_option options[] = {
{
@@ -161,10 +147,27 @@ error:
return NULL;
}
+static char *network_speed(float bps){
+ static char buffer[128];
+ if(bps > 1000*1000*1000){
+ /* Gbps */
+ snprintf(buffer,sizeof(buffer),"%f Gbps",bps/(1000*1000*1000));
+ } else if(bps > 1000*1000){
+ /* Mbps */
+ snprintf(buffer,sizeof(buffer),"%f Mbps",bps/(1000*1000));
+ } else if(bps > 1000){
+ snprintf(buffer,sizeof(buffer),"%f Kbps",bps/1000);
+ } else {
+ snprintf(buffer,sizeof(buffer),"%f bps",bps);
+ }
+ return buffer;
+}
+
static void do_benchmarks(ssh_session session, struct argument_s *arguments,
const char *hostname){
float ping_rtt=0.0;
float ssh_rtt=0.0;
+ float bps=0.0;
int err;
if(arguments->verbose>0)
@@ -177,6 +180,13 @@ static void do_benchmarks(ssh_session session, struct argument_s *arguments,
if(err==0){
fprintf(stdout, "SSH RTT : %f ms\n",ssh_rtt);
}
+ if(arguments->benchmarks[BENCHMARK_RAW_UPLOAD-1]){
+ err=benchmarks_raw_up(session,arguments,&bps);
+ if(err==0){
+ fprintf(stdout, "%s : %s : %s\n",hostname,
+ libssh_benchmarks_names[BENCHMARK_RAW_UPLOAD], network_speed(bps));
+ }
+ }
}
int main(int argc, char **argv){
@@ -187,7 +197,7 @@ int main(int argc, char **argv){
arguments_init(&arguments);
cmdline_parse(argc, argv, &arguments);
if (arguments.nhosts==0){
- fprintf(stderr,"At least one host must be specified");
+ fprintf(stderr,"At least one host (-h) must be specified\n");
return EXIT_FAILURE;
}
if (arguments.ntests==0){