a 5êdg<ã@s¢ddlZddlmZddlZddlZddlZddlZe d¡Zej   ej   e ¡ddddd¡Z ej   ej   e ¡dddd ¡Zd ZGd d „d ejƒZed krže ¡dS)éN)Úsupportz symbol.pyz..ZToolsZscriptszgenerate_symbol_py.pyZIncludez graminit.hzsymbol_test.pyc@s<eZdZdd„Zdd„Zdd„Ze e  ¡d¡dd „ƒZ d S) ÚTestSymbolGenerationcCs’t|ƒ}| ¡}Wdƒn1s&0Yt|dƒD}| |d| d¡d…¡| || d¡d…¡Wdƒn1s„0YdS)NÚwz#--start constants-- éz#--end constants-- )ÚopenÚ readlinesÚ writelinesÚindex)ÚselfZ source_fileZ dest_fileÚfpÚlines©r ú,/usr/local/lib/python3.9/test/test_symbol.pyÚ$_copy_file_without_generated_symbolss  & z9TestSymbolGeneration._copy_file_without_generated_symbolscCs0tjtjt||gtjd}| ¡d}|j|fS)N)Ústderrr)Ú subprocessÚPopenÚsysÚ executableÚGEN_SYMBOL_FILEÚPIPEÚ communicateÚ returncode)r Z grammar_fileZtarget_symbol_py_fileÚprocrr r rÚ_generate_symbolssýý z&TestSymbolGeneration._generate_symbolscCspt|ƒ}| ¡}Wdƒn1s&0Yt|ƒ}| ¡}Wdƒn1sV0Y| ||¡dS)N)rrÚ assertEqual)r Zfile1Zfile2r Zlines1Zlines2r r rÚ compare_files#s  & &z"TestSymbolGeneration.compare_filesz+test only works from source build directorycCsXtj}| tj|¡| t|¡| t|¡\}}| d|¡| d|¡|  t|¡dS)Nór) rZTESTFNZ addCleanupÚunlinkrÚ SYMBOL_FILErÚ GRAMMAR_FILErr)r ÚoutputÚexitcoderr r rÚ!test_real_grammar_and_symbol_file*s   z6TestSymbolGeneration.test_real_grammar_and_symbol_fileN) Ú__name__Ú __module__Ú __qualname__rrrÚunittestZ skipUnlessÚ sysconfigZis_python_buildr#r r r rrs ÿrÚ__main__)r'ÚtestrÚosrr(rZfindfilerÚpathÚjoinÚdirnameÚ__file__rr Z TEST_PY_FILEZTestCaserr$Úmainr r r rÚs"  þÿ'