<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/source/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in test_cmatch.py</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>5181afcdf99527dd92a88f80fc4d0d8013e1b510 - Merge tag &apos;docs-7.1&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/docs/linux</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/unittests/test_cmatch.py#5181afcdf99527dd92a88f80fc4d0d8013e1b510</link>
        <description>Merge tag &apos;docs-7.1&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/docs/linuxPull documentation updates from Jonathan Corbet: &quot;A busier cycle than I had expected for docs, including:   - Translations: some overdue updates to the Japanese translations,     Chinese translations for some of the Rust documentation, and the     beginnings of a Portuguese translation.   - New documents covering CPU isolation, managed interrupts, debugging     Python gbb scripts, and more.   - More tooling work from Mauro, reducing docs-build warnings, adding     self tests, improving man-page output, bringing in a proper C     tokenizer to replace (some of) the mess of kernel-doc regexes, and     more.   - Update and synchronize changes.rst and scripts/ver_linux, and put     both into alphabetical order.  ... and a long list of documentation updates, typo fixes, and general  improvements&quot;* tag &apos;docs-7.1&apos; of git://git.kernel.org/pub/scm/linux/kernel/git/docs/linux: (162 commits)  Documentation: core-api: real-time: correct spelling  doc: Add CPU Isolation documentation  Documentation: Add managed interrupts  Documentation: seq_file: drop 2.6 reference  docs/zh_CN: update rust/index.rst translation  docs/zh_CN: update rust/quick-start.rst translation  docs/zh_CN: update rust/coding-guidelines.rst translation  docs/zh_CN: update rust/arch-support.rst translation  docs/zh_CN: sync process/2.Process.rst with English version  docs/zh_CN: fix an inconsistent statement in dev-tools/testing-overview  tracing: Documentation: Update histogram-design.rst for fn() handling  docs: sysctl: Add documentation for /proc/sys/xen/  Docs: hid: intel-ish-hid: make long URL usable  Documentation/kernel-parameters: fix architecture alignment for pt, nopt, and nobypass  sched/doc: Update yield_task description in sched-design-CFS  Documentation/rtla: Convert links to RST format  docs: fix typos and duplicated words across documentation  docs: fix typo in zoran driver documentation  docs: add an Assisted-by mention to submitting-patches.rst  Revert &quot;scripts/checkpatch: add Assisted-by: tag validation&quot;  ...

            List of files:
            /linux/tools/unittests/test_cmatch.py</description>
        <pubDate>Tue, 14 Apr 2026 17:47:08 +0200</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>781171bec0650c00c642564afcb5cce57abda5bf - Merge branch &apos;mauro&apos; into docs-mw</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/unittests/test_cmatch.py#781171bec0650c00c642564afcb5cce57abda5bf</link>
        <description>Merge branch &apos;mauro&apos; into docs-mwMauro says:This patch series change how kdoc parser handles macro replacements.Instead of heavily relying on regular expressions that can sometimesbe very complex, it uses a C lexical tokenizer. This ensures thatBEGIN/END blocks on functions and structs are properly handled,even when nested.Checking before/after the patch series, for both man pages andrst only had:    - whitespace differences;    - struct_group macros now are shown as inner anonimous structs      as it should be.Also, I didn&apos;t notice any relevant change on the documentation buildtime. With that regards, right now, every time a CMatch replacementrule takes in place, it does:    for each transform:    - tokenizes the source code;    - handle CMatch;    - convert tokens back to a string.A possible optimization would be to do, instead:    - tokenizes source code;    - for each transform handle CMatch;    - convert tokens back to a string.For now, I opted not do do it, because:    - too much changes on a single row;    - docs build time is taking ~3:30 minutes, which is      about the same time it ws taken before the changes;    - there is a very dirty hack inside function_xforms:	 (KernRe(r&quot;_noprof&quot;), &quot;&quot;). This is meant to change      function prototypes instead of function arguments.So, if ok for you, I would prefer to merge this one first. We can lateroptimize kdoc_parser to avoid multiple token &lt;-&gt; string conversions.-One important aspect of this series is that it introduces unittestsfor kernel-doc. I used it a lot during the development of this series,to ensure that the changes I was doing were producing the expectedresults. Tests are on two separate files that can be executed directly.Alternatively, there is a run.py script that runs all of them (andany other python script named  tools/unittests/test_*.py&quot;):  $ tools/unittests/run.py  test_cmatch:      TestSearch:	  test_search_acquires_multiple:                               OK	  test_search_acquires_nested_paren:                           OK	  test_search_acquires_simple:                                 OK	  test_search_must_hold:                                       OK	  test_search_must_hold_shared:                                OK	  test_search_no_false_positive:                               OK	  test_search_no_function:                                     OK	  test_search_no_macro_remains:                                OK      TestSubMultipleMacros:	  test_acquires_multiple:                                      OK	  test_acquires_nested_paren:                                  OK	  test_acquires_simple:                                        OK	  test_mixed_macros:                                           OK	  test_must_hold:                                              OK	  test_must_hold_shared:                                       OK	  test_no_false_positive:                                      OK	  test_no_function:                                            OK	  test_no_macro_remains:                                       OK      TestSubSimple:	  test_rise_early_greedy:                                      OK	  test_rise_multiple_greedy:                                   OK	  test_strip_multiple_acquires:                                OK	  test_sub_count_parameter:                                    OK	  test_sub_mixed_placeholders:                                 OK	  test_sub_multiple_placeholders:                              OK	  test_sub_no_placeholder:                                     OK	  test_sub_single_placeholder:                                 OK	  test_sub_with_capture:                                       OK	  test_sub_zero_placeholder:                                   OK      TestSubWithLocalXforms:	  test_functions_with_acquires_and_releases:                   OK	  test_raw_struct_group:                                       OK	  test_raw_struct_group_tagged:                                OK	  test_struct_group:                                           OK	  test_struct_group_attr:                                      OK	  test_struct_group_tagged_with_private:                       OK	  test_struct_kcov:                                            OK	  test_vars_stackdepot:                                        OK  test_tokenizer:      TestPublicPrivate:	  test_balanced_inner_private:                                 OK	  test_balanced_non_greddy_private:                            OK	  test_balanced_private:                                       OK	  test_no private:                                             OK	  test_unbalanced_inner_private:                               OK	  test_unbalanced_private:                                     OK	  test_unbalanced_struct_group_tagged_with_private:            OK	  test_unbalanced_two_struct_group_tagged_first_with_private:  OK	  test_unbalanced_without_end_of_line:                         OK      TestTokenizer:	  test_basic_tokens:                                           OK	  test_depth_counters:                                         OK	  test_mismatch_error:                                         OK  Ran 47 tests

            List of files:
            /linux/tools/unittests/test_cmatch.py</description>
        <pubDate>Sun, 22 Mar 2026 22:06:59 +0100</pubDate>
        <dc:creator>Jonathan Corbet &lt;corbet@lwn.net&gt;</dc:creator>
    </item>
