tests/rng: replace printf_float with fmt/print_float

When running the test on `arduino-mega2560` printing the float failed
and was printed as ` ?`.

    Calculated  ? bits of entropy from 10000 samples.

Replace using `printf` floating point printing by using `fmt/print_float`.
Now the test succeeds on `arduino-mega2560`.

As `print_float` does not buffer and is used with `printf` the output
should be flushed before calling it if `fflush` is available.
This commit is contained in:
Gaëtan Harter 2019-02-12 13:46:37 +01:00 committed by cladmi
parent 44d2b62a70
commit 27b42d34d3
No known key found for this signature in database
GPG Key ID: 76DF6BCF1B1F883B
2 changed files with 9 additions and 2 deletions

View File

@ -8,7 +8,6 @@ BOARD_INSUFFICIENT_MEMORY += arduino-duemilanove arduino-uno
# USEMODULE += prng_minstd # USEMODULE += prng_minstd
USEMODULE += fmt USEMODULE += fmt
USEMODULE += printf_float
USEMODULE += random USEMODULE += random
USEMODULE += shell USEMODULE += shell
USEMODULE += xtimer USEMODULE += xtimer

View File

@ -382,7 +382,15 @@ void test_entropy(uint32_t samples)
} }
/* print results */ /* print results */
printf("Calculated %02f bits of entropy from %" PRIu32 " samples.\n", (double) entropy, samples); /* Use 'fmt/print_float' to work on all platforms (atmega)
* Stdout should be flushed before to prevent garbled output. */
printf("Calculated ");
#ifdef MODULE_NEWLIB
/* no fflush on msp430 */
fflush(stdout);
#endif
print_float(entropy, 6);
printf(" bits of entropy from %" PRIu32 " samples.\n", samples);
} }
void cb_speed_timeout(void *arg) void cb_speed_timeout(void *arg)