test_array.c 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /**
  2. * This is a test for array in si
  3. */
  4. #include "si_test.h"
  5. #include "si_array.h"
  6. typedef struct TestArray1_ {
  7. int a;
  8. char b;
  9. } TestArray1;
  10. TEST_FUNC(si_array) {
  11. TestArray1 ts1 = { 54321, 123 };
  12. TestArray1 * tsp;
  13. SiArray * parr = siarray_newptr(64); // pointer array
  14. SiArray * darr = siarray_new(64, sizeof(TestArray1)); // data array
  15. TEST_INTEQ(0, siarray_size(darr));
  16. TEST_INTEQ(0, siarray_size(parr));
  17. TEST_INTEQ(64, siarray_room(darr));
  18. TEST_INTEQ(64, siarray_room(parr));
  19. TEST_NULL(siarray_size_(parr, 77));
  20. TEST_NULL(siarray_size_(darr, 88));
  21. TEST_NOTNULL(siarray_size_(parr, 33));
  22. TEST_NOTNULL(siarray_size_(darr, 44));
  23. TEST_INTEQ(33, siarray_size(parr));
  24. TEST_INTEQ(44, siarray_size(darr));
  25. TEST_NOTNULL(siarray_size_(parr, 0));
  26. TEST_NOTNULL(siarray_size_(darr, 0));
  27. TEST_NULL(siarray_putptr(parr, 123, NULL));
  28. TEST_NULL(siarray_getptr(parr, 123));
  29. TEST_NULL(siarray_putdata(darr, 123, NULL));
  30. TEST_NULL(siarray_getdata(darr, 123));
  31. TEST_NOTNULL(siarray_putptr(parr, 12, &ts1));
  32. tsp = siarray_getptr(parr, 12);
  33. TEST_NOTNULL(tsp);
  34. TEST_MEMEQ(&ts1, sizeof(TestArray1), tsp);
  35. TEST_NOTNULL(siarray_putdata(darr, 7, &ts1));
  36. tsp = siarray_getdata(darr, 7);
  37. TEST_NOTNULL(tsp);
  38. TEST_MEMEQ(&ts1, sizeof(TestArray1), tsp);
  39. TEST_NOTNULL(siarray_putdata(darr, 12, &ts1));
  40. TEST_NOTNULL(siarray_getdata(darr, 12));
  41. TEST_NOTNULL(siarray_grow(parr, 32));
  42. TEST_NOTNULL(siarray_grow(parr, 128));
  43. TEST_MEMEQ(&ts1, sizeof(TestArray1), siarray_getptr(parr, 12));
  44. TEST_NOTNULL(siarray_putptr(parr, 123, &ts1));
  45. TEST_MEMEQ(&ts1, sizeof(TestArray1), siarray_getptr(parr, 123));
  46. TEST_PTREQ(&ts1, siarray_getptr(parr, 123));
  47. TEST_NOTNULL(siarray_size_(parr, 77));
  48. siarray_free(parr);
  49. siarray_free(darr);
  50. TEST_DONE();
  51. }
  52. int main(void) {
  53. TEST_INIT();
  54. TEST_RUN(si_array);
  55. TEST_REPORT();
  56. }