tiծq}SSSKrSSKrSSKrSSKrSSKrSSKrSSKJr SSKJ r Sr "SS\R5r "SS\R5r \S :Xa\R"5 gg) N)support) os_helperc<[R"X5 [US5n[UR S55nUSS-S-US'UR S5 UR U5 SSS5 [R"X5 g!,(df  N%=f)Nzr+br)shutilcopy2open bytearrayreadseekwritecopystat) template_pathnew_pathf next_chars 8/opt/alt/python313/lib64/python3.13/test/test_filecmp.py_create_file_shallow_equalr sv LL) h !affQi( !! q(C/ !  q      OOM,  s A B  Bc2\rSrSrSrSrSrSrSrSr g) FileCompareTestCasec[RUl[RS-Ul[RS-Ul[RS-UlSnURURUR4H(n[ USSS9nURU5 SSS5 M* [ URSSS9nURS 5 SSS5 URUR4H$n[R"URU5 M& [URUR 5 [R"5Ul g!,(df  M=f!,(df  N=f) Nz-samez-diffz -same-shallowContents of file go here. wutf-8encodingza+zAn extra line. )rTESTFNname name_same name_diffname_same_shallowr rrrrtempfile gettempdirdir)selfdatar outputs rsetUpFileCompareTestCase.setUps$$ "))G3"))G3!*!1!1O!C,YY?DdC'2f T"32@$..$ 9V LL+ ,:^^T^^4D OODIIt ,5 #499d.D.DE&&(32: 9sEE+ E( + E9c[R"UR5 [R"UR5 [R"UR5 [R"UR 5 gN)osunlinkr r!r"r#r's rtearDownFileCompareTestCase.tearDown-sD $)) $..! $..! $(()cNUR[R"URUR5S5 UR[R"URURSS9S5 UR[R"URUR5S5 UR[R"URURSS9S5 UR[R"URUR 5S5 g)NzComparing file to itself failsFshallowz&Comparing file to identical file failsz2Shallow identical files should be considered equal) assertTruefilecmpcmpr r!r#r0s r test_matching!FileCompareTestCase.test_matching3s  DIItyy98 :  DIItyy%H8 :  DIIt~~>@ B  DIIt~~uM@ B  DIIt/E/EFL Nr3cdUR[R"URUR5S5 UR[R"URUR 5S5 UR[R"URUR SS9S5 g)Nz!Mismatched files compare as equalz#File and directory compare as equalFr5z;Mismatched file to shallow identical file compares as equal) assertFalser8r9r r"r&r#r0s rtest_different"FileCompareTestCase.test_different?s| TYY?7 9 TYY99 ; TYY0F0F-24U Wr3c.[R"URURSS9n[R"URURSS9n[R "5 UR [[R5S:HS5 g)NFr5rz+Cache not cleared after calling clear_cache) r8r9r r!r" clear_cacher7len_cache)r' first_comparesecond_compares rtest_cache_clear$FileCompareTestCase.test_cache_clearHsb DIIt~~uM  TYYN GNN+q0E Gr3)r&r r"r!r#N) __name__ __module__ __qualname____firstlineno__r*r1r:r>rF__static_attributes__r3rrrs)(* NWGr3rc\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrSrSrSrSrSrSrSrSrg)DirCompareTestCaseOc[R"5n[RR US5Ul[RR US5Ul[RR US5Ul[RR US5Ul[RR US5Ul [RR UR S5Ul [RRS5[RRS5:HUl S n[R"UR S 5 [R"UR 5 [RR UR S 5n[R"U5 [RR UR S 5n[!US SS9nUR#U5 SSS5 UR URURUR4Hn[R"US 5 [R"U5 [RR US 5n[R"U5 UR(aX`R LaSnOS n[RR Xg5nX`RLa [%XH5 M[R&"XH5 M [![RR URS5S SS9nUR#S5 SSS5 [![RR URS5S SS9nUR#S5 SSS5 g!,(df  GN=f!,(df  Nn=f!,(df  g=f)Nr&zdir-samezdir-diffz dir-diff-filezdir-same-shallow.hgAarTsubdirfilerrrFiLefile2zAn extra file. zDifferent contents. )r$r%r.pathjoinr&dir_samedir_diff dir_diff_filedir_same_shallow dir_ignorednormcasecaseinsensitiverrmtreemkdirr rrr ) r'tmpdirr( subdir_path dir_file_pathr)r&fn file_paths rr*DirCompareTestCase.setUpPs$$&77<<. VZ8  VZ8 WW\\&/B " V5G H77<< u=!ww//48H8H8MM, dhh% ggll488X6   TXXv6 -w 76 LL 8MM4#8#8MM4#5#57C MM#t $ HHSM'',,sH5K HH[ !##}}(< S-I+++*=D ]6!7$"'',,t}}g6g NRX LL+ ,O"'',,t117;S7 SW] LL0 1T S38 7*O NT Ss$:N;O  O; O  O O,cURURURURUR4Hn[ R "U5 M gr-)r&r[r\r^r]rrb)r'r&s rr1DirCompareTestCase.tearDowns>HHdmmT]]))4+=+=?C MM# ?r3cDURS[R5 g)NrR)assertInr8DEFAULT_IGNORESr0s rtest_default_ignores'DirCompareTestCase.test_default_ignoress eW445r3c UR[R"URURS/5S///4:HS5 UR[R"URURS/5S///4:HS5 UR[R"URURS/SS9S///4:HS5 UR[R"URURS/SS9S5 UR [R"URUR SS/5S/S//4:HS5 g)NrVz#Comparing directory to itself failsz!Comparing directory to same failsFr5rXz&Comparing mismatched directories fails)r7r8cmpfilesr&r[r=r]r0s r test_cmpfiles DirCompareTestCase.test_cmpfiless: ((488fXF 2r*+= ? ((4==6(K 2r*+; = ((488fX168 2r*+> ? ((4==6(168; = ))$((D4F4F&,g%68Xy"-.= >r3c ^S[S-S4SSS-S44HupURURUR4HWnUR SU3US 9 [ R "URX1/5nURU//U/45 SSS5 MY M g!,(df  Mo=f) N)zNUL bytes filenamervz filename with embedded NUL bytes)u .py'surrogate codes (MUSICAL SYMBOL G CLEF)rT@Bzvery long filenamez cmpfiles: ) other_dir)__file__r&r[r\subTestr8rrassertTupleEqual)r'rVdescryress rtest_cmpfiles_invalid_names.DirCompareTestCase.test_cmpfiles_invalid_namess +   B C J 9_2 3  JD #hh t}}E \\Jtf"5\K!**488YGC))#B/?@LKF  LKs 9B B, c SS[RS3S4SSS-S44Hup[R"URU5n[R"XR5nS HnUR S U3US 9 UR [[45 [X55 SSS5 SSS5 UR S U3US 9 UR [[45 [XE5 SSS5 SSS5 M M g!,(df  Nj=f!,(df  Ns=f!,(df  NA=f!,(df  M=f) N)rvzNUL bytes dirnameTopzMidzdirname with embedded NUL bytes)urwrTrxzvery long dirname) left_list right_list left_only right_onlycommonzdircmp(ok, bad): )targetzdircmp(bad, ok): ) r.sepr8dircmpr&r{ assertRaisesOSError ValueErrorgetattr)r'bad_dirr}d1d2rs rtest_dircmp_invalid_names,DirCompareTestCase.test_dircmp_invalid_namess )266(' "$E F G 9_1 2  MG '2B2B \\$5dV"D D &D D=% D, 1D= D D D) , D: 6D== E cLUR[U5[U55 gr-) assertEqualsorted)r'actualexpecteds r _assert_lists DirCompareTestCase._assert_listss )9:r3cBUR5 URSS9 gNFr5)$_assert_dircmp_identical_directoriesr0s r!test_dircmp_identical_directories4DirCompareTestCase.test_dircmp_identical_directories 113 11%1@r3cBUR5 URSS9 gr)_assert_dircmp_different_filer0s rtest_dircmp_different_file-DirCompareTestCase.test_dircmp_different_files **, **5*9r3cBUR5 URSS9 gr)$_assert_dircmp_different_directoriesr0s r!test_dircmp_different_directories4DirCompareTestCase.test_dircmp_different_directoriesrr3c URURp2[R"X#40UD6nUR UR U5 UR UR U5 UR(a=URURSS/5 URURSS/5 O ?   q||fh-? @   q{{VX,> ?   q||fh-? @ 188fh%78 1==8*5 b) r* x0 r*   $-- 8 ( 0  AHHo6r3c URURp2[R"X#40UD6nUR UR U5 UR UR U5 URURSS/5 URUR/SQ5 URURSS/5 URURS/5 UR UR/5 UR URS/5 UR URS/5 UR UR/5 SR!URUR5SR!UR5SS/nUR#UR$U5 URURp2[R"X#40UD6nUR UR U5 UR UR U5 URUR/SQ5 URURSS/5 URURSS/5 UR URS/5 UR UR/5 UR URS/5 UR UR/5 SR!URUR5SR!UR5SS/nUR#UR$U5 g) NrVrU)rVrXrUrXrzOnly in {} : ['file2']rr)r&r\r8rrrrrrrrrrrrrrrrrs rr7DirCompareTestCase._assert_dircmp_different_directoriess~"hh ) NN8 :' : * ), 1;;(:; 1<<)DE 188fh%78 1==8*5 b) y1 x0 r*   $-- 8 $ + +DMM : ( 0   AHHo6#mmTXX) NN8 :' : * ), 1;;(CD 1<<&();< 188fh%78 wi0 r* x0 r*    txx 8 $ + +DMM : ( 0   AHHo6r3c \[R"URUR40UD6nUR UR S/5 UR UR S/5 SRURUR5SSS/nURURU5 g)NrVrXrrzDiffering files : ['file2']r) r8rr\r]rrrrrr)r'rrrs rr0DirCompareTestCase._assert_dircmp_different_files NN4==$*<*< H H x0 y1    t/A/A B ( ) 0   AHHo6r3cT[R"URURSS9nUR UR /5 UR UR S/5 SRURUR5SS/nURURU5 g)NFr5rVrzDiffering files : ['file']r r8rr&r^rrrrrrr'rrs r%test_dircmp_no_shallow_different_file8DirCompareTestCase.test_dircmp_no_shallow_different_file"s NN488T%:%:E J r* x0   $*?*? @ ( 0  AHHo6r3cV[R"URUR5nUR UR S/5 UR UR /5 SRURUR5SS/nURURU5 g)NrVrrrrrs rtest_dircmp_shallow_same_file0DirCompareTestCase.test_dircmp_shallow_same_file.s NN488T%:%: ; x0 r*   $*?*? @ ( 0  AHHo6r3c |UR[[R"S55 [R "UR URSSS5 SSS5 UR[R "UR URSSSS9[R 5 g!,(df  NY=f)NzIdircmp.__init__() takes from 3 to 5 positional arguments but 6 were givenTr5) assertRaisesRegex TypeErrorreescaper8rr&r[assertIsInstancer0s r#test_dircmp_shallow_is_keyword_only6DirCompareTestCase.test_dircmp_shallow_is_keyword_only:s  # #  IIa b  NN488T]]D$ E   NN488T]]D$ M NN   s /B-- B;c"SS[R5nU"URUR5nURnUR [ UR55S/5 USnUR [U5U5 g)Nc\rSrSrSrg)=DirCompareTestCase.test_dircmp_subdirs_type..MyDirCmpiGrMN)rHrIrJrKrLrMr3rMyDirCmprGs r3rrU) r8rr&r\subdirsrlistkeystype)r'rrsub_dirssub_dcmps rtest_dircmp_subdirs_type+DirCompareTestCase.test_dircmp_subdirs_typeEsj w~~  TXXt}} -99 hmmo. ;H% h2r3cURURp![R"X5n[R R US5n[R R US5nSRURUR5SSSSRXE5/nURURU5 gNrUrrr) r&r[r8rr.rYrZrrreport_partial_closurer'rrr left_subdir right_subdirrs rtest_report_partial_closure.DirCompareTestCase.test_report_partial_closureOs"hh ) NN8 /ggll8X6 ww||Ix8   $-- 8 ( 0     :   A44oFr3cURURp![R"X5n[R R US5n[R R US5nSRURUR5SSSSRXE5/nURURU5 gr) r&r[r8rr.rYrZrrreport_full_closurers rtest_report_full_closure+DirCompareTestCase.test_report_full_closure]s"hh ) NN8 /ggll8X6 ww||Ix8   $-- 8 ( 0     :   A11?Cr3c[R"5nU"5 UR5R5R S5nUR XB5 SSS5 g!,(df  g=f)N )rcaptured_stdoutgetvaluestripsplitr)r' dircmp_reportexpected_report_linesstdout report_liness rr!DirCompareTestCase._assert_reportksO  $ $ && O!??,224::4@L   \ A' & &s AA%% A3)rar&r\r]r_r[r^N)rHrIrJrKr*r1rorsrrrrrrrrrrrrrrrrrLrMr3rrOrOOsn.2b 6>, A,*;A:A72(7V 7 7 7  3 G DBr3rO__main__)r8r.rrr$unittesttestr test.supportrrTestCaserrOrHmainrMr3rrsg " I5G(++5Gn`B**`BF  z MMOr3