Changeset e71f0a53 in rtems
- Timestamp:
- 10/02/19 06:06:36 (4 years ago)
- Branches:
- 5, master
- Children:
- 2fdbdbc
- Parents:
- b5e61f95
- git-author:
- Sebastian Huber <sebastian.huber@…> (10/02/19 06:06:36)
- git-committer:
- Sebastian Huber <sebastian.huber@…> (10/11/19 06:55:53)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
testsuites/libtests/ttest01/init.c
rb5e61f95 re71f0a53 46 46 RTEMS_LINKER_ROSET(t_self_test, const char *); 47 47 48 typedef enum { 49 CENSOR_PASS_THROUGH, 50 CENSOR_DISCARD 51 } censor_state; 52 48 53 typedef struct { 49 54 const char *c; … … 51 56 size_t case_end_count; 52 57 struct timecounter tc; 58 T_putchar putchar; 59 void *putchar_arg; 60 const char *censor_c; 61 censor_state censor_state; 53 62 } test_context; 54 63 … … 114 123 } 115 124 125 static const char censored_init[] = "A:ttest01\n" 126 "S:Platform:RTEMS\n" 127 "S:Compiler:*" 128 "S:Version:*" 129 "S:BSP:*" 130 "S:RTEMS_DEBUG:*" 131 "S:RTEMS_MULTIPROCESSING:*" 132 "S:RTEMS_POSIX_API:*" 133 "S:RTEMS_PROFILING:*" 134 "S:RTEMS_SMP:*"; 135 136 static void 137 censor_putchar(int c, void *arg) 138 { 139 test_context *ctx; 140 141 ctx = arg; 142 143 if (*ctx->censor_c == '\0') { 144 T_putchar discard_putchar; 145 void *discard_putchar_arg; 146 147 (*ctx->putchar)(c, ctx->putchar_arg); 148 T_set_putchar(ctx->putchar, ctx->putchar_arg, &discard_putchar, 149 &discard_putchar_arg); 150 return; 151 } 152 153 switch (ctx->censor_state) { 154 case CENSOR_PASS_THROUGH: 155 if (*ctx->censor_c == '*') { 156 (*ctx->putchar)('*', ctx->putchar_arg); 157 ctx->censor_state = CENSOR_DISCARD; 158 } else if (c == *ctx->censor_c) { 159 (*ctx->putchar)(c, ctx->putchar_arg); 160 ++ctx->censor_c; 161 } 162 break; 163 case CENSOR_DISCARD: 164 if (c == '\n') { 165 (*ctx->putchar)(c, ctx->putchar_arg); 166 ctx->censor_state = CENSOR_PASS_THROUGH; 167 ++ctx->censor_c; 168 } 169 break; 170 } 171 } 172 173 static void 174 run_initialize(void) 175 { 176 test_context *ctx; 177 178 ctx = &test_instance; 179 ctx->censor_c = censored_init; 180 T_set_putchar(censor_putchar, ctx, &ctx->putchar, &ctx->putchar_arg); 181 } 182 183 static const char expected_final[] = "Z:ttest01:C:341:N:1316:F:790:D:0.682999\n" 184 "Y:ReportHash:SHA256:62d6f3b37299137932ea2c2f0505c8b8f12b95749c81d5af19570e9470203475\n"; 185 186 static void 187 run_finalize(void) 188 { 189 test_context *ctx; 190 191 ctx = &test_instance; 192 ctx->c = expected_final; 193 } 194 116 195 static void 117 196 test_action(T_event event, const char *name) … … 125 204 case T_EVENT_CASE_LATE: 126 205 case_late(name); 206 break; 207 case T_EVENT_RUN_INITIALIZE_EARLY: 208 run_initialize(); 209 break; 210 case T_EVENT_RUN_FINALIZE_EARLY: 211 run_finalize(); 127 212 break; 128 213 default:
Note: See TracChangeset
for help on using the changeset viewer.