test/minecraft: test parse_player_entity

This commit is contained in:
2026-06-12 02:23:16 +09:00
parent 20171830ea
commit 8281c700bc
3 changed files with 47 additions and 16 deletions
+26
View File
@@ -0,0 +1,26 @@
#include <stdarg.h>
#include <stddef.h>
#include <cmocka.h>
#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);
}
+21
View File
@@ -0,0 +1,21 @@
#include <cmocka.h>
#include <math.h>
#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);
}
-16
View File
@@ -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);
}