int main() { log_t l; log_init(&l); int i; log_append(&l,"Iddd am a genius"); log_append(&l,"2"); log_append(&l, "ab 1"); log_append(&l, "a 2"); log_append(&l, "abc 3"); log_append(&l, "ab 4"); log_append(&l, "a 5"); printf("search: %s\n",log_search(&l,"a")); printf("pop: %s\n",log_pop(&l)); printf("search: %s\n",log_search(&l,"a")); printf("search: %s\n",log_search(&l,"ab")); printf("pop: %s\n",log_pop(&l)); printf("search: %s\n",log_search(&l,"ab")); printf("search: %s\n",log_search(&l,"abc")); for(i=0;i<1024*1024*100;++i){ log_append(&l,"I am a genius"); } printf("size: %ul \n",log_size(&l)); printf("search: %s\n",log_search(&l,"I am")); for(i=0;i<1024*1024;++i){ log_pop(&l); } printf("size: %u \n",log_size(&l)); printf("search: %s\n",log_search(&l,"I am")); log_destroy(&l); return 0; }
END_TEST START_TEST (test_cometd_listener_fire_with_wildcards) { JsonNode* message = cometd_json_str2node("{}"); cometd_subscription *s1, *s2; s1 = cometd_listener_add(listeners, "/foo/**", log_handler); s2 = cometd_listener_add(listeners, "/quux/*", log_handler); cometd_listener_fire(listeners, "/foo/bar/baz", NULL, message); ck_assert_int_eq(1, log_size()); cometd_listener_fire(listeners, "/quux/wat/wut", NULL, message); ck_assert_int_eq(1, log_size()); cometd_listener_fire(listeners, "/quux/wat", NULL, message); ck_assert_int_eq(2, log_size()); json_node_free(message); }
int main() { log_t l; log_init(&l); printf("\nTesting log_append():\n"); log_append(&l, "ab 1"); log_append(&l, "a 2"); log_append(&l, "abc 3"); log_append(&l, "ab 4"); log_append(&l, "a 5"); printf("0: '%s'\n",log_at(&l, 0)); printf("1: '%s'\n",log_at(&l, 1)); printf("2: '%s'\n",log_at(&l, 2)); printf("3: '%s'\n",log_at(&l, 3)); printf("4: '%s'\n",log_at(&l, 4)); printf("log size: %d\n", log_size(&l)); printf("\n"); // Are you copying the contents of the string into your log or are you // just storing a pointer to the string? printf("Testing method of appending entries:\n"); char * temp = malloc(11), * temp2 = malloc(10); // "cba 6" temp[0] = 'c'; temp[1] = 'b'; temp[2] = 'a'; temp[3] = ' '; temp[4] = '6'; temp[5]= '\0'; // Copy of "cba 6" temp2[0] = temp[0]; temp2[1] = temp[1]; temp2[2] = temp[2]; temp2[3] = temp[3]; temp2[4] = temp[4]; temp2[5] = temp[5]; log_append(&l, temp); // "abc 6" temp[0] = 'a'; temp[1] = 'b'; temp[2] = 'c'; if (strncmp(temp, temp2, 6) == 0) printf("FAIL:\tNew log entries are copied instead of pointed to.\n\tExpected: '%s'\n\tActual: '%s'\n\n",temp2,log_pop(&l)); else printf("SUCC:\tExpected: '%s'\n\tActual: '%s'\n\n",temp,log_pop(&l)); printf("Testing log_pop():\n"); printf("Popped: '%s'. ", log_pop(&l)); printf("Current size: %d\n", log_size(&l)); printf("Popped: '%s'. ", log_pop(&l)); printf("Current size: %d\n", log_size(&l)); printf("Popped: '%s'. ", log_pop(&l)); printf("Current size: %d\n", log_size(&l)); printf("Popped: '%s'. ", log_pop(&l)); printf("Current size: %d\n", log_size(&l)); printf("Popped: '%s'. ", log_pop(&l)); printf("Current size: %d\n", log_size(&l)); printf("Popped: '%s'. ", log_pop(&l)); printf("Current size: %d\n", log_size(&l)); printf("\n"); printf("Re-populating log entries:\n"); log_append(&l, "ab 1"); log_append(&l, "a 2"); log_append(&l, "abc 3"); log_append(&l, "ab 4"); log_append(&l, "a 5"); printf("0: '%s'\n",log_at(&l, 0)); printf("1: '%s'\n",log_at(&l, 1)); printf("2: '%s'\n",log_at(&l, 2)); printf("3: '%s'\n",log_at(&l, 3)); printf("4: '%s'\n",log_at(&l, 4)); printf("log size: %d\n", log_size(&l)); printf("\n"); printf("Testing log_search():\n"); printf("searching 'ab': '%s'\n",log_search(&l, "ab")); printf("searching 'a': '%s'\n",log_search(&l, "a")); printf("searching 'abc': '%s'\n",log_search(&l, "abc")); printf("searching 'd': '%s'\n",log_search(&l, "d")); printf("\nDone.\n\n"); log_destroy(&l); free(temp); free(temp2); return 0; }