test/minecraft: test parse_player_entity
This commit is contained in:
+26
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user