LCOV - code coverage report
Current view: top level - tests/unit - test_registry.c (source / functions) Coverage Total Hit
Test: coverage.info Lines: 100.0 % 50 50
Test Date: 2026-04-20 19:54:22 Functions: 100.0 % 8 8

            Line data    Source code
       1              : /**
       2              :  * @file test_registry.c
       3              :  * @brief Unit tests for TL constructor registry.
       4              :  */
       5              : 
       6              : #include "test_helpers.h"
       7              : #include "tl_registry.h"
       8              : 
       9              : #include <string.h>
      10              : 
      11            1 : void test_registry_known_constructors(void) {
      12            1 :     ASSERT(tl_constructor_known(TL_rpc_result), "rpc_result should be known");
      13            1 :     ASSERT(tl_constructor_known(TL_rpc_error), "rpc_error should be known");
      14            1 :     ASSERT(tl_constructor_known(TL_gzip_packed), "gzip_packed should be known");
      15            1 :     ASSERT(tl_constructor_known(TL_msg_container), "msg_container should be known");
      16            1 :     ASSERT(tl_constructor_known(TL_user), "user should be known");
      17            1 :     ASSERT(tl_constructor_known(TL_message), "message should be known");
      18            1 :     ASSERT(tl_constructor_known(TL_channel), "channel should be known");
      19            1 :     ASSERT(tl_constructor_known(TL_peerUser), "peerUser should be known");
      20            1 :     ASSERT(tl_constructor_known(TL_config), "config should be known");
      21            1 :     ASSERT(tl_constructor_known(TL_boolTrue), "boolTrue should be known");
      22              : }
      23              : 
      24            1 : void test_registry_unknown_constructor(void) {
      25            1 :     ASSERT(!tl_constructor_known(0x00000000), "0x00000000 should be unknown");
      26            1 :     ASSERT(!tl_constructor_known(0xFFFFFFFF), "0xFFFFFFFF should be unknown");
      27            1 :     ASSERT(!tl_constructor_known(0xDEADBEEF), "0xDEADBEEF should be unknown");
      28              : }
      29              : 
      30            1 : void test_registry_name_lookup(void) {
      31            1 :     ASSERT(strcmp(tl_constructor_name(TL_rpc_result), "rpc_result") == 0,
      32              :            "rpc_result name");
      33            1 :     ASSERT(strcmp(tl_constructor_name(TL_user), "user") == 0,
      34              :            "user name");
      35            1 :     ASSERT(strcmp(tl_constructor_name(TL_message), "message") == 0,
      36              :            "message name");
      37            1 :     ASSERT(strcmp(tl_constructor_name(TL_gzip_packed), "gzip_packed") == 0,
      38              :            "gzip_packed name");
      39            1 :     ASSERT(strcmp(tl_constructor_name(TL_peerChannel), "peerChannel") == 0,
      40              :            "peerChannel name");
      41              : }
      42              : 
      43            1 : void test_registry_unknown_name(void) {
      44            1 :     ASSERT(strcmp(tl_constructor_name(0xDEADBEEF), "unknown") == 0,
      45              :            "unknown constructor should return 'unknown'");
      46              : }
      47              : 
      48            1 : void test_registry_auth_constructors(void) {
      49            1 :     ASSERT(tl_constructor_known(TL_resPQ), "resPQ");
      50            1 :     ASSERT(tl_constructor_known(TL_server_DH_params_ok), "server_DH_params_ok");
      51            1 :     ASSERT(tl_constructor_known(TL_dh_gen_ok), "dh_gen_ok");
      52            1 :     ASSERT(tl_constructor_known(TL_auth_sentCode), "auth.sentCode");
      53            1 :     ASSERT(tl_constructor_known(TL_auth_authorization), "auth.authorization");
      54              : }
      55              : 
      56            1 : void test_registry_update_constructors(void) {
      57            1 :     ASSERT(tl_constructor_known(TL_updates_state), "updates.state");
      58            1 :     ASSERT(tl_constructor_known(TL_updates_difference), "updates.difference");
      59            1 :     ASSERT(tl_constructor_known(TL_updateNewMessage), "updateNewMessage");
      60            1 :     ASSERT(tl_constructor_known(TL_updateShort), "updateShort");
      61              : }
      62              : 
      63            1 : void test_registry_media_constructors(void) {
      64            1 :     ASSERT(tl_constructor_known(TL_messageMediaPhoto), "messageMediaPhoto");
      65            1 :     ASSERT(tl_constructor_known(TL_messageMediaDocument), "messageMediaDocument");
      66            1 :     ASSERT(tl_constructor_known(TL_messageMediaGeo), "messageMediaGeo");
      67            1 :     ASSERT(tl_constructor_known(TL_messageMediaContact), "messageMediaContact");
      68            1 :     ASSERT(tl_constructor_known(TL_document), "document");
      69            1 :     ASSERT(tl_constructor_known(TL_photo), "photo");
      70              : }
      71              : 
      72            1 : void test_registry(void) {
      73            1 :     RUN_TEST(test_registry_known_constructors);
      74            1 :     RUN_TEST(test_registry_unknown_constructor);
      75            1 :     RUN_TEST(test_registry_name_lookup);
      76            1 :     RUN_TEST(test_registry_unknown_name);
      77            1 :     RUN_TEST(test_registry_auth_constructors);
      78            1 :     RUN_TEST(test_registry_update_constructors);
      79            1 :     RUN_TEST(test_registry_media_constructors);
      80            1 : }
        

Generated by: LCOV version 2.0-1