ó {G_Tc@sddlZddlZddlmZmZmZddlZddlZedƒZedƒZ ee dƒye ddƒZ Wn e k r¦ej dƒ‚nuXeje e jd ƒZe jƒejd eƒd Zeejƒejd ƒfkrej d ƒ‚n[ [[yddlZWnek rDdZnXd ejfd„ƒYZd„Zedkr}eƒndS(iÿÿÿÿN(t run_unittestt import_modulet get_attributetfcntlttermiost TIOCGPGRPs/dev/ttytrsUnable to open /dev/ttys tiisBNeither the process group nor the session are attached to /dev/ttyt IoctlTestscBsAeZd„Zdd„Zd„Zd„Zd„Zd„ZRS(cCsltjƒtjdƒf}tddƒ}tj|tjdƒ}tj d|ƒd}|j ||ƒdS(Nis/dev/ttyRs R( tostgetpgrptgetsidtopenRtioctlRRtstructtunpacktassertIn(tselftidstttyRtrpgrp((s+/usr/local/lib/python2.7/test/test_ioctl.pyt test_ioctls c Csètjdƒ}|j}tjƒtjdƒf}d}|dk rz|j|g||ƒ|jt|ƒ||ƒn |j |ƒt ddƒ"}t j |t j|dƒ}WdQX|d}|j|dƒ|j||ƒdS(NRiiÇÏÿÿs/dev/ttyRi(tarraytitemsizeR R R tNonetextendt assertEqualtlentappendR RR RRR( RtnbytestbuftintsizeRtfillRRR((s+/usr/local/lib/python2.7/test/test_ioctl.pyt_check_ioctl_mutate_len&s   ! cCs|jƒdS(N(R!(R((s+/usr/local/lib/python2.7/test/test_ioctl.pyttest_ioctl_mutate8scCs|jdƒdS(Ni(R!(R((s+/usr/local/lib/python2.7/test/test_ioctl.pyttest_ioctl_mutate_1024;scCs|jdƒdS(Ni(R!(R((s+/usr/local/lib/python2.7/test/test_ioctl.pyttest_ioctl_mutate_2048@scCsêtstjdƒ‚ntjƒ\}}zžtjdkrUtj}tjd@}n-tj}tjdtjdtjƒƒ\}tjdddddƒ}t j |||ƒ}t j |||ƒ}Wdt j |ƒt j |ƒXdS( Nspty module requiredilÿÿRtItHHHHiPi( tptytunittesttSkipTesttopenptyRt TIOCSWINSZRRtpackRR R tclose(Rtmfdtsfdtset_winsz_opcode_maybe_negtset_winsz_opcode_post our_winszt new_winsz((s+/usr/local/lib/python2.7/test/test_ioctl.pyt%test_ioctl_signed_unsigned_code_paramDs    N( t__name__t __module__RRR!R"R#R$R4(((s+/usr/local/lib/python2.7/test/test_ioctl.pyRs     cCsttƒdS(N(RR(((s+/usr/local/lib/python2.7/test/test_ioctl.pyt test_mainYst__main__(RR(ttest.test_supportRRRR RRRR RtIOErrorR)R RRR-RRR R R't ImportErrorRtTestCaseRR7R5(((s+/usr/local/lib/python2.7/test/test_ioctl.pyts0       !   =