[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v5] coverity: Store the modelling file in the source tree.



On 24/01/14 16:59, George Dunlap wrote:
> On 01/24/2014 04:57 PM, Andrew Cooper wrote:
>> On 24/01/14 16:52, George Dunlap wrote:
>>> On 01/23/2014 03:19 PM, Andrew Cooper wrote:
>>>> On 23/01/14 15:13, George Dunlap wrote:
>>>>> On 01/23/2014 02:28 PM, Andrew Cooper wrote:
>>>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
>>>>>> CC: Keir Fraser <keir@xxxxxxx>
>>>>>> CC: Jan Beulich <JBeulich@xxxxxxxx>
>>>>>> CC: Tim Deegan <tim@xxxxxxx>
>>>>>> CC: Ian Campbell <Ian.Campbell@xxxxxxxxxx>
>>>>>> CC: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
>>>>>> CC: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
>>>>>>
>>>>>> ---
>>>>>>
>>>>>> George:
>>>>>>      This is just documentation, and it would be nice to include
>>>>>> it as
>>>>>> part of
>>>>>>      the 4.4 release.
>>>>>> ---
>>>>>>     misc/coverity_model.c |   98
>>>>>> +++++++++++++++++++++++++++++++++++++++++++++++++
>>>>>>     1 file changed, 98 insertions(+)
>>>>>>     create mode 100644 misc/coverity_model.c
>>>>>>
>>>>>> diff --git a/misc/coverity_model.c b/misc/coverity_model.c
>>>>>> new file mode 100644
>>>>>> index 0000000..418d25e
>>>>>> --- /dev/null
>>>>>> +++ b/misc/coverity_model.c
>>>>>> @@ -0,0 +1,98 @@
>>>>>> +/* Coverity Scan model
>>>>>> + *
>>>>>> + * This is a modelling file for Coverity Scan. Modelling helps to
>>>>>> avoid false
>>>>>> + * positives.
>>>>>> + *
>>>>>> + * - A model file can't import any header files.
>>>>>> + * - Therefore only some built-in primitives like int, char and
>>>>>> void
>>>>>> are
>>>>>> + *   available but not NULL etc.
>>>>>> + * - Mode-ling doesn't need full structs and typedefs. Rudimentary
>>>>>> structs
>>>>>> + *   and similar types are sufficient.
>>>>>> + * - An uninitialized local pointer is not an error. It signifies
>>>>>> that the
>>>>>> + *   variable could be either NULL or have some data.
>>>>>> + *
>>>>>> + * Coverity Scan doesn't pick up modifications automatically. The
>>>>>> model file
>>>>>> + * must be uploaded by an admin in the analysis.
>>>>> So this file isn't compiled; it's manually uploaded as part of the
>>>>> coverity scanning process; and could be provided out-of-band, but
>>>>> it's
>>>>> just convenient to put it in the tree, particularly if any of these
>>>>> things should change as things go forward.  (Hence comparing it to
>>>>> documentation.)  Is that right?
>>>>>
>>>>>    -George
>>>>>
>>>> Correct.  I believe internally Coverity compiles it (at least to an
>>>> AST), but that is completely opaque to users of Scan.
>>> Right; I have a hard time coming up with a compelling reason to wait
>>> for this one.
>>>
>>> Release-acked-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
>>>
>>> The name of the file might be a bit confusing though, if people think
>>> it is supposed to be compliled... would it make sense maybe to call it
>>> ".txt", and include some instructions at the top with a line that says
>>> "---- cut here 8< ---" or something?
>>>
>>>   -George
>> Not really - Coverity uses the file extension to work out how to
>> interpret the modelling file.  ".c" is correct here, and will cause
>> smart text editors to apply proper syntax highlighting.
>>
>> Alternates are .cpp and .java, depending on the primary language of the
>> project.
>
> Yes, I assumed that *coverity* needs it to be a .c.  But it doesn't
> need to be a .c file in the xen tree -- the instructions could say,
> "Place the text below into a file named coverity_model.c".
>
>  -George

This file was deliberately placed in a brand new directory, away from
any Makefiles which might try to compile it for this reason.

Requiring users to post-process this file just to help prevent someone
from accidentally trying to compile it seems crazy IMO.  The worst that
happens is that someone tries to compile it and it fails to compile.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.