[Oisf-devel] Coding style improvement proposal

Victor Julien victor at inliniac.net
Wed Jun 17 08:53:37 UTC 2015


On 05/12/2015 05:31 PM, Jason Ish wrote:
> On Tue, May 12, 2015 at 9:05 AM, Eric Leblond <eric at regit.org> wrote:
>> Hello,
>>
>> As some of you know, I don't like unittests. And when I see things like:
>>
>> int SMTPProcessDataChunkTest02(void){
>>     char mimemsg[] = {0x4D, 0x49, 0x4D, 0x45, 0x2D, 0x56, 0x65, 0x72,
>>             0x73, 0x69, 0x6F, 0x6E, 0x3A, 0x20, 0x31, 0x2E,
>>
>> I start to think I'm right. The raw data are completely unreadable by
>> normal human being o you can't guess what is done when you need to fix
>> the unittests^W code after some changes.
>>
>> IMHO, we should have on top of these raw data a textual representation
>> of the byte fields in comment. Like this is done somewhere else in the
>> app-layer-smtp.c file:
>>
>> int SMTPParserTest14(void)
>> {
>>    /* 220 mx.google.com ESMTP d15sm986283wfl.6<CR><LF> */
>>     static uint8_t welcome_reply[] = {
>>
>> What do you think ?
> 
> I agree. Here's how I'm doing it for some of the DNP3 unit tests...
> 
>     uint8_t request[] = {
>         /* Link header. */
>         0x05, 0x64, 0x1a, 0xc4, 0x02, 0x00, 0x01, 0x00,
> 
>         /* CRC. */
>         0xa5, 0xe9,
> 
>         /* Transport header. */
>         0xff,
> 
>         /* Application layer. */
>         0xc9, 0x05, 0x0c, 0x01, 0x28, 0x01, 0x00, 0x00,
>         0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
> 
>         /* CRC. */
>         0x72, 0xef,
> 
>         /* Application layer. */
>         0x00, 0x00, 0x00, 0x00, 0x00,
> 
>         /* CRC. */
>         0xff, 0xff,
>     };
> 
> It will requires a quick glance to the struct sometimes to know whats
> what, but much better than a big old blob of hex IMO.

Agreed. Eric, can you update the coding style wiki page?

Cheers,
Victor

-- 
---------------------------------------------
Victor Julien
http://www.inliniac.net/
PGP: http://www.inliniac.net/victorjulien.asc
---------------------------------------------



More information about the Oisf-devel mailing list