File indexing completed on 2025-05-11 08:24:35
0001 #include <rtems/test.h>
0002
0003 #include <stdlib.h>
0004
0005 #include <rtems.h>
0006
0007 T_TEST_CASE(missing_sema_delete)
0008 {
0009 rtems_status_code sc;
0010 rtems_id id;
0011
0012 sc = rtems_semaphore_create(rtems_build_name('S', 'E', 'M', 'A'), 0,
0013 RTEMS_COUNTING_SEMAPHORE, 0, &id);
0014 T_rsc_success(sc);
0015 }
0016
0017 T_TEST_CASE(missing_free)
0018 {
0019 void *p;
0020
0021 p = malloc(1);
0022 T_not_null(p);
0023 }
0024
0025 #include <sys/stat.h>
0026 #include <fcntl.h>
0027 #include <pthread.h>
0028 #include <string.h>
0029
0030 T_TEST_CASE(missing_close)
0031 {
0032 int fd;
0033
0034 fd = open("/", O_RDONLY);
0035 T_ge_int(fd, 0);
0036 }
0037
0038 T_TEST_CASE(missing_barrier_delete)
0039 {
0040 rtems_status_code sc;
0041 rtems_id id;
0042
0043 sc = rtems_barrier_create(rtems_build_name('T', 'E', 'S', 'T'),
0044 RTEMS_DEFAULT_ATTRIBUTES, 1, &id);
0045 T_rsc_success(sc);
0046 }
0047
0048 T_TEST_CASE(missing_extension_delete)
0049 {
0050 rtems_status_code sc;
0051 rtems_id id;
0052 rtems_extensions_table table;
0053
0054 memset(&table, 0, sizeof(table));
0055 sc = rtems_extension_create(rtems_build_name('T', 'E', 'S', 'T'),
0056 &table, &id);
0057 T_rsc_success(sc);
0058 }
0059
0060 T_TEST_CASE(missing_mq_delete)
0061 {
0062 rtems_status_code sc;
0063 rtems_id id;
0064
0065 sc = rtems_message_queue_create(rtems_build_name('T', 'E', 'S', 'T'),
0066 1, 1, RTEMS_DEFAULT_ATTRIBUTES, &id);
0067 T_rsc_success(sc);
0068 }
0069
0070 T_TEST_CASE(missing_part_delete)
0071 {
0072 rtems_status_code sc;
0073 rtems_id id;
0074 long buf[32];
0075
0076 sc = rtems_partition_create(rtems_build_name('T', 'E', 'S', 'T'), buf,
0077 sizeof(buf), sizeof(buf), RTEMS_DEFAULT_ATTRIBUTES, &id);
0078 T_rsc_success(sc);
0079 }
0080
0081 T_TEST_CASE(missing_period_delete)
0082 {
0083 rtems_status_code sc;
0084 rtems_id id;
0085
0086 sc = rtems_rate_monotonic_create(rtems_build_name('T', 'E', 'S', 'T'),
0087 &id);
0088 T_rsc_success(sc);
0089 }
0090
0091 T_TEST_CASE(missing_region_delete)
0092 {
0093 rtems_status_code sc;
0094 rtems_id id;
0095 long buf[32];
0096
0097 sc = rtems_region_create(rtems_build_name('T', 'E', 'S', 'T'), buf,
0098 sizeof(buf), 1, RTEMS_DEFAULT_ATTRIBUTES, &id);
0099 T_rsc_success(sc);
0100 }
0101
0102 T_TEST_CASE(missing_task_delete)
0103 {
0104 rtems_status_code sc;
0105 rtems_id id;
0106
0107 sc = rtems_task_create(rtems_build_name('T', 'E', 'S', 'T'), 1,
0108 RTEMS_MINIMUM_STACK_SIZE, RTEMS_DEFAULT_MODES,
0109 RTEMS_DEFAULT_ATTRIBUTES, &id);
0110 T_rsc_success(sc);
0111 }
0112
0113 T_TEST_CASE(missing_timer_delete)
0114 {
0115 rtems_status_code sc;
0116 rtems_id id;
0117
0118 sc = rtems_timer_create(rtems_build_name('T', 'E', 'S', 'T'), &id);
0119 T_rsc_success(sc);
0120 }
0121
0122 T_TEST_CASE(missing_key_delete)
0123 {
0124 pthread_key_t key;
0125 int eno;
0126
0127 eno = pthread_key_create(&key, NULL);
0128 T_psx_success(eno);
0129
0130 eno = pthread_setspecific(key, &key);
0131 T_psx_success(eno);
0132 }
0133
0134 #include "t-self-test.h"
0135
0136 T_TEST_OUTPUT(missing_sema_delete,
0137 "B:missing_sema_delete\n"
0138 "P:0:0:UI1:test-leak.c:14\n"
0139 "F:*:0:UI1:*:*:RTEMS semaphore leak (1)\n"
0140 "E:missing_sema_delete:N:1:F:1:D:0.001000\n");
0141
0142 T_TEST_OUTPUT(missing_free,
0143 "B:missing_free\n"
0144 "P:0:0:UI1:test-leak.c:22\n"
0145 "E:missing_free:N:1:F:0:D:0.001000\n");
0146
0147 T_TEST_OUTPUT(missing_close,
0148 "B:missing_close\n"
0149 "P:0:0:UI1:test-leak.c:35\n"
0150 "F:*:0:UI1:*:*:file descriptor leak (1)\n"
0151 "E:missing_close:N:1:F:1:D:0.001000\n");
0152
0153 T_TEST_OUTPUT(missing_barrier_delete,
0154 "B:missing_barrier_delete\n"
0155 "P:0:0:UI1:test-leak.c:45\n"
0156 "F:*:0:UI1:*:*:RTEMS barrier leak (1)\n"
0157 "E:missing_barrier_delete:N:1:F:1:D:0.001000\n");
0158
0159 T_TEST_OUTPUT(missing_extension_delete,
0160 "B:missing_extension_delete\n"
0161 "P:0:0:UI1:test-leak.c:57\n"
0162 "F:*:0:UI1:*:*:RTEMS extension leak (1)\n"
0163 "E:missing_extension_delete:N:1:F:1:D:0.001000\n");
0164
0165 T_TEST_OUTPUT(missing_mq_delete,
0166 "B:missing_mq_delete\n"
0167 "P:0:0:UI1:test-leak.c:67\n"
0168 "F:*:0:UI1:*:*:RTEMS message queue leak (1)\n"
0169 "E:missing_mq_delete:N:1:F:1:D:0.001000\n");
0170
0171 T_TEST_OUTPUT(missing_part_delete,
0172 "B:missing_part_delete\n"
0173 "P:0:0:UI1:test-leak.c:78\n"
0174 "F:*:0:UI1:*:*:RTEMS partition leak (1)\n"
0175 "E:missing_part_delete:N:1:F:1:D:0.001000\n");
0176
0177 T_TEST_OUTPUT(missing_period_delete,
0178 "B:missing_period_delete\n"
0179 "P:0:0:UI1:test-leak.c:88\n"
0180 "F:*:0:UI1:*:*:RTEMS period leak (1)\n"
0181 "E:missing_period_delete:N:1:F:1:D:0.001000\n");
0182
0183 T_TEST_OUTPUT(missing_region_delete,
0184 "B:missing_region_delete\n"
0185 "P:0:0:UI1:test-leak.c:99\n"
0186 "F:*:0:UI1:*:*:RTEMS region leak (1)\n"
0187 "E:missing_region_delete:N:1:F:1:D:0.001000\n");
0188
0189 T_TEST_OUTPUT(missing_task_delete,
0190 "B:missing_task_delete\n"
0191 "P:0:0:UI1:test-leak.c:110\n"
0192 "F:*:0:UI1:*:*:RTEMS task leak (1)\n"
0193 "E:missing_task_delete:N:1:F:1:D:0.001000\n");
0194
0195 T_TEST_OUTPUT(missing_timer_delete,
0196 "B:missing_timer_delete\n"
0197 "P:0:0:UI1:test-leak.c:119\n"
0198 "F:*:0:UI1:*:*:RTEMS timer leak (1)\n"
0199 "E:missing_timer_delete:N:1:F:1:D:0.001000\n");
0200
0201 T_TEST_OUTPUT(missing_key_delete,
0202 "B:missing_key_delete\n"
0203 "P:0:0:UI1:test-leak.c:128\n"
0204 "P:1:0:UI1:test-leak.c:131\n"
0205 "F:*:0:UI1:*:*:POSIX key leak (1)\n"
0206 "F:*:0:UI1:*:*:POSIX key value pair leak (1)\n"
0207 "E:missing_key_delete:N:2:F:2:D:0.001000\n");
0208
0209
0210
0211
0212
0213
0214
0215
0216
0217
0218
0219
0220
0221
0222
0223
0224
0225
0226
0227
0228
0229
0230
0231
0232
0233
0234
0235
0236
0237
0238
0239
0240
0241
0242
0243
0244
0245