1
2#define TEST_NAME "sodium_core"
3#include "cmptest.h"
4
5static void
6misuse_handler(void)
7{
8    printf("misuse_handler()\n");
9    exit(0);
10}
11
12int
13main(void)
14{
15    sodium_set_misuse_handler(NULL);
16    sodium_set_misuse_handler(misuse_handler);
17    sodium_set_misuse_handler(NULL);
18
19    assert(sodium_init() == 1);
20
21    (void) sodium_runtime_has_neon();
22    (void) sodium_runtime_has_sse2();
23    (void) sodium_runtime_has_sse3();
24    (void) sodium_runtime_has_ssse3();
25    (void) sodium_runtime_has_sse41();
26    (void) sodium_runtime_has_avx();
27    (void) sodium_runtime_has_avx2();
28    (void) sodium_runtime_has_avx512f();
29    (void) sodium_runtime_has_pclmul();
30    (void) sodium_runtime_has_aesni();
31    (void) sodium_runtime_has_rdrand();
32
33    sodium_set_misuse_handler(misuse_handler);
34#ifndef __EMSCRIPTEN__
35    sodium_misuse();
36    printf("Misuse handler returned\n");
37#else
38    printf("misuse_handler()\n");
39#endif
40
41    return 0;
42}
43