mirror of https://github.com/weiju/amiga-stuff
79 lines
2.2 KiB
C
79 lines
2.2 KiB
C
#include <string.h>
|
|
|
|
#include "../chibi_test/chibi.h"
|
|
#include "file_list.h"
|
|
|
|
CHIBI_TEST(TestMakeEntry)
|
|
{
|
|
struct FileListEntry *entry = new_file_list_entry();
|
|
chibi_assert_not_null(entry);
|
|
chibi_assert(entry->next == NULL);
|
|
chibi_assert(entry->prev == NULL);
|
|
free_file_list(entry);
|
|
}
|
|
|
|
CHIBI_TEST(TestSortListNull)
|
|
{
|
|
chibi_assert(sort_file_list(NULL, TRUE) == NULL);
|
|
chibi_assert(sort_file_list(NULL, FALSE) == NULL);
|
|
}
|
|
|
|
CHIBI_TEST(TestSortListSingle)
|
|
{
|
|
struct FileListEntry *entry = new_file_list_entry();
|
|
chibi_assert(sort_file_list(entry, TRUE) == entry);
|
|
chibi_assert(sort_file_list(entry, FALSE) == entry);
|
|
chibi_assert_eq_int(entry->index, 0);
|
|
free_file_list(entry);
|
|
}
|
|
|
|
CHIBI_TEST(TestSortListTwoElemsAsc)
|
|
{
|
|
struct FileListEntry *entry1 = new_file_list_entry();
|
|
struct FileListEntry *entry2 = new_file_list_entry();
|
|
strcpy(entry2->name, "abc");
|
|
strcpy(entry1->name, "bcd");
|
|
entry1->next = entry2;
|
|
entry2->prev = entry1;
|
|
|
|
chibi_assert(sort_file_list(entry1, TRUE) == entry2);
|
|
chibi_assert(entry2->prev == NULL);
|
|
chibi_assert(entry1->next == NULL);
|
|
chibi_assert_eq_int(0, entry2->index);
|
|
chibi_assert_eq_int(1, entry1->index);
|
|
free_file_list(entry2);
|
|
}
|
|
|
|
CHIBI_TEST(TestSortListTwoElemsDesc)
|
|
{
|
|
struct FileListEntry *entry1 = new_file_list_entry();
|
|
struct FileListEntry *entry2 = new_file_list_entry();
|
|
strcpy(entry2->name, "abc");
|
|
strcpy(entry1->name, "bcd");
|
|
entry1->next = entry2;
|
|
entry2->prev = entry1;
|
|
|
|
chibi_assert(sort_file_list(entry1, FALSE) == entry1);
|
|
chibi_assert(entry1->prev == NULL);
|
|
chibi_assert(entry2->next == NULL);
|
|
chibi_assert_eq_int(0, entry1->index);
|
|
chibi_assert_eq_int(1, entry2->index);
|
|
free_file_list(entry1);
|
|
}
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
chibi_summary_data summary;
|
|
chibi_suite *suite = chibi_suite_new();
|
|
chibi_suite_add_test(suite, TestMakeEntry);
|
|
chibi_suite_add_test(suite, TestSortListNull);
|
|
chibi_suite_add_test(suite, TestSortListSingle);
|
|
chibi_suite_add_test(suite, TestSortListTwoElemsAsc);
|
|
chibi_suite_add_test(suite, TestSortListTwoElemsDesc);
|
|
|
|
chibi_suite_run(suite, &summary);
|
|
|
|
chibi_suite_delete(suite);
|
|
return summary.num_failures;
|
|
}
|