void wi_test_ip(void) { WI_TEST_ASSERT_TRUE(wi_ip_matches_string(WI_STR("127.0.0.1"), WI_STR("127.0.0.1")), ""); WI_TEST_ASSERT_TRUE(wi_ip_matches_string(WI_STR("127.0.0.1"), WI_STR("127.0.0.*")), ""); WI_TEST_ASSERT_FALSE(wi_ip_matches_string(WI_STR("255.0.0.1"), WI_STR("127.0.0.*")), ""); WI_TEST_ASSERT_TRUE(wi_ip_matches_string(WI_STR("127.0.0.1"), WI_STR("127.0.0.0/24")), ""); WI_TEST_ASSERT_FALSE(wi_ip_matches_string(WI_STR("255.0.0.1"), WI_STR("127.0.0.0/24")), ""); WI_TEST_ASSERT_TRUE(wi_ip_matches_string(WI_STR("::1"), WI_STR("0000:0000:0000:0000:0000:0000:0000:0001")), ""); }
void wi_test_string_compare(void) { WI_TEST_ASSERT_TRUE(wi_is_equal(wi_string_with_cstring("hello world"), wi_string_with_cstring("hello world")), ""); WI_TEST_ASSERT_FALSE(wi_is_equal(wi_string_with_cstring("hello world"), wi_string_with_cstring("hello another world")), ""); WI_TEST_ASSERT_TRUE(wi_string_compare(wi_string_with_cstring("hello world"), wi_string_with_cstring("hello world")) == 0, ""); WI_TEST_ASSERT_FALSE(wi_string_compare(wi_string_with_cstring("hello world"), wi_string_with_cstring("Hello world")) == 0, ""); WI_TEST_ASSERT_FALSE(wi_string_compare(wi_string_with_cstring("hello world"), wi_string_with_cstring("hello another world")) == 0, ""); WI_TEST_ASSERT_TRUE(wi_string_case_insensitive_compare(wi_string_with_cstring("hello world"), wi_string_with_cstring("Hello world")) == 0, ""); WI_TEST_ASSERT_FALSE(wi_string_case_insensitive_compare(wi_string_with_cstring("hello world"), wi_string_with_cstring("Hello another world")) == 0, ""); }
void wi_test_runtime_functions(void) { _wi_runtimetest_t *runtimetest1, *runtimetest2; _wi_mutable_runtimetest_t *runtimetest3; _wi_runtimetest_deallocs = 0; runtimetest1 = _wi_runtimetest_init_with_value(_wi_runtimetest_alloc(), 42); runtimetest2 = wi_copy(runtimetest1); WI_TEST_ASSERT_TRUE(runtimetest1 == runtimetest2, ""); wi_release(runtimetest2); runtimetest3 = wi_mutable_copy(runtimetest1); WI_TEST_ASSERT_TRUE(runtimetest1 != runtimetest3, ""); WI_TEST_ASSERT_EQUALS(runtimetest1->value, runtimetest3->value, ""); WI_TEST_ASSERT_TRUE(wi_is_equal(runtimetest1, runtimetest3), ""); runtimetest3->value++; WI_TEST_ASSERT_FALSE(wi_is_equal(runtimetest1, runtimetest3), ""); wi_release(runtimetest3); WI_TEST_ASSERT_EQUALS(_wi_runtimetest_deallocs, 1U, ""); WI_TEST_ASSERT_EQUAL_INSTANCES(wi_description(runtimetest1), WI_STR("value=42"), ""); WI_TEST_ASSERT_EQUALS(wi_hash(runtimetest1), 42U, ""); wi_release(runtimetest1); }
void wi_test_indexset_indexes(void) { wi_indexset_t *indexset; indexset = wi_indexset_with_indexes_in_range(wi_make_range(1, 3)); WI_TEST_ASSERT_NOT_NULL(indexset, ""); WI_TEST_ASSERT_EQUALS(wi_indexset_count(indexset), 3U, ""); WI_TEST_ASSERT_TRUE(wi_indexset_contains_index(indexset, 1), ""); WI_TEST_ASSERT_TRUE(wi_indexset_contains_index(indexset, 2), ""); WI_TEST_ASSERT_TRUE(wi_indexset_contains_index(indexset, 3), ""); WI_TEST_ASSERT_FALSE(wi_indexset_contains_index(indexset, 4), ""); WI_TEST_ASSERT_TRUE(wi_indexset_contains_indexes(indexset, wi_indexset_with_index(1)), ""); WI_TEST_ASSERT_FALSE(wi_indexset_contains_indexes(indexset, wi_indexset_with_index(4)), ""); WI_TEST_ASSERT_TRUE(wi_indexset_contains_indexes_in_range(indexset, wi_make_range(2, 1)), ""); WI_TEST_ASSERT_FALSE(wi_indexset_contains_indexes_in_range(indexset, wi_make_range(4, 1)), ""); WI_TEST_ASSERT_EQUALS(wi_indexset_first_index(indexset), 1U, ""); WI_TEST_ASSERT_EQUALS(wi_indexset_last_index(indexset), 3U, ""); }
void wi_test_runtime_invalid(void) { WI_TEST_ASSERT_NULL(wi_runtime_class_with_name(WI_STR("foo")), ""); WI_TEST_ASSERT_NULL(wi_runtime_class_with_id(1337), ""); WI_TEST_ASSERT_EQUALS(wi_runtime_id_for_class(NULL), WI_RUNTIME_ID_NULL, ""); WI_TEST_ASSERT_NULL(wi_runtime_class("foo"), ""); WI_TEST_ASSERT_NULL(wi_runtime_class_name("foo"), ""); WI_TEST_ASSERT_EQUALS(wi_runtime_id("foo"), WI_RUNTIME_ID_NULL, ""); WI_TEST_ASSERT_NULL(wi_retain(NULL), ""); WI_TEST_ASSERT_EQUALS(wi_retain_count(NULL), 0U, ""); WI_TEST_ASSERT_NULL(wi_copy(NULL), ""); WI_TEST_ASSERT_NULL(wi_mutable_copy(NULL), ""); WI_TEST_ASSERT_TRUE(wi_is_equal(NULL, NULL), ""); WI_TEST_ASSERT_FALSE(wi_is_equal(NULL, "foo"), ""); WI_TEST_ASSERT_FALSE(wi_is_equal(wi_array(), wi_dictionary()), ""); WI_TEST_ASSERT_NULL(wi_description(NULL), ""); WI_TEST_ASSERT_EQUALS(wi_hash(NULL), 0U, ""); }
void wi_test_filesystem_failures(void) { wi_array_t *contents; wi_string_t *path, *otherpath; wi_file_stats_t file_stats; wi_filesystem_stats_t filesystem_stats; wi_boolean_t result, is_directory; result = wi_filesystem_create_directory_at_path(WI_STR("/non/existing/directory")); WI_TEST_ASSERT_FALSE(result, ""); result = wi_filesystem_file_exists_at_path(WI_STR("/non/existing/directory"), NULL); WI_TEST_ASSERT_FALSE(result, ""); result = wi_filesystem_change_current_directory_to_path(WI_STR("/non/existing/directory")); WI_TEST_ASSERT_FALSE(result, ""); contents = wi_filesystem_directory_contents_at_path(WI_STR("/non/existing/directory")); WI_TEST_ASSERT_NULL(contents, ""); result = wi_filesystem_create_directory_at_path(WI_STR("/non/existing/directory")); WI_TEST_ASSERT_FALSE(result, ""); result = wi_filesystem_get_file_stats_for_path(WI_STR("/non/existing/file"), &file_stats); WI_TEST_ASSERT_FALSE(result, ""); result = wi_filesystem_get_filesystem_stats_for_path(WI_STR("/non/existing/file"), &filesystem_stats); WI_TEST_ASSERT_FALSE(result, ""); result = wi_filesystem_create_symbolic_link_from_path(WI_STR("/non/existing/file1"), WI_STR("/non/existing/file2")); WI_TEST_ASSERT_FALSE(result, ""); result = wi_filesystem_copy_path(WI_STR("/non/existing/file1"), WI_STR("/non/existing/file2")); WI_TEST_ASSERT_FALSE(result, ""); result = wi_filesystem_delete_path(WI_STR("/non/existing/directory")); WI_TEST_ASSERT_FALSE(result, ""); }
void wi_test_set(void) { wi_set_t *set; set = wi_set_init(wi_set_alloc()); WI_TEST_ASSERT_NOT_NULL(set, ""); wi_set_add_data(set, WI_STR("foo")); WI_TEST_ASSERT_TRUE(wi_set_contains_data(set, WI_STR("foo")), ""); WI_TEST_ASSERT_FALSE(wi_set_contains_data(set, WI_STR("bar")), ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set, WI_STR("foo")), 1U, ""); wi_release(set); set = wi_set_init_with_capacity(wi_set_alloc(), 0, true); WI_TEST_ASSERT_NOT_NULL(set, ""); wi_set_add_data(set, WI_STR("foo")); wi_set_add_data(set, WI_STR("foo")); WI_TEST_ASSERT_TRUE(wi_set_contains_data(set, WI_STR("foo")), ""); WI_TEST_ASSERT_FALSE(wi_set_contains_data(set, WI_STR("bar")), ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set, WI_STR("foo")), 2U, ""); wi_set_remove_data(set, WI_STR("foo")); WI_TEST_ASSERT_TRUE(wi_set_contains_data(set, WI_STR("foo")), ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set, WI_STR("foo")), 1U, ""); wi_set_remove_data(set, WI_STR("foo")); WI_TEST_ASSERT_FALSE(wi_set_contains_data(set, WI_STR("foo")), ""); WI_TEST_ASSERT_EQUALS(wi_set_count_for_data(set, WI_STR("foo")), 0U, ""); wi_release(set); }
void wi_test_error(void) { wi_string_t *string; wi_boolean_t result; result = wi_filesystem_file_exists_at_path(WI_STR("/non/existing/path"), NULL); WI_TEST_ASSERT_FALSE(result, ""); WI_TEST_ASSERT_EQUALS(wi_error_domain(), WI_ERROR_DOMAIN_ERRNO, ""); WI_TEST_ASSERT_EQUALS(wi_error_code(), ENOENT, ""); WI_TEST_ASSERT_EQUAL_INSTANCES(wi_error_string(), WI_STR("No such file or directory"), ""); string = wi_string_with_format(WI_STR("%m")); WI_TEST_ASSERT_EQUAL_INSTANCES(string, WI_STR("No such file or directory"), ""); }
void wi_test_number(void) { WI_TEST_ASSERT_TRUE(wi_number_bool(wi_number_with_bool(true)), ""); WI_TEST_ASSERT_FALSE(wi_number_bool(wi_number_with_bool(false)), ""); WI_TEST_ASSERT_EQUALS(wi_number_int32(wi_number_with_int32(2147483647)), 2147483647, ""); WI_TEST_ASSERT_EQUALS((uint32_t) wi_number_int32(wi_number_with_int32(4294967295U)), 4294967295U, ""); WI_TEST_ASSERT_EQUALS(wi_number_int64(wi_number_with_int64(9223372036854775807LL)), 9223372036854775807LL, ""); WI_TEST_ASSERT_EQUALS((uint64_t) wi_number_int64(wi_number_with_int64(18446744073709551615ULL)), 18446744073709551615ULL, ""); #ifdef WI_32 WI_TEST_ASSERT_EQUALS(wi_number_integer(wi_number_with_integer(2147483647)), 2147483647, ""); WI_TEST_ASSERT_EQUALS((wi_uinteger_t) wi_number_integer(wi_number_with_integer(4294967295U)), 4294967295U, ""); #else WI_TEST_ASSERT_EQUALS(wi_number_integer(wi_number_with_integer(9223372036854775807LL)), 9223372036854775807LL, ""); WI_TEST_ASSERT_EQUALS((wi_uinteger_t) wi_number_integer(wi_number_with_integer(18446744073709551615ULL)), 18446744073709551615ULL, ""); #endif WI_TEST_ASSERT_EQUALS_WITH_ACCURACY(wi_number_float(wi_number_with_float(3.40282346e38)), 3.40282346e38F, 0.0001, ""); WI_TEST_ASSERT_EQUALS_WITH_ACCURACY(wi_number_double(wi_number_with_double(1.7976931348623155e308)), 1.7976931348623155e308, 0.0001, ""); }
void wi_test_indexset_mutation(void) { wi_mutable_indexset_t *indexset1, *indexset2; indexset1 = wi_mutable_indexset(); WI_TEST_ASSERT_EQUALS(wi_indexset_count(indexset1), 0U, ""); WI_TEST_ASSERT_FALSE(wi_indexset_contains_index(indexset1, 1), ""); WI_TEST_ASSERT_FALSE(wi_indexset_contains_index(indexset1, 2), ""); WI_TEST_ASSERT_FALSE(wi_indexset_contains_index(indexset1, 3), ""); WI_TEST_ASSERT_EQUALS(wi_indexset_first_index(indexset1), 0U, ""); WI_TEST_ASSERT_EQUALS(wi_indexset_last_index(indexset1), 0U, ""); wi_mutable_indexset_add_index(indexset1, 1); wi_mutable_indexset_add_indexes(indexset1, wi_indexset_with_index(2)); wi_mutable_indexset_add_indexes_in_range(indexset1, wi_make_range(3, 1)); WI_TEST_ASSERT_EQUALS(wi_indexset_count(indexset1), 3U, ""); WI_TEST_ASSERT_TRUE(wi_indexset_contains_index(indexset1, 1), ""); WI_TEST_ASSERT_TRUE(wi_indexset_contains_index(indexset1, 2), ""); WI_TEST_ASSERT_TRUE(wi_indexset_contains_index(indexset1, 3), ""); WI_TEST_ASSERT_EQUALS(wi_indexset_first_index(indexset1), 1U, ""); WI_TEST_ASSERT_EQUALS(wi_indexset_last_index(indexset1), 3U, ""); wi_mutable_indexset_remove_index(indexset1, 1); wi_mutable_indexset_remove_indexes(indexset1, wi_indexset_with_index(2)); wi_mutable_indexset_remove_indexes_in_range(indexset1, wi_make_range(3, 1)); WI_TEST_ASSERT_EQUALS(wi_indexset_count(indexset1), 0U, ""); WI_TEST_ASSERT_FALSE(wi_indexset_contains_index(indexset1, 1), ""); WI_TEST_ASSERT_FALSE(wi_indexset_contains_index(indexset1, 2), ""); WI_TEST_ASSERT_FALSE(wi_indexset_contains_index(indexset1, 3), ""); WI_TEST_ASSERT_EQUALS(wi_indexset_first_index(indexset1), 0U, ""); WI_TEST_ASSERT_EQUALS(wi_indexset_last_index(indexset1), 0U, ""); wi_mutable_indexset_add_indexes_in_range(indexset1, wi_make_range(1, 3)); indexset2 = wi_autorelease(wi_mutable_copy(indexset1)); wi_mutable_indexset_add_index(indexset2, 5); wi_mutable_indexset_add_index(indexset2, 4); WI_TEST_ASSERT_EQUALS(wi_indexset_count(indexset2), 5U, ""); WI_TEST_ASSERT_TRUE(wi_indexset_contains_index(indexset2, 1), ""); WI_TEST_ASSERT_TRUE(wi_indexset_contains_index(indexset2, 2), ""); WI_TEST_ASSERT_TRUE(wi_indexset_contains_index(indexset2, 3), ""); WI_TEST_ASSERT_TRUE(wi_indexset_contains_index(indexset2, 4), ""); WI_TEST_ASSERT_TRUE(wi_indexset_contains_index(indexset2, 5), ""); WI_TEST_ASSERT_EQUALS(wi_indexset_first_index(indexset2), 1U, ""); WI_TEST_ASSERT_EQUALS(wi_indexset_last_index(indexset2), 5U, ""); wi_mutable_indexset_set_indexes(indexset1, indexset2); WI_TEST_ASSERT_EQUAL_INSTANCES(indexset1, indexset2, ""); wi_mutable_indexset_remove_all_indexes(indexset1); WI_TEST_ASSERT_EQUALS(wi_indexset_count(indexset1), 0U, ""); WI_TEST_ASSERT_FALSE(wi_indexset_contains_index(indexset1, 1), ""); WI_TEST_ASSERT_FALSE(wi_indexset_contains_index(indexset1, 2), ""); WI_TEST_ASSERT_FALSE(wi_indexset_contains_index(indexset1, 3), ""); WI_TEST_ASSERT_EQUALS(wi_indexset_first_index(indexset1), 0U, ""); WI_TEST_ASSERT_EQUALS(wi_indexset_last_index(indexset1), 0U, ""); }