summaryrefslogtreecommitdiff
path: root/test/default/cmptest.h
diff options
context:
space:
mode:
Diffstat (limited to 'test/default/cmptest.h')
-rw-r--r--test/default/cmptest.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/test/default/cmptest.h b/test/default/cmptest.h
new file mode 100644
index 0000000..ae84e43
--- /dev/null
+++ b/test/default/cmptest.h
@@ -0,0 +1,57 @@
+
+#ifndef __CMPTEST_H__
+#define __CMPTEST_H__
+
+#include <stdio.h>
+
+#include "sodium.h"
+
+#ifndef TEST_SRCDIR
+# define TEST_SRCDIR "."
+#endif
+
+#define TEST_NAME_RES TEST_NAME ".res"
+#define TEST_NAME_OUT TEST_SRCDIR "/" TEST_NAME ".exp"
+
+#ifdef HAVE_ARC4RANDOM
+# undef rand
+# define rand(X) arc4random(X)
+#endif
+
+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;
+ }
+ if (xmain() != 0) {
+ return 99;
+ }
+ rewind(fp_res);
+ if ((fp_out = fopen(TEST_NAME_OUT, "r")) == NULL) {
+ perror("fopen(" TEST_NAME_OUT ")");
+ return 99;
+ }
+ do {
+ if ((c = fgetc(fp_res)) != fgetc(fp_out)) {
+ return 99;
+ }
+ } while (c != EOF);
+
+ return 0;
+}
+
+#undef printf
+#define printf(...) fprintf(fp_res, __VA_ARGS__)
+#define main xmain
+
+#endif