libsodium/test/default/cmptest.h

74 lines
1.4 KiB
C
Raw Normal View History

2013-01-20 18:25:22 -05:00
#ifndef __CMPTEST_H__
#define __CMPTEST_H__
#include <assert.h>
2013-01-20 18:25:22 -05:00
#include <stdio.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
2013-01-20 18:25:22 -05:00
#include "sodium.h"
#ifdef __EMSCRIPTEN__
# undef TEST_SRCDIR
# define TEST_SRCDIR "/test-data"
#endif
2014-04-14 18:52:55 -04:00
#ifndef TEST_SRCDIR
# define TEST_SRCDIR "."
#endif
2013-01-20 18:25:22 -05:00
#define TEST_NAME_RES TEST_NAME ".res"
#define TEST_NAME_OUT TEST_SRCDIR "/" TEST_NAME ".exp"
2013-01-20 18:25:22 -05:00
#ifdef HAVE_ARC4RANDOM
# undef rand
# define rand(X) arc4random(X)
#endif
#ifdef __EMSCRIPTEN__
# define strcmp(s1, s2) xstrcmp(s1, s2)
int strcmp(const char *s1, const char *s2) {
while (*s1 == *s2++) { if (*s1++ == 0) return 0; }
return *(unsigned char *) s1 - *(unsigned char *) --s2;
}
#endif
2013-01-20 18:25:22 -05:00
FILE *fp_res;
int xmain(void);
int main(void)
{
FILE *fp_out;
int c;
if ((fp_res = fopen(TEST_NAME_RES, "w+")) == NULL) {
perror("fopen(" TEST_NAME_RES ")");
return 99;
}
if (sodium_init() != 0) {
return 99;
}
2013-12-31 12:37:05 -05:00
if (xmain() != 0) {
return 99;
}
2013-01-20 18:25:22 -05:00
rewind(fp_res);
if ((fp_out = fopen(TEST_NAME_OUT, "r")) == NULL) {
perror("fopen(" TEST_NAME_OUT ")");
2013-01-20 18:25:22 -05:00
return 99;
}
do {
if ((c = fgetc(fp_res)) != fgetc(fp_out)) {
return 99;
}
} while (c != EOF);
return 0;
}
#undef printf
2013-01-20 18:25:22 -05:00
#define printf(...) fprintf(fp_res, __VA_ARGS__)
#define main xmain
#endif