Changeset 4c6fd56 in mainline for uspace/lib/ddev/test/ddev.c


Ignore:
Timestamp:
2023-09-16T19:58:18Z (9 months ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
master, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7d7f5e3
Parents:
6a0b2cc
git-author:
Jiri Svoboda <jiri@…> (2023-09-16 19:48:07)
git-committer:
Jiri Svoboda <jiri@…> (2023-09-16 19:58:18)
Message:

loc_server_register() should be callable more than once (API only)

Now loc_server_register() returns a pointer to a loc_srv_t object,
that is then passed to loc_service_register() and
loc_service_add_to_cat().

Added loc_server_unregister() that unregisters the server
and frees the loc_srv_t object.

Updated all callers. The implementation, however, is a stub.
It is not actually possible to call loc_server_register() more
than once, yet.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/ddev/test/ddev.c

    r6a0b2cc r4c6fd56  
    11/*
    2  * Copyright (c) 2019 Jiri Svoboda
     2 * Copyright (c) 2023 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    7878        ddev_t *ddev = NULL;
    7979        test_response_t resp;
    80 
    81         async_set_fallback_port_handler(test_ddev_conn, &resp);
    82 
    83         // FIXME This causes this test to be non-reentrant!
    84         rc = loc_server_register(test_ddev_server);
    85         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    86 
    87         rc = loc_service_register(test_ddev_svc, &sid);
    88         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    89 
    90         rc = ddev_open(test_ddev_svc, &ddev);
    91         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    92         PCUT_ASSERT_NOT_NULL(ddev);
    93 
    94         ddev_close(ddev);
    95         rc = loc_service_unregister(sid);
    96         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     80        loc_srv_t *srv;
     81
     82        async_set_fallback_port_handler(test_ddev_conn, &resp);
     83
     84        // FIXME This causes this test to be non-reentrant!
     85        rc = loc_server_register(test_ddev_server, &srv);
     86        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     87
     88        rc = loc_service_register(srv, test_ddev_svc, &sid);
     89        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     90
     91        rc = ddev_open(test_ddev_svc, &ddev);
     92        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     93        PCUT_ASSERT_NOT_NULL(ddev);
     94
     95        ddev_close(ddev);
     96        rc = loc_service_unregister(srv, sid);
     97        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     98        loc_server_unregister(srv);
    9799}
    98100
     
    105107        test_response_t resp;
    106108        gfx_context_t *gc;
    107 
    108         async_set_fallback_port_handler(test_ddev_conn, &resp);
    109 
    110         // FIXME This causes this test to be non-reentrant!
    111         rc = loc_server_register(test_ddev_server);
    112         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    113 
    114         rc = loc_service_register(test_ddev_svc, &sid);
     109        loc_srv_t *srv;
     110
     111        async_set_fallback_port_handler(test_ddev_conn, &resp);
     112
     113        // FIXME This causes this test to be non-reentrant!
     114        rc = loc_server_register(test_ddev_server, &srv);
     115        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     116
     117        rc = loc_service_register(srv, test_ddev_svc, &sid);
    115118        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    116119
     
    126129
    127130        ddev_close(ddev);
    128         rc = loc_service_unregister(sid);
    129         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     131        rc = loc_service_unregister(srv, sid);
     132        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     133        loc_server_unregister(srv);
    130134}
    131135
     
    139143        gfx_context_t *gc;
    140144        gfx_color_t *color;
    141 
    142         async_set_fallback_port_handler(test_ddev_conn, &resp);
    143 
    144         // FIXME This causes this test to be non-reentrant!
    145         rc = loc_server_register(test_ddev_server);
    146         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    147 
    148         rc = loc_service_register(test_ddev_svc, &sid);
     145        loc_srv_t *srv;
     146
     147        async_set_fallback_port_handler(test_ddev_conn, &resp);
     148
     149        // FIXME This causes this test to be non-reentrant!
     150        rc = loc_server_register(test_ddev_server, &srv);
     151        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     152
     153        rc = loc_service_register(srv, test_ddev_svc, &sid);
    149154        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    150155
     
    170175
    171176        ddev_close(ddev);
    172         rc = loc_service_unregister(sid);
    173         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     177        rc = loc_service_unregister(srv, sid);
     178        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     179        loc_server_unregister(srv);
    174180}
    175181
     
    182188        test_response_t resp;
    183189        ddev_info_t info;
    184 
    185         async_set_fallback_port_handler(test_ddev_conn, &resp);
    186 
    187         // FIXME This causes this test to be non-reentrant!
    188         rc = loc_server_register(test_ddev_server);
    189         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    190 
    191         rc = loc_service_register(test_ddev_svc, &sid);
     190        loc_srv_t *srv;
     191
     192        async_set_fallback_port_handler(test_ddev_conn, &resp);
     193
     194        // FIXME This causes this test to be non-reentrant!
     195        rc = loc_server_register(test_ddev_server, &srv);
     196        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     197
     198        rc = loc_service_register(srv, test_ddev_svc, &sid);
    192199        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    193200
     
    201208
    202209        ddev_close(ddev);
    203         rc = loc_service_unregister(sid);
    204         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     210        rc = loc_service_unregister(srv, sid);
     211        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     212        loc_server_unregister(srv);
    205213}
    206214
     
    213221        test_response_t resp;
    214222        ddev_info_t info;
    215 
    216         async_set_fallback_port_handler(test_ddev_conn, &resp);
    217 
    218         // FIXME This causes this test to be non-reentrant!
    219         rc = loc_server_register(test_ddev_server);
    220         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    221 
    222         rc = loc_service_register(test_ddev_svc, &sid);
     223        loc_srv_t *srv;
     224
     225        async_set_fallback_port_handler(test_ddev_conn, &resp);
     226
     227        // FIXME This causes this test to be non-reentrant!
     228        rc = loc_server_register(test_ddev_server, &srv);
     229        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     230
     231        rc = loc_service_register(srv, test_ddev_svc, &sid);
    223232        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
    224233
     
    244253
    245254        ddev_close(ddev);
    246         rc = loc_service_unregister(sid);
    247         PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     255        rc = loc_service_unregister(srv, sid);
     256        PCUT_ASSERT_ERRNO_VAL(EOK, rc);
     257        loc_server_unregister(srv);
    248258}
    249259
Note: See TracChangeset for help on using the changeset viewer.