libbtrfsutil: use pkg-config detection for the right Python version
[platform/upstream/btrfs-progs.git] / quick-test.c
index fa6fd83..5da47c3 100644 (file)
@@ -27,7 +27,7 @@
 #include "transaction.h"
 
 /* for testing only */
-int next_key(int i, int max_key) {
+static int next_key(int i, int max_key) {
        return rand() % max_key;
        // return i;
 }
@@ -46,15 +46,19 @@ int main(int ac, char **av) {
        struct btrfs_root *root;
        struct btrfs_trans_handle *trans;
 
-       buf = malloc(512);
-       memset(buf, 0, 512);
+       buf = calloc(1, 512);
 
        radix_tree_init();
 
-       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, O_RDWR);
+       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, OPEN_CTREE_WRITES);
+       if (!root) {
+               fprintf(stderr, "Open ctree failed\n");
+               exit(1);
+       }
        trans = btrfs_start_transaction(root, 1);
+       BUG_ON(IS_ERR(trans));
        srand(55);
-       btrfs_set_key_type(&ins, BTRFS_STRING_ITEM_KEY);
+       ins.type = BTRFS_STRING_ITEM_KEY;
        for (i = 0; i < run_size; i++) {
                num = next_key(i, max_key);
                // num = i;
@@ -69,12 +73,17 @@ int main(int ac, char **av) {
                if (i == run_size - 5) {
                        btrfs_commit_transaction(trans, root);
                        trans = btrfs_start_transaction(root, 1);
+                       BUG_ON(IS_ERR(trans));
                }
        }
        btrfs_commit_transaction(trans, root);
        close_ctree(root);
        exit(1);
-       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, O_RDWR);
+       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, OPEN_CTREE_WRITES);
+       if (!root) {
+               fprintf(stderr, "Open ctree failed\n");
+               exit(1);
+       }
        printf("starting search\n");
        srand(55);
        for (i = 0; i < run_size; i++) {
@@ -89,20 +98,25 @@ int main(int ac, char **av) {
                        printf("unable to find %d\n", num);
                        exit(1);
                }
-               btrfs_release_path(root, &path);
+               btrfs_release_path(&path);
        }
        close_ctree(root);
 
-       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, O_RDWR);
+       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, OPEN_CTREE_WRITES);
+       if (!root) {
+               fprintf(stderr, "Open ctree failed\n");
+               exit(1);
+       }
        printf("node %p level %d total ptrs %d free spc %lu\n", root->node,
                btrfs_header_level(root->node),
                btrfs_header_nritems(root->node),
-               (unsigned long)BTRFS_NODEPTRS_PER_BLOCK(root) -
+               (unsigned long)BTRFS_NODEPTRS_PER_BLOCK(root->fs_info) -
                btrfs_header_nritems(root->node));
        printf("all searches good, deleting some items\n");
        i = 0;
        srand(55);
        trans = btrfs_start_transaction(root, 1);
+       BUG_ON(IS_ERR(trans));
        for (i = 0 ; i < run_size/4; i++) {
                num = next_key(i, max_key);
                ins.objectid = num;
@@ -116,13 +130,18 @@ int main(int ac, char **av) {
                                BUG();
                        tree_size--;
                }
-               btrfs_release_path(root, &path);
+               btrfs_release_path(&path);
        }
        btrfs_commit_transaction(trans, root);
        close_ctree(root);
 
-       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, O_RDWR);
+       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, OPEN_CTREE_WRITES);
+       if (!root) {
+               fprintf(stderr, "Open ctree failed\n");
+               exit(1);
+       }
        trans = btrfs_start_transaction(root, 1);
+       BUG_ON(IS_ERR(trans));
        srand(128);
        for (i = 0; i < run_size; i++) {
                num = next_key(i, max_key);
@@ -137,7 +156,11 @@ int main(int ac, char **av) {
        btrfs_commit_transaction(trans, root);
        close_ctree(root);
 
-       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, O_RDWR);
+       root = open_ctree(av[1], BTRFS_SUPER_INFO_OFFSET, OPEN_CTREE_WRITES);
+       if (!root) {
+               fprintf(stderr, "Open ctree failed\n");
+               exit(1);
+       }
        srand(128);
        printf("starting search2\n");
        for (i = 0; i < run_size; i++) {
@@ -152,10 +175,11 @@ int main(int ac, char **av) {
                        printf("unable to find %d\n", num);
                        exit(1);
                }
-               btrfs_release_path(root, &path);
+               btrfs_release_path(&path);
        }
        printf("starting big long delete run\n");
        trans = btrfs_start_transaction(root, 1);
+       BUG_ON(IS_ERR(trans));
        while(root->node && btrfs_header_nritems(root->node) > 0) {
                struct extent_buffer *leaf;
                int slot;
@@ -185,7 +209,7 @@ int main(int ac, char **av) {
                        }
                        tree_size--;
                }
-               btrfs_release_path(root, &path);
+               btrfs_release_path(&path);
        }
        /*
        printf("previous tree:\n");