On Fri, 23 Oct 2026 at 12:13, Thomas Monjalon <[email protected]> wrote:
>
> 22/10/2026 19:44, David Marchand:
> > -     report=$($selfdir/parse-flow-support.sh $code $doc)
> > +     code_support=$($selfdir/parse-flow-support.sh $code)
> > +     report=$(
> > +             for category in item action; do
> > +                     section="rte_flow ${category}s]"
> > +                     code_items=$(echo "$code_support" | sed -n 
> > "/$section/,/]/p" |
> > +                             sed '/]/d' |        # ignore section title
> > +                             sed 's, *=.*,,' |   # keep only item name
> > +                             sed '/^$/d' |       # remove empty lines
> > +                             sort -u)
>
> This parsing is used below.
> This is an opportunity for a function.

I prepared this:

diff --git a/devtools/check-doc-vs-code.sh b/devtools/check-doc-vs-code.sh
index 4c45bc0bba..9fc14dd19e 100755
--- a/devtools/check-doc-vs-code.sh
+++ b/devtools/check-doc-vs-code.sh
@@ -118,6 +118,14 @@ items_not_in() # <list1> <list2>
        } | sort | uniq -u
 }

+parse_rte_flow_section() # <section>
+{
+       sed -n "/$1/,/]/p" |
+       sed '/]/d' |        # ignore section title
+       sed 's, *=.*,,' |   # keep only item name
+       sed '/^$/d'         # remove empty lines
+}
+
 check_rte_flow() # <driver>
 {
        code=$(driver_code_dir $1)
@@ -128,15 +136,10 @@ check_rte_flow() # <driver>
        report=$(
                for category in item action; do
                        section="rte_flow ${category}s]"
-                       code_items=$(echo "$code_support" | sed -n
"/$section/,/]/p" |
-                               sed '/]/d' |        # ignore section title
-                               sed 's, *=.*,,' |   # keep only item name
-                               sed '/^$/d' |       # remove empty lines
+                       code_items=$(echo "$code_support" |
+                               parse_rte_flow_section "$section" |
                                sort -u)
-                       doc_items=$(sed -n "/$section/,/]/p" "$doc" |
-                               sed '/]/d' |        # ignore section title
-                               sed 's, *=.*,,' |   # keep only item name
-                               sed '/^$/d' |       # remove empty lines
+                       doc_items=$(parse_rte_flow_section "$section" < $doc |
                                sort -u)
                        {
                                # items documented but not in code
@@ -145,10 +148,7 @@ check_rte_flow() # <driver>
                                all_doc_items=$(
                                        for drv in $(docs_for_code $code); do

d=$rootdir/doc/guides/nics/features/$drv.ini
-                                               sed -n "/$section/,/]/p" "$d" |
-                                                       sed '/]/d' |
     # ignore section title
-                                                       sed 's,
*=.*,,' |   # keep only item name
-                                                       sed '/^$/d'
     # remove empty lines
+                                               parse_rte_flow_section
"$section" < $d
                                        done | sort -u
                                )
                                items_not_in "$code_items" "$all_doc_items"


I'll wait a bit for more reviews on the rest of the series.


-- 
David Marchand

Reply via email to