verification revision 1.2 1 1.2 kamil $NetBSD: verification,v 1.2 2019/06/17 17:45:18 kamil Exp $
2 1.1 dholland
3 1.1 dholland NetBSD Verification Roadmap
4 1.1 dholland ===========================
5 1.1 dholland
6 1.1 dholland This roadmap covers things that we intend or would like to do pursuant
7 1.1 dholland to verification and quality control.
8 1.1 dholland
9 1.1 dholland The following elements, projects, and goals are relatively near-term:
10 1.1 dholland
11 1.1 dholland 1. Cut down the Coverity backlog
12 1.1 dholland 3. Deploy clang-static-analyzer
13 1.1 dholland
14 1.1 dholland The following elements, projects, and goals are longer-term:
15 1.1 dholland
16 1.1 dholland 4. mint
17 1.1 dholland 5. Database-driven program analyzer
18 1.1 dholland
19 1.1 dholland The following elements, projects, and goals are rather blue-sky so far:
20 1.1 dholland
21 1.1 dholland 6. Use Frama-C to verify fsck_ffs
22 1.1 dholland
23 1.1 dholland
24 1.1 dholland Explanations
25 1.1 dholland ============
26 1.1 dholland
27 1.1 dholland 1. Cut down the Coverity backlog
28 1.1 dholland
29 1.1 dholland Coverity provides us with free analysis reports, which we sometimes
30 1.1 dholland handle and sometimes don't. Apparently though Linux has a lower number
31 1.1 dholland of Coverity hits per line than we do; that seems fundamentally wrong
32 1.1 dholland and something that should get attention. Most of the problems Coverity
33 1.1 dholland finds are pretty easily fixed, or are false positives.
34 1.1 dholland
35 1.1 dholland - As of January 2017 coypu has been working on this. Christos often
36 1.1 dholland also fixes these.
37 1.1 dholland - There is currently no clear timeframe or release target.
38 1.1 dholland - Contact christos for further information.
39 1.1 dholland
40 1.1 dholland
41 1.1 dholland 3. Deploy clang-static-analyzer
42 1.1 dholland
43 1.1 dholland There is some makefile support for running clang-static-analyzer, but
44 1.1 dholland it doesn't get done regularly. This should probably get added to the
45 1.1 dholland autobuilds.
46 1.1 dholland
47 1.1 dholland - As of January 2017 nobody is known to be working on this.
48 1.1 dholland - There is currently no clear timeframe or release target.
49 1.1 dholland - Contact joerg for further information.
50 1.1 dholland
51 1.1 dholland
52 1.1 dholland 4. mint
53 1.1 dholland
54 1.1 dholland A while back dholland started on a replacement for the existing lint,
55 1.1 dholland since lint is not really smart enough to be useful and its code is
56 1.1 dholland only marginally maintainable. The code is in othersrc, but it needs
57 1.1 dholland some tidying before anyone else tries hacking on it.
58 1.1 dholland
59 1.1 dholland - As of January 2017 nobody is known to be working on this.
60 1.1 dholland - There is currently no clear timeframe or release target.
61 1.1 dholland - Responsible: dholland
62 1.1 dholland
63 1.1 dholland
64 1.1 dholland 5. Database-driven program analyzer
65 1.1 dholland
66 1.1 dholland In the long run we would like to have a program analyzer that can
67 1.1 dholland scale to the whole kernel and can do differential analyses across
68 1.1 dholland different versions. This is a nontrivial project though.
69 1.1 dholland
70 1.1 dholland - As of January 2017 nobody is known to be working on this.
71 1.1 dholland - There is currently no clear timeframe or release target.
72 1.1 dholland - Contact: dholland
73 1.1 dholland
74 1.1 dholland
75 1.1 dholland 6. Use Frama-C to verify fsck_ffs
76 1.1 dholland
77 1.1 dholland Frama-C is a framework for doing formal verification of C code using
78 1.1 dholland (mostly) precondition/postcondition specs. It is not everything one
79 1.1 dholland necessarily wants in a verification framework; but on the other hand
80 1.1 dholland it exists and people do use it.
81 1.1 dholland
82 1.1 dholland fsck_ffs seems like a good candidate for this because it's
83 1.1 dholland mission-critical and what it needs to do is comparatively well
84 1.1 dholland understood even in detail. However, the code may be too messy.
85 1.1 dholland
86 1.1 dholland - As of January 2017 nobody is known to be working on this.
87 1.1 dholland - There is currently no clear timeframe or release target.
88 1.1 dholland - Contact: dholland
89