/*
- * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2016-2017 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
#include <string.h>
#include "testutil.h"
-#include "test_main_custom.h"
#include "internal/poly1305.h"
#include "../crypto/poly1305/poly1305_local.h"
-#include "e_os.h"
+#include "internal/nelem.h"
typedef struct {
size_t size;
*
***/
-/* TODO : hex decoder / encoder should be implemented in testutil.c */
-static void hexdump(const unsigned char *a, size_t len)
-{
- size_t i;
-
- for (i = 0; i < len; i++)
- fprintf(stderr, "%02x", a[i]);
-}
-
static void benchmark_poly1305()
{
# ifdef OPENSSL_CPUID_OBJ
Poly1305_Final(&poly1305, out);
if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
- fprintf(stderr, "Poly1305 test #%d failed.\n", idx);
- fprintf(stderr, "got: ");
- hexdump(out, sizeof(out));
- fprintf(stderr, "\nexpected: ");
- hexdump(expected, expectedlen);
- fprintf(stderr, "\n");
+ TEST_info("Poly1305 test #%d failed.", idx);
return 0;
}
Poly1305_Final(&poly1305, out);
if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
- fprintf(stderr, "Poly1305 test #%d/1+(N-1) failed.\n", idx);
- fprintf(stderr, "got: ");
- hexdump(out, sizeof(out));
- fprintf(stderr, "\nexpected: ");
- hexdump(expected, expectedlen);
- fprintf(stderr, "\n");
+ TEST_info("Poly1305 test #%d/1+(N-1) failed.", idx);
return 0;
}
}
Poly1305_Final(&poly1305, out);
if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
- fprintf(stderr, "Poly1305 test #%d/2 failed.\n", idx);
- fprintf(stderr, "got: ");
- hexdump(out, sizeof(out));
- fprintf(stderr, "\nexpected: ");
- hexdump(expected, expectedlen);
- fprintf(stderr, "\n");
+ TEST_info("Poly1305 test #%d/2 failed.", idx);
return 0;
}
Poly1305_Final(&poly1305, out);
if (!TEST_mem_eq(out, expectedlen, expected, expectedlen)) {
- fprintf(stderr, "Poly1305 test #%d/%" OSSLzu "+%" OSSLzu " failed.\n",
- idx, half, inlen-half);
- fprintf(stderr, "got: ");
- hexdump(out, sizeof(out));
- fprintf(stderr, "\nexpected: ");
- hexdump(expected, expectedlen);
- fprintf(stderr, "\n");
+ TEST_info("Poly1305 test #%d/%zu+%zu failed.",
+ idx, half, inlen-half);
return 0;
}
}
return 1;
}
-int test_main(int argc, char **argv)
+int setup_tests(void)
{
- int result = 0;
- int iter_argv;
- int benchmark = 0;
-
- for (iter_argv = 1; iter_argv < argc; iter_argv++) {
- if (strcmp(argv[iter_argv], "-b") == 0)
- benchmark = 1;
- else if (strcmp(argv[iter_argv], "-h") == 0)
- goto help;
+ if (test_has_option("-h")) {
+ printf("-h\tThis help\n");
+ printf("-b\tBenchmark in addition to the tests\n");
+ return 1;
}
ADD_ALL_TESTS(test_poly1305, OSSL_NELEM(tests));
+ return 1;
+}
- result = run_tests(argv[0]);
-
- if (benchmark)
+void cleanup_tests(void)
+{
+ if (test_has_option("-b"))
benchmark_poly1305();
-
- return result;
-
- help:
- printf("-h\tThis help\n");
- printf("-b\tBenchmark in addition to the tests\n");
-
- return 0;
}