1 
2 #define TEST_NAME "sodium_core"
3 #include "cmptest.h"
4 
5 static void
misuse_handler(void)6 misuse_handler(void)
7 {
8     printf("misuse_handler()\n");
9     exit(0);
10 }
11 
12 int
main(void)13 main(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