@@ -1765,16 +1765,26 @@ def _check(path, glob, expected):
17651765 _check (p , "*/fileB" , ["dirB/fileB" , "linkB/fileB" ])
17661766 _check (p , "*/" , ["dirA/" , "dirB/" , "dirC/" , "dirE/" , "linkB/" ])
17671767 _check (p , "dir*/*/.." , ["dirC/dirD/.." , "dirA/linkC/.." , "dirB/linkD/.." ])
1768+ _check (p , "dir*/**" , [
1769+ "dirA" , "dirA/linkC" , "dirA/linkC/fileB" , "dirA/linkC/linkD" , "dirA/linkC/linkD/fileB" ,
1770+ "dirB" , "dirB/fileB" , "dirB/linkD" , "dirB/linkD/fileB" ,
1771+ "dirC" , "dirC/fileC" , "dirC/dirD" , "dirC/dirD/fileD" , "dirC/novel.txt" ,
1772+ "dirE" ])
17681773 _check (p , "dir*/**/" , ["dirA/" , "dirA/linkC/" , "dirA/linkC/linkD/" , "dirB/" , "dirB/linkD/" ,
17691774 "dirC/" , "dirC/dirD/" , "dirE/" ])
17701775 _check (p , "dir*/**/.." , ["dirA/.." , "dirA/linkC/.." , "dirB/.." ,
17711776 "dirB/linkD/.." , "dirA/linkC/linkD/.." ,
17721777 "dirC/.." , "dirC/dirD/.." , "dirE/.." ])
1778+ _check (p , "dir*/*/**" , [
1779+ "dirA/linkC" , "dirA/linkC/linkD" , "dirA/linkC/fileB" , "dirA/linkC/linkD/fileB" ,
1780+ "dirB/linkD" , "dirB/linkD/fileB" ,
1781+ "dirC/dirD" , "dirC/dirD/fileD" ])
17731782 _check (p , "dir*/*/**/" , ["dirA/linkC/" , "dirA/linkC/linkD/" , "dirB/linkD/" , "dirC/dirD/" ])
17741783 _check (p , "dir*/*/**/.." , ["dirA/linkC/.." , "dirA/linkC/linkD/.." ,
17751784 "dirB/linkD/.." , "dirC/dirD/.." ])
17761785 _check (p , "dir*/**/fileC" , ["dirC/fileC" ])
17771786 _check (p , "dir*/*/../dirD/**/" , ["dirC/dirD/../dirD/" ])
1787+ _check (p , "*/dirD/**" , ["dirC/dirD" , "dirC/dirD/fileD" ])
17781788 _check (p , "*/dirD/**/" , ["dirC/dirD/" ])
17791789
17801790 @needs_symlinks
@@ -1791,12 +1801,20 @@ def _check(path, glob, expected):
17911801 _check (p , "*/fileB" , ["dirB/fileB" ])
17921802 _check (p , "*/" , ["dirA/" , "dirB/" , "dirC/" , "dirE/" ])
17931803 _check (p , "dir*/*/.." , ["dirC/dirD/.." ])
1804+ _check (p , "dir*/**" , [
1805+ "dirA" , "dirA/linkC" ,
1806+ "dirB" , "dirB/fileB" , "dirB/linkD" ,
1807+ "dirC" , "dirC/fileC" , "dirC/dirD" , "dirC/dirD/fileD" , "dirC/novel.txt" ,
1808+ "dirE" ])
17941809 _check (p , "dir*/**/" , ["dirA/" , "dirB/" , "dirC/" , "dirC/dirD/" , "dirE/" ])
17951810 _check (p , "dir*/**/.." , ["dirA/.." , "dirB/.." , "dirC/.." , "dirC/dirD/.." , "dirE/.." ])
1811+ _check (p , "dir*/*/**" , ["dirC/dirD" , "dirC/dirD/fileD" ])
17961812 _check (p , "dir*/*/**/" , ["dirC/dirD/" ])
17971813 _check (p , "dir*/*/**/.." , ["dirC/dirD/.." ])
17981814 _check (p , "dir*/**/fileC" , ["dirC/fileC" ])
1815+ _check (p , "dir*/*/../dirD/**" , ["dirC/dirD/../dirD" , "dirC/dirD/../dirD/fileD" ])
17991816 _check (p , "dir*/*/../dirD/**/" , ["dirC/dirD/../dirD/" ])
1817+ _check (p , "*/dirD/**" , ["dirC/dirD" , "dirC/dirD/fileD" ])
18001818 _check (p , "*/dirD/**/" , ["dirC/dirD/" ])
18011819
18021820 def test_rglob_common (self ):
@@ -1833,10 +1851,13 @@ def _check(glob, expected):
18331851 "dirC/dirD" , "dirC/dirD/fileD" ])
18341852 _check (p .rglob ("file*" ), ["dirC/fileC" , "dirC/dirD/fileD" ])
18351853 _check (p .rglob ("**/file*" ), ["dirC/fileC" , "dirC/dirD/fileD" ])
1854+ _check (p .rglob ("dir*/**" ), ["dirC/dirD" , "dirC/dirD/fileD" ])
18361855 _check (p .rglob ("dir*/**/" ), ["dirC/dirD/" ])
18371856 _check (p .rglob ("*/*" ), ["dirC/dirD/fileD" ])
18381857 _check (p .rglob ("*/" ), ["dirC/dirD/" ])
18391858 _check (p .rglob ("" ), ["dirC/" , "dirC/dirD/" ])
1859+ _check (p .rglob ("**" ), [
1860+ "dirC" , "dirC/fileC" , "dirC/dirD" , "dirC/dirD/fileD" , "dirC/novel.txt" ])
18401861 _check (p .rglob ("**/" ), ["dirC/" , "dirC/dirD/" ])
18411862 # gh-91616, a re module regression
18421863 _check (p .rglob ("*.txt" ), ["dirC/novel.txt" ])
0 commit comments