dsdb-acl: remove unused variable
[Samba/gebeck_regimport.git] / lib / ccan / list / test / helper.c
blobf60ecccba70c6347888b3c560653ecd697eaa89f
1 #include <stdlib.h>
2 #include <stdbool.h>
3 #include <time.h>
5 #include <ccan/list/list.h>
6 #include "helper.h"
8 #define ANSWER_TO_THE_ULTIMATE_QUESTION_OF_LIFE_THE_UNIVERSE_AND_EVERYTHING \
9 (42)
11 struct opaque {
12 struct ccan_list_node list;
13 size_t secret_offset;
14 char secret_drawer[42];
17 static bool not_randomized = true;
19 struct opaque *create_opaque_blob(void)
21 struct opaque *blob = calloc(1, sizeof(struct opaque));
23 if (not_randomized) {
24 srandom((int)time(NULL));
25 not_randomized = false;
28 blob->secret_offset = random() % (sizeof(blob->secret_drawer));
29 blob->secret_drawer[blob->secret_offset] =
30 ANSWER_TO_THE_ULTIMATE_QUESTION_OF_LIFE_THE_UNIVERSE_AND_EVERYTHING;
32 return blob;
35 bool if_blobs_know_the_secret(struct opaque *blob)
37 bool answer = true;
38 int i;
39 for (i = 0; i < sizeof(blob->secret_drawer) /
40 sizeof(blob->secret_drawer[0]); i++)
41 if (i != blob->secret_offset)
42 answer = answer && (blob->secret_drawer[i] == 0);
43 else
44 answer = answer &&
45 (blob->secret_drawer[blob->secret_offset] ==
46 ANSWER_TO_THE_ULTIMATE_QUESTION_OF_LIFE_THE_UNIVERSE_AND_EVERYTHING);
48 return answer;
51 void destroy_opaque_blob(struct opaque *blob)
53 free(blob);