On 06/21/16 11:54, Iván Matellanes wrote:
> + struct ostream_print_test {
> + enum { CHAR } type;
> + union {
> + char c;
> + } param;
> + ios_io_state state;
> + ios_flags flags;
> + int precision;
> + int fill;
> + int width;
> + const char *expected_text;
> + ios_io_state expected_flags;
> + } tests[] = {
> + /* char */
> + {CHAR, {.c = 'a'}, IOSTATE_badbit, 0, 6, ' ', 0, "", IOSTATE_badbit|IOSTATE_failbit},
> + {CHAR, {.c = 'a'}, IOSTATE_eofbit, 0, 6, ' ', 0, "", IOSTATE_eofbit|IOSTATE_failbit},
> + {CHAR, {.c = 'a'}, IOSTATE_goodbit, 0, 6, ' ', 0, "a", IOSTATE_goodbit},
> + {CHAR, {.c = 'a'}, IOSTATE_goodbit, 0, 6, ' ', 4, " a", IOSTATE_goodbit},
> + {CHAR, {.c = 'a'}, IOSTATE_goodbit, 0, 6, 'x', 3, "xxa", IOSTATE_goodbit},
> + {CHAR, {.c = 'a'}, IOSTATE_goodbit, FLAGS_left, 6, ' ', 4, "a ", IOSTATE_goodbit},
> + {CHAR, {.c = 'a'}, IOSTATE_goodbit, FLAGS_left|FLAGS_internal, 6, ' ', 4, " a", IOSTATE_goodbit},
> + {CHAR, {.c = 'a'}, IOSTATE_goodbit, FLAGS_internal|FLAGS_hex|FLAGS_showbase, 6, ' ', 4, " a", IOSTATE_goodbit},
> + {CHAR, {.c = '9'}, IOSTATE_goodbit, FLAGS_oct|FLAGS_showbase|FLAGS_uppercase, 6, 'i', 2, "i9", IOSTATE_goodbit},
> + {CHAR, {.c = '9'}, IOSTATE_goodbit, FLAGS_showpos|FLAGS_scientific, 0, 'i', 2, "i9", IOSTATE_goodbit},
> + {CHAR, {.c = 'e'}, IOSTATE_goodbit, FLAGS_left|FLAGS_right|FLAGS_uppercase, 0, '*', 8, "e*******", IOSTATE_goodbit}
> + };
This is not portable (the {.c = 'a'} part).
Thanks,
Piotr