diff --git a/test/test.c b/test/test.c new file mode 100644 index 0000000..a8672b8 --- /dev/null +++ b/test/test.c @@ -0,0 +1,26 @@ +#include +#include +#include + +#include "test_minecraft.c" +#include "test_rcon.c" + +int main(void) { + const struct CMUnitTest tests[] = { + // RCON tests + cmocka_unit_test(test_serialization_roundtrip_command_packet), + cmocka_unit_test(test_serialization_roundtrip_auth_packet), + cmocka_unit_test(test_serialization_roundtrip_empty_body_packet), + cmocka_unit_test(test_serialization_roundtrip_max_supported_body), + cmocka_unit_test(test_recv_packet_errors_on_unexpected_close), + cmocka_unit_test(test_authenticate_successful_flow), + cmocka_unit_test(test_authenticate_invalid_password), + cmocka_unit_test(test_authenticate_unexpected_packet_type), + cmocka_unit_test(test_authenticate_mismatched_response_id), + + // Minecraft tests + cmocka_unit_test(test_parse_player_entity), + }; + + return cmocka_run_group_tests(tests, NULL, NULL); +} diff --git a/test/test_minecraft.c b/test/test_minecraft.c new file mode 100644 index 0000000..a0c6779 --- /dev/null +++ b/test/test_minecraft.c @@ -0,0 +1,21 @@ +#include +#include + +#include "../src/minecraft.h" + +static void test_parse_player_entity(void **state) { + (void)state; + + player_entity_t entity = {0}; + const char *response = + "Steve has the following entity data: [-1234.1234567891234d, 71.0d, 113.0000000000001d]"; + + assert_int_equal(parse_player_entity(response, &entity), 0); + assert_non_null(entity.name); + assert_string_equal(entity.name, "Steve"); + assert_true(fabs(entity.x - (-1234.1234567891234)) < 1e-12); + assert_true(fabs(entity.y - 71.0) < 1e-12); + assert_true(fabs(entity.z - 113.0000000000001) < 1e-12); + + free_player_entity(&entity); +} diff --git a/test/test_rcon.c b/test/test_rcon.c index 9cfd627..fa74e88 100644 --- a/test/test_rcon.c +++ b/test/test_rcon.c @@ -216,19 +216,3 @@ static void test_authenticate_mismatched_response_id(void **state) { } /// End of authentication logic /// - -int main(void) { - const struct CMUnitTest tests[] = { - cmocka_unit_test(test_serialization_roundtrip_command_packet), - cmocka_unit_test(test_serialization_roundtrip_auth_packet), - cmocka_unit_test(test_serialization_roundtrip_empty_body_packet), - cmocka_unit_test(test_serialization_roundtrip_max_supported_body), - cmocka_unit_test(test_recv_packet_errors_on_unexpected_close), - cmocka_unit_test(test_authenticate_successful_flow), - cmocka_unit_test(test_authenticate_invalid_password), - cmocka_unit_test(test_authenticate_unexpected_packet_type), - cmocka_unit_test(test_authenticate_mismatched_response_id), - }; - - return cmocka_run_group_tests(tests, NULL, NULL); -}