stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Farid Zaripov <Far...@kyiv.vdiweb.com>
Subject 21.strings.cpp bug
Date Mon, 03 Jul 2006 15:56:30 GMT
I found the following code in 21.strings.cpp line 1504:

                 if (StringIds::None == iter_types [l]) {
                     // skip a non-sensical template specialization
 >                   break;
                 }

Here the "break" clause should be replaced with "continue".

Suppose that in the StringTest array some template method is situated 
before any non-template method(s).
The current version will skip these non-template methods exercising 
because of this "break".

Example:

21.string.cons.cpp

     static const StringTest
     tests [] = {

#undef TEST
#define TEST(sig) {                                             \
         Cons (sig), sig ## _test_cases,                         \
         sizeof sig ## _test_cases / sizeof *sig ## _test_cases  \
     }

	  [...]

         TEST (range),

#undef TEST
#define TEST(sig) {                             \
         OpSet (sig), sig ## _op_set_test_cases, \
           sizeof sig ## _op_set_test_cases      \
         / sizeof *sig ## _op_set_test_cases     \
     }

         TEST (cptr),
         TEST (cstr),
         TEST (val)

     };


Test results (OpSet(cptr), OpSet(cstr), OpSet(val) were not tested):
# +-----------------------+--------+--------+--------+
# | DIAGNOSTIC            | ACTIVE |  TOTAL |INACTIVE|
# +-----------------------+--------+--------+--------+
# | (S1) INFO             |    171 |    171 |     0% |
# | (S2) NOTE             |      0 |    170 |   100% |
# | (S7) ASSERTION        |      0 |  17910 |   100% |
# +-----------------------+--------+--------+--------+


If "break" is replaced to "continue" (all overloads were tested):
# +-----------------------+--------+--------+--------+
# | DIAGNOSTIC            | ACTIVE |  TOTAL |INACTIVE|
# +-----------------------+--------+--------+--------+
# | (S1) INFO             |    201 |    201 |     0% |
# | (S2) NOTE             |      0 |    200 |   100% |
# | (S7) ASSERTION        |      0 |  21843 |   100% |
# +-----------------------+--------+--------+--------+


Farid.

Mime
View raw message