Changeset 75c430e3 in mainline for uspace/lib/c
- Timestamp:
- 2018-06-19T11:48:03Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 47be512
- Parents:
- 6c440362
- git-author:
- Jiri Svoboda <jiri@…> (2018-06-18 17:47:07)
- git-committer:
- Jiri Svoboda <jiri@…> (2018-06-19 11:48:03)
- Location:
- uspace/lib/c
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/Makefile
r6c440362 r75c430e3 163 163 generic/stats.c \ 164 164 generic/assert.c \ 165 generic/bsearch.c \ 165 166 generic/pio_trace.c \ 166 167 generic/qsort.c \ -
uspace/lib/c/generic/stdlib.c
r6c440362 r75c430e3 166 166 } 167 167 168 /** Get environment list entry. 169 * 170 * Note that this function is not reentrant. The returned string is only 171 * guaranteed to be valid until the next call to @c getenv. 172 * 173 * @param name Entry name 174 * @return Pointer to string or @c NULL if not found 175 */ 176 char *getenv(const char *name) 177 { 178 (void) name; 179 return NULL; 180 } 181 182 /** Execute command. 183 * 184 * @param string Command to execute or @c NULL 185 * 186 * @return If @a string is @c NULL, return zero (no command processor 187 * available). If @a string is not @c NULL, return 1 (failure). 188 */ 189 int system(const char *string) 190 { 191 if (string == NULL) 192 return 0; 193 194 return 1; 195 } 168 196 169 197 /** Compute quotient and remainder of int division. -
uspace/lib/c/include/stdlib.h
r6c440362 r75c430e3 38 38 #include <_bits/size_t.h> 39 39 #include <_bits/wchar_t.h> 40 #include <bsearch.h> 40 41 #include <malloc.h> 41 42 #include <qsort.h> … … 74 75 75 76 extern int rand(void); 76 extern void srand(unsigned int seed);77 extern void srand(unsigned int); 77 78 78 79 extern void abort(void) __attribute__((noreturn)); … … 82 83 extern int at_quick_exit(void (*)(void)); 83 84 extern void quick_exit(int); 85 86 extern char *getenv(const char *); 87 extern int system(const char *); 84 88 85 89 extern int atoi(const char *); -
uspace/lib/c/test/stdlib.c
r6c440362 r75c430e3 282 282 } 283 283 284 /** getenv function */ 285 PCUT_TEST(getenv) 286 { 287 char *s; 288 289 s = getenv("FOO"); 290 PCUT_ASSERT_NULL(s); 291 } 292 293 /** Test availability of command processor */ 294 PCUT_TEST(system_null) 295 { 296 int rc; 297 298 rc = system(NULL); 299 PCUT_ASSERT_INT_EQUALS(0, rc); 300 } 301 302 /** Test running a command */ 303 PCUT_TEST(system_cmd) 304 { 305 int rc; 306 307 /* This should fail as system is just a stub */ 308 rc = system("/app/bdsh"); 309 PCUT_ASSERT_INT_EQUALS(1, rc); 310 } 311 312 /** Comparison function for bsearch test */ 313 static int test_compar(const void *a, const void *b) 314 { 315 const int *ia, *ib; 316 317 ia = (const int *)a; 318 ib = (const int *)b; 319 320 return *ia - *ib; 321 } 322 323 PCUT_TEST(bsearch) 324 { 325 int numbers[] = { 1, 2, 6, 7, 7, 10, 100, 120 }; 326 int k; 327 void *r; 328 329 k = 0; 330 r = bsearch(&k, numbers, sizeof(numbers) / sizeof(int), sizeof(int), 331 test_compar); 332 PCUT_ASSERT_NULL(r); 333 334 k = 1; 335 r = bsearch(&k, numbers, sizeof(numbers) / sizeof(int), sizeof(int), 336 test_compar); 337 PCUT_ASSERT_NOT_NULL(r); 338 PCUT_ASSERT_INT_EQUALS(1, *(int *)r); 339 340 k = 3; 341 r = bsearch(&k, numbers, sizeof(numbers) / sizeof(int), sizeof(int), 342 test_compar); 343 PCUT_ASSERT_NULL(r); 344 345 k = 6; 346 r = bsearch(&k, numbers, sizeof(numbers) / sizeof(int), sizeof(int), 347 test_compar); 348 PCUT_ASSERT_NOT_NULL(r); 349 PCUT_ASSERT_INT_EQUALS(6, *(int *)r); 350 351 k = 7; 352 r = bsearch(&k, numbers, sizeof(numbers) / sizeof(int), sizeof(int), 353 test_compar); 354 PCUT_ASSERT_NOT_NULL(r); 355 PCUT_ASSERT_INT_EQUALS(7, *(int *)r); 356 357 k = 200; 358 r = bsearch(&k, numbers, sizeof(numbers) / sizeof(int), sizeof(int), 359 test_compar); 360 PCUT_ASSERT_NULL(r); 361 } 362 284 363 /** Integer division */ 285 364 PCUT_TEST(div_func)
Note:
See TracChangeset
for help on using the changeset viewer.