On Tue 2020-12-15 14:26:53, Richard Fitzgerald wrote: > > > On 09/12/2020 14:15, Petr Mladek wrote: > > On Mon 2020-11-30 14:57:58, Richard Fitzgerald wrote: > > > Adds test_sscanf to test various number conversion cases, as > > > number conversion was previously broken. > > > > > > This also tests the simple_strtoxxx() functions exported from > > > vsprintf.c. > > > > It is impressive. > > > > Honestly, I do not feel to be expert on testing and mathematics. > > I am not sure how comprehensive the test is. Also I am not > > sure what experts would say about the tricks with random > > numbers. > > > > Anyway, this is much more than what I have expected. And it checks > > great number of variants and corner cases. > > > > I suggest only one small change, see below. > > > > > --- /dev/null > > > +++ b/lib/test_scanf.c > > > +#define test_one_number(T, gen_fmt, scan_fmt, val, fn) \ > > > +do { \ > > > + const T expect_val = (T)(val); \ > > > + T result = ~expect_val; /* should be overwritten */ \ > > > > If I get it correctly, this is supposed to initialize the temporary > > variable with a value that is different from the expected value. > > It will cause test failure when it is not updated by vsscanf(). > > > > It does not work for zero value. A better solution might be to add > > That's a ~, not a - > ~0 = 0xFFFFFFFF > ~-1 = 0 I see. This works well. I am sorry for the noise. Sigh, I think that I need stronger glasses or use a monitor. I am not able to distinguish the two characeters without staring closely on the laptop screen. I wish I was able to work from the office again. Best Regards, Petr