annotate src/llrb/verifier/verify_put_cs.c @ 270:b6ed4b2a5d9d

fix CMakeList
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 30 Jan 2017 11:16:17 +0900
parents 3d7ecced7e14
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
99
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 /* Verification of LLRB-Tree height in put operations.
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 * LLRB-Tree allows (max-height) <= 2*(min-height).
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 */
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 #include <stdlib.h>
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 #include <stdio.h>
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 #include <time.h>
100
3d7ecced7e14 Split functions which gets tree height
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents: 99
diff changeset
8 #include "llrbContextWithVerifier.h"
99
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 __code meta(struct Context* context, enum Code next) {
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 if (next == Put) {
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 verify_tree_height(context->data[Tree]->tree.root);
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 }
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 goto (context->code[next])(context);
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 }
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 __code start_code(struct Context* context, enum Code next) {
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 unsigned int seed = (unsigned int)time(NULL);
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 printf("--- srand(%u)\n", seed);
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 goto meta(context, next);
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 }
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 __code exit_code(struct Context* context) {
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 free(context->code);
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 free(context->data);
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 free(context->heapStart);
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 goto exit(0);
ca55f4be5f0f Create verifier directory
Yasutaka Higa <e115763@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 }