static void process_test_entry (test_set_t *test_set, test_entry_t *entry) { GSList *tmp; char *file_name; FILE *f; init_test_set (test_set); entry->data = g_memdup (test_set->assembly_data, test_set->assembly_size); entry->data_size = test_set->assembly_size; entry->test_set = test_set; DEBUG_PARSER (printf("(%d)%s\n", test_set->count, test_validity_name (entry->validity))); for (tmp = entry->patches; tmp; tmp = tmp->next) apply_patch (entry, tmp->data); file_name = make_test_name (entry, test_set); f = fopen (file_name, "wo"); fwrite (entry->data, entry->data_size, 1, f); fclose (f); g_free (file_name); }
/* * First test: size = 64 */ static void test1(void) { uint32_t x; printf("\n" "=================\n" " TEST 1\n" "=================\n\n"); // 50 initial elements init_test_set(&set, 6, 50); printf("=== Initial set: 50 additions ===\n"); print_bvset(&set); printf("\n"); do { x = large_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, set.nelems); } while (x != 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); reset_large_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); // 40 initial elements add_random(&set, 40, 63); printf("\n=== After 40 additions ===\n"); print_bvset(&set); printf("\n"); do { x = large_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, set.nelems); } while (x != 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); // empty initial set reset_large_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); do { x = large_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, set.nelems); } while (x != 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); delete_large_bvset(&set); }
/* * Size = 2048 */ static void test3(void) { uint32_t x; printf("\n" "=================\n" " TEST 3\n" "=================\n\n"); // 1000 initial additions init_test_set(&set, 11, 1000); printf("=== Initial set: 1000 additions ===\n"); print_bvset(&set); printf("\n"); do { x = large_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, set.nelems); } while (x != 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); reset_large_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); // 2000 initial additions add_random(&set, 2000, 2047); printf("\n=== After 2000 additions ===\n"); print_bvset(&set); printf("\n"); do { x = large_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, set.nelems); } while (x != 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); // empty initial set reset_large_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); do { x = large_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, set.nelems); } while (x != 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); delete_large_bvset(&set); }
/* * First test: size = 64 */ static void test1(void) { uint32_t x; printf("\n" "=================\n" " TEST 1\n" "=================\n\n"); // 50 initial elements init_test_set(&set, 6, 50); printf("=== Initial set: 50 additions ===\n"); print_bvset(&set); printf("\n"); while (! rb_bvset_full(&set)) { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); } printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); reset_rb_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); // 40 initial elements add_random(&set, 40, 63); printf("\n=== After 40 additions ===\n"); print_bvset(&set); printf("\n"); while (! rb_bvset_full(&set)) { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); } printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); // empty initial set reset_rb_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); while (! rb_bvset_full(&set)) { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); } printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); delete_rb_bvset(&set); }
/* * Size = 2^40 */ static void test3(void) { uint32_t x, n; printf("\n" "=================\n" " TEST 3\n" "=================\n\n"); // 1000 initial additions init_test_set(&set, 40, 1000); printf("=== Initial set: 1000 additions ===\n"); print_bvset(&set); printf("\n"); // 50 calls to get_fresh n = 50; do { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); n --; } while (n > 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); reset_rb_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); // 2000 initial additions add_random(&set, 2000, UINT32_MAX); printf("\n=== After 2000 additions ===\n"); print_bvset(&set); printf("\n"); // 2000000 calls to get fresh n = 2000000; do { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); n --; } while (n > 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); // empty initial set reset_rb_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); // 200000 calls to get fresh n = 200000; do { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); n --; } while (n > 0); printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); delete_rb_bvset(&set); }
/* * Second test: size = 256 */ static void test2(void) { uint32_t x; printf("\n" "=================\n" " TEST 2\n" "=================\n\n"); // 200 initial additions init_test_set(&set, 8, 200); printf("=== Initial set: 200 additions ===\n"); print_bvset(&set); printf("\n"); while (! rb_bvset_full(&set)) { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); } printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); reset_rb_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); // 240 initial elements add_random(&set, 240, 255); printf("\n=== After 240 additions ===\n"); print_bvset(&set); printf("\n"); while (! rb_bvset_full(&set)) { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); } printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); // empty initial set reset_rb_bvset(&set); printf("\n=== After reset ===\n"); print_bvset(&set); printf("\n"); while (! rb_bvset_full(&set)) { x = rb_bvset_get_fresh(&set); printf("get fresh: %"PRIu32", nelems = %"PRIu32"\n", x, rbtree_card(&set.tree)); } printf("\n=== Final set ===\n"); print_bvset(&set); printf("\n"); delete_rb_bvset(&set); }