added perl FKO module client timeout test
authorMichael Rash <mbr@cipherdyne.org>
Sat, 13 Oct 2012 18:08:38 +0000 (14:08 -0400)
committerMichael Rash <mbr@cipherdyne.org>
Sat, 13 Oct 2012 18:08:38 +0000 (14:08 -0400)
test/test-fwknop.pl

index c42bf77..fb54c01 100755 (executable)
@@ -1749,6 +1749,14 @@ my @tests = (
         'function' => \&perl_fko_module_cmd_msgs,
         'fatal'    => $NO
     },
+    {
+        'category' => 'perl FKO module',
+        'subcategory' => 'basic ops',
+        'detail'   => 'libfko get/set client timeout',
+        'err_msg'  => 'could not get/set libfko client timeout',
+        'function' => \&perl_fko_module_client_timeout,
+        'fatal'    => $NO
+    },
 
     {
         'category' => 'perl FKO module',
@@ -2773,6 +2781,55 @@ sub perl_fko_module_timestamp() {
     return $rv;
 }
 
+sub perl_fko_module_client_timeout() {
+    my $test_hr = shift;
+
+    my $rv = 1;
+
+    $fko_obj = FKO->new();
+
+    unless ($fko_obj) {
+        &write_test_file("[-] error FKO->new(): " . FKO::error_str() . "\n",
+            $current_test_file);
+        return 0;
+    }
+
+   my $valid_timeout = 30;
+    my $status = $fko_obj->spa_client_timeout($valid_timeout);
+
+    if ($status == FKO->FKO_SUCCESS and $fko_obj->spa_client_timeout() == $valid_timeout) {
+        &write_test_file("[+] got spa_client_timeout(): $valid_timeout\n",
+            $current_test_file);
+    } else {
+        &write_test_file("[-] could not get spa_client_timeout()\n",
+            $current_test_file);
+        $rv = 0;
+    }
+
+    for my $bogus_client_timeout (
+        -1,
+        -10000,
+    ) {
+
+        ### set message timeout and then see if it matches
+        my $status = $fko_obj->spa_client_timeout($bogus_client_timeout);
+
+        if ($status == FKO->FKO_SUCCESS) {
+            &write_test_file("[-] libfko allowed bogus spa_client_timeout(): $bogus_client_timeout " .
+                FKO::error_str() . "\n",
+                $current_test_file);
+            $rv = 0;
+        } else {
+            &write_test_file("[+] libfko rejected bogus spa_client_timeout(): $bogus_client_timeout\n",
+                $current_test_file);
+        }
+    }
+
+    $fko_obj->destroy();
+
+    return $rv;
+}
+
 sub perl_fko_module_msg_types() {
     my $test_hr = shift;