Add unit test for ssl_cipher_get_overhead()
authorDavid Woodhouse <David.Woodhouse@intel.com>
Thu, 6 Oct 2016 10:44:29 +0000 (11:44 +0100)
committerMatt Caswell <matt@openssl.org>
Wed, 2 Nov 2016 14:00:11 +0000 (14:00 +0000)
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
test/build.info
test/cipher_overhead_test.c [new file with mode: 0644]
test/recipes/90-test_overhead.t [new file with mode: 0644]

index 013a0c688fe43fb297a27cd3c5a3536c1c0402b6..b3a94599f2fb26ac74edb826f7e8fc8fa4d42b0b 100644 (file)
@@ -276,10 +276,14 @@ IF[{- !$disabled{tests} -}]
   DEPEND[bio_enc_test]=../libcrypto
 
   IF[{- $disabled{shared} -}]
-    PROGRAMS_NO_INST=wpackettest
+    PROGRAMS_NO_INST=wpackettest cipher_overhead_test
     SOURCE[wpackettest]=wpackettest.c testutil.c
     INCLUDE[wpackettest]=../include
     DEPEND[wpackettest]=../libcrypto ../libssl
+
+    SOURCE[cipher_overhead_test]=cipher_overhead_test.c
+    INCLUDE[cipher_overhead_test]=.. ../include
+    DEPEND[cipher_overhead_test]=../libcrypto ../libssl
   ENDIF
 ENDIF
 
diff --git a/test/cipher_overhead_test.c b/test/cipher_overhead_test.c
new file mode 100644 (file)
index 0000000..8c262b3
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+ *
+ * Licensed under the OpenSSL license (the "License").  You may not use
+ * this file except in compliance with the License.  You can obtain a copy
+ * in the file LICENSE in the source distribution or at
+ * https://www.openssl.org/source/license.html
+ */
+
+#include <stdio.h>
+
+#include "../ssl/ssl_locl.h"
+
+int main(void)
+{
+    int i, n = ssl3_num_ciphers();
+    const SSL_CIPHER *ciph;
+    size_t mac, in, blk, ex;
+
+    for (i = 0; i < n; i++) {
+        ciph = ssl3_get_cipher(i);
+        if (!ciph->min_dtls)
+            continue;
+        if (!ssl_cipher_get_overhead(ciph, &mac, &in, &blk, &ex)) {
+            printf("Error getting overhead for %s\n", ciph->name);
+            exit(1);
+        } else {
+            printf("Cipher %s: %"OSSLzu" %"OSSLzu" %"OSSLzu" %"OSSLzu"\n",
+                   ciph->name, mac, in, blk, ex);
+        }
+    }
+    exit(0);
+}
diff --git a/test/recipes/90-test_overhead.t b/test/recipes/90-test_overhead.t
new file mode 100644 (file)
index 0000000..a9311bf
--- /dev/null
@@ -0,0 +1,20 @@
+#! /usr/bin/env perl
+# Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the OpenSSL license (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use OpenSSL::Test;
+use OpenSSL::Test::Utils;
+
+setup("test_overhead");
+
+plan skip_all => "Only supported in no-shared builds"
+    if !disabled("shared");
+
+plan tests => 1;
+
+ok(run(test(["cipher_overhead_test"])), "running cipher_overhead_test");