<item>
        <title>c22aa12c766f087d197fab7bda81554e4c1c7a0c - unittests: test_cmatch: add tests for sub()</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/unittests/test_cmatch.py#c22aa12c766f087d197fab7bda81554e4c1c7a0c</link>
        <description>unittests: test_cmatch: add tests for sub()Now that we have code for sub(), test it.Signed-off-by: Mauro Carvalho Chehab &lt;mchehab+huawei@kernel.org&gt;Signed-off-by: Jonathan Corbet &lt;corbet@lwn.net&gt;Message-ID: &lt;b2621b0d378317f0db5eeb2408c794429dc9f70a.1773770483.git.mchehab+huawei@kernel.org&gt;

            List of files:
            /linux/tools/unittests/test_cmatch.py</description>
        <pubDate>Tue, 17 Mar 2026 19:09:33 +0100</pubDate>
        <dc:creator>Mauro Carvalho Chehab &lt;mchehab+huawei@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>50b87bb41e48127ec43a35f9302abb4c63ca6cc9 - tools: unittests: add tests for CMatch</title>
        <link>http://kernelsources.org:8080/source/history/linux/tools/unittests/test_cmatch.py#50b87bb41e48127ec43a35f9302abb4c63ca6cc9</link>
        <description>tools: unittests: add tests for CMatchThe CMatch logic is complex enough to justify tests to ensurethat it is doing its job.Add unittests to check the functionality provided by CMatchby replicating expected patterns.The CMatch class handles with complex macros. Add an unittestto check if its doing the right thing and detect eventual regressionsas we improve its code.The initial version was generated using gpt-oss:latest LLMon my local GPU, as LLMs aren&apos;t bad transforming patternsinto unittests.Yet, the curent version contains only the skeleton of whatLLM produced, as I ended higly changing its content to bemore representative and to have real case scenarios.The kdoc_xforms test suite contains 3 test groups. Two ofthem tests the basic functionality of CMatch toreplace patterns.The last one (TestRealUsecases) contains real code snippetsfrom the Kernel with some cleanups to better fit in 80 columnsand uses the same transforms as kernel-doc, thus allowingto test the logic used inside kdoc_parser to transformfunctions, structs and variable patterns.Its output is like this:        $ tools/unittests/kdoc_xforms.py        Ran 25 tests in 0.003s        OK	test_cmatch:	    TestSearch:	        test_search_acquires_multiple:      OK	        test_search_acquires_nested_paren:  OK	        test_search_acquires_simple:        OK	        test_search_must_hold:              OK	        test_search_must_hold_shared:       OK	        test_search_no_false_positive:      OK	        test_search_no_function:            OK	        test_search_no_macro_remains:       OK        Ran 8 testsSigned-off-by: Mauro Carvalho Chehab &lt;mchehab+huawei@kernel.org&gt;Signed-off-by: Jonathan Corbet &lt;corbet@lwn.net&gt;Message-ID: &lt;119712b5bc53b4c6dda6a81b4a783dcbfd1d970d.1773770483.git.mchehab+huawei@kernel.org&gt;

            List of files:
            /linux/tools/unittests/test_cmatch.py</description>
        <pubDate>Tue, 17 Mar 2026 19:09:31 +0100</pubDate>
        <dc:creator>Mauro Carvalho Chehab &lt;mchehab+huawei@kernel.org&gt;</dc:creator>
    </item>
</channel>
</rss>
