#include "test_str8.h"
#include "test_str8_list.h"
#include "test_allocator.h"
#include "test_arena.h"
#include "test_str8_array.h"
#include "test_i32_array.h"
#include "test_cpath.h"
#include "test_shell_commander.h"
#include "wapp.h"
#include <stdlib.h>

int main(void) {
  wapp_tester_run_tests(
      test_arena_allocator,
      test_arena_init,
      test_arena_init_succeeds_when_reserving_very_large_size,
      test_arena_alloc_succeeds_when_within_capacity,
      test_arena_alloc_fails_when_over_capacity,
      test_arena_realloc_bigger_size,
      test_arena_realloc_smaller_size,
      test_arena_clear,
      test_arena_destroy,
      test_str8_array,
      test_i32_array,
      test_i32_array_with_capacity,
      test_i32_array_get,
      test_i32_array_set,
      test_i32_array_append_capped,
      test_i32_array_extend_capped,
      test_i32_array_clear,
      test_i32_array_pop,
      test_i32_array_copy_capped,
      test_i32_array_alloc_capacity,
      test_i32_array_append_alloc,
      test_i32_array_extend_alloc,
      test_i32_array_copy_alloc,
      test_str8_lit,
      test_str8_lit_ro,
      test_str8_buf,
      test_str8_alloc_buf,
      test_str8_alloc_cstr,
      test_str8_alloc_str8,
      test_str8_alloc_substr,
      test_str8_alloc_concat,
      test_str8_get_index_within_bounds,
      test_str8_get_index_out_of_bounds,
      test_str8_set,
      test_str8_equal,
      test_str8_slice,
      test_str8_concat_capped,
      test_str8_copy_cstr_capped,
      test_str8_copy_str8_capped,
      test_str8_format,
      test_str8_find,
      test_str8_rfind,
      test_str8_split,
      test_str8_split_with_max,
      test_str8_rsplit,
      test_str8_rsplit_with_max,
      test_str8_join,
      test_str8_from_bytes,
      test_str8_list_get,
      test_str8_list_push_front,
      test_str8_list_push_back,
      test_str8_list_insert,
      test_str8_list_pop_front,
      test_str8_list_pop_back,
      test_str8_list_remove,
      test_str8_list_empty,
      test_cpath_join_path,
      test_cpath_dirname,
      test_cpath_dirup,
      test_commander_cmd_success,
      test_commander_cmd_failure,
      test_commander_cmd_out_buf_success,
      test_commander_cmd_out_buf_failure
  );

  return EXIT_SUCCESS;
}
