<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in LockTest.php</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>61dea710fc1da6e08c9033ff498556a8a01d3b77 - fix(search): wait for a contended index lock and apply dperm</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Search/Index/LockTest.php#61dea710fc1da6e08c9033ff498556a8a01d3b77</link>
        <description>fix(search): wait for a contended index lock and apply dpermThe Lock rewrite (c66b5ec65) made Lock::acquire() fail immediately when thelock directory already existed, where the old indexer lock retried until theholder released it. Concurrent saves or indexer runs then aborted indexinginstead of serializing (recoverable only via the .indexed tag on the nextedit), and the lock directory was created without the configured directorypermissions, unlike every other directory DokuWiki creates.Mirror the io_lock() convention: wait for a contended lock, bounded by atunable wait timeout, before throwing; keep clearing locks older than fiveminutes as stale; and chmod the new lock directory to $conf[&apos;dperm&apos;]. Thegive-up path still throws IndexLockException, so the self-healing retry viathe .indexed tag is unchanged.

            List of files:
            /dokuwiki/_test/tests/Search/Index/LockTest.php</description>
        <pubDate>Wed, 08 Jul 2026 14:40:29 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;gohr@cosmocode.de&gt;</dc:creator>
    </item>
<item>
        <title>4e61aa71d0f1522f886a3c8fa8acf800ef2ca3a7 - fix(search): create index lock directories inside data/locks</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Search/Index/LockTest.php#4e61aa71d0f1522f886a3c8fa8acf800ef2ca3a7</link>
        <description>fix(search): create index lock directories inside data/locksIndex locks were built by concatenating the configured lock directory andthe index name without a path separator.That produced paths like data/lockspage.index instead ofdata/locks/page.index, so index lock directories were created in thedata root rather than inside the configured lock directory.Fix this by joining the lock directory and index name with an explicitslash, and update the lock test to assert the correct location and guardagainst the old broken path.

            List of files:
            /dokuwiki/_test/tests/Search/Index/LockTest.php</description>
        <pubDate>Sun, 05 Jul 2026 08:33:47 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>ede4646658cf51245060332d97a319a39c788ea1 - SearchIndex: reorganize and expand test suite</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Search/Index/LockTest.php#ede4646658cf51245060332d97a319a39c788ea1</link>
        <description>SearchIndex: reorganize and expand test suiteMove all Search tests from _test/tests/inc/Search/ to _test/tests/Search/to match the dokuwiki\test autoloader convention. Fix namespaces fromtests\* to dokuwiki\test\* so all tests work in isolation.Extract inline test helpers into separate autoloadable mock files:TestDirectCollection &#8594; MockDirectCollection, TestLookupCollection &#8594;MockLookupCollection, TestFrequencyCollection &#8594; MockFrequencyCollection.Rename AbstractIndexTest &#8594; AbstractIndexTestCase to fix PHPUnit warningabout abstract classes with Test suffix.Replace dead xxxRealWord() with proper testWildcardSearch() verifyingexact token matches and frequencies for all three wildcard types.Add testTokenizedPageSearch() using a dedicated test data file. AddtestNoMatchReturnsEmptyFrequencies() which exposed a bug in Term whereuninitialized $tokens/$frequencies caused crashes on zero-match terms.Replace fulltext_query.test.php with modern QueryParserTest in theSearch\Query namespace.Add new test files:- LockTest: acquire/release, reference counting, stale lock override,  foreign lock rejection, releaseAll, independent locks- NamespacePredicateTest: filter/exclude, sub-namespaces, partial prefix  safety, empty sets, score preservation- PageSetTest: intersect, unite, subtract, isEmpty- QueryEvaluatorTest: word lookups, AND/OR/NOT, namespace filtering,  combined queries, partial namespace prefix safetyFix Term.php: initialize $tokens and $frequencies to [] instead of null.

            List of files:
            /dokuwiki/_test/tests/Search/Index/LockTest.php</description>
        <pubDate>Mon, 06 Apr 2026 16:45:11 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
</channel>
</rss>
