queue.c 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <glib.h>
  4. #include "test.h"
  5. RESULT
  6. test_queue_push ()
  7. {
  8. GQueue *queue = g_queue_new ();
  9. g_queue_push_head (queue, "foo");
  10. g_queue_push_head (queue, "bar");
  11. g_queue_push_head (queue, "baz");
  12. if (queue->length != 3)
  13. return FAILED ("push failed");
  14. g_queue_free (queue);
  15. return OK;
  16. }
  17. RESULT
  18. test_queue_pop ()
  19. {
  20. GQueue *queue = g_queue_new ();
  21. gpointer data;
  22. g_queue_push_head (queue, "foo");
  23. g_queue_push_head (queue, "bar");
  24. g_queue_push_head (queue, "baz");
  25. data = g_queue_pop_head (queue);
  26. if (strcmp ("baz", data))
  27. return FAILED ("expect baz.");
  28. data = g_queue_pop_head (queue);
  29. if (strcmp ("bar", data))
  30. return FAILED ("expect bar.");
  31. data = g_queue_pop_head (queue);
  32. if (strcmp ("foo", data))
  33. return FAILED ("expect foo.");
  34. if (g_queue_is_empty (queue) == FALSE)
  35. return FAILED ("expect is_empty.");
  36. if (queue->length != 0)
  37. return FAILED ("expect 0 length .");
  38. g_queue_free (queue);
  39. return OK;
  40. }
  41. RESULT
  42. test_queue_new ()
  43. {
  44. GQueue *queue = g_queue_new ();
  45. if (queue->length != 0)
  46. return FAILED ("expect length == 0");
  47. if (queue->head != NULL)
  48. return FAILED ("expect head == NULL");
  49. if (queue->tail != NULL)
  50. return FAILED ("expect tail == NULL");
  51. g_queue_free (queue);
  52. return OK;
  53. }
  54. RESULT
  55. test_queue_is_empty ()
  56. {
  57. GQueue *queue = g_queue_new ();
  58. if (g_queue_is_empty (queue) == FALSE)
  59. return FAILED ("new queue should be empty");
  60. g_queue_push_head (queue, "foo");
  61. if (g_queue_is_empty (queue) == TRUE)
  62. return FAILED ("expected TRUE");
  63. g_queue_free (queue);
  64. return OK;
  65. }
  66. static Test queue_tests [] = {
  67. { "push", test_queue_push},
  68. { "pop", test_queue_pop},
  69. { "new", test_queue_new},
  70. {"is_empty", test_queue_is_empty},
  71. {NULL, NULL}
  72. };
  73. DEFINE_TEST_GROUP_INIT(queue_tests_init, queue_tests)