lkml.org 
[lkml]   [2007]   [May]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] [condingstyle] Add chapter on tests
    Jan Engelhardt wrote:
    > + if (is_prime(number) == true)
    > + return 0;
    > + if (is_prime(number) == false)
    > + return 1;
    > +
    > +should be:
    > +
    > + if (is_prime(number))
    > + return 0;
    > + if (!is_prime(number))
    > + return 1;
    > +
    > +As far as pointers or functions returning an integer are concerned,
    > +using long form tests helps to distinguish between pointers and bools
    > +or functions returning boolean or integer, respectively.
    > +Examples are:
    > +
    > + if (p == NULL)
    > + return 1;
    > + if (!p)
    > + return 0;
    > +
    > + if (strcmp(haystack, needle) == 0)
    > + return 1;
    > + if (!strcmp(haystack, needle))
    > + return 0;

    The latter two examples seem odd. Didn't you mean the following?

    if (p == NULL)
    return 1;
    if (p)
    return 0;

    if (strcmp(haystack, needle) == 0)
    return 1;
    if (strcmp(haystack, needle))
    return 0;

    Perhaps better:

    if (p == NULL)
    return NO_MEMORY;
    if (p)
    return MEMORY;

    if (strcmp(haystack, needle) == 0)
    return IS_SAME;
    if (strcmp(haystack, needle))
    return IS_DIFFERENT;

    However, to follow your argument about non-boolean expressions, the
    following would be more consequently going into your direction:

    if (p == NULL)
    return NO_MEMORY;
    if (p != NULL)
    return MEMORY;

    if (strcmp(haystack, needle) == 0)
    return IS_SAME;
    if (strcmp(haystack, needle) != 0)
    return IS_DIFFERENT;

    I.e., why do the explicit comparison with 0 or NULL only when it is
    tested for equality, but not when testing for inequality?

    However, I agree with Scott Preece that these rules should be left out
    of CodingStyle because they are contentious.

    (Disclosure: I am personally used to "if (p)" and "if (!p)" tests of
    pointers and many integer expressions, but I tend to the longer form in
    less obvious cases like "if (strcmp(a, b) != 0)".)
    --
    Stefan Richter
    -=====-=-=== -=-= ==-==
    http://arcgraph.de/sr/
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-05-27 16:41    [W:0.025 / U:34.248 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site