ó {G_Tc@sÑdZddlZddlZddlZddlZddlmZmZmZm Z m Z m Z e dƒZ d„Z e ƒZdd d„ƒYZdejfd „ƒYZd „Zed krÍeƒndS( s]Test program for the fcntl C module. OS/2+EMX doesn't support the file locking operations. iÿÿÿÿN(tverbosetTESTFNtunlinkt run_unittestt import_modulet cpython_onlytfcntlc Csitjjdƒrd}n+y tjWntk r?d}nXd}tjjdƒsgtjdkrÇtjd ƒd kr‹d }d }n d }d }tj|||d dddt j dƒ}n}tjdkrtjdt j ddddddƒ}nDtjdkrd}n,tjd |d t j dddddƒ}|ret redGt |ƒGHqen|S(Ntatheostqqtlltnetbsdtfreebsdtopenbsdtbsdostdarwintlititlxxxxthhitaix3taix4shp-uxBt unixware7thhllliitos2emxs struct.pack: (R R R R (RRshp-uxBR(sos2emx(tsystplatformt startswithtost O_LARGEFILEtAttributeErrortstructtcalcsizetpackRtF_WRLCKtNoneRtrepr(t start_lentoff_ttpid_ttlockdata((s+/usr/local/lib/python2.7/test/test_fcntl.pyt get_lockdatas2     * ,tBadFilecBseZd„Zd„ZRS(cCs ||_dS(N(tfn(tselfR*((s+/usr/local/lib/python2.7/test/test_fcntl.pyt__init__7scCs|jS(N(R*(R+((s+/usr/local/lib/python2.7/test/test_fcntl.pytfileno9s(t__name__t __module__R,R-(((s+/usr/local/lib/python2.7/test/test_fcntl.pyR)6s t TestFcntlcBsMeZd„Zd„Zd„Zd„Zd„Zed„ƒZd„Z RS(cCs d|_dS(N(R"tf(R+((s+/usr/local/lib/python2.7/test/test_fcntl.pytsetUp>scCs4|jr&|jj r&|jjƒnttƒdS(N(R1tclosedtcloseRR(R+((s+/usr/local/lib/python2.7/test/test_fcntl.pyttearDownAscCs¤ttdƒ|_tj|jjƒtjtjƒ}trHdG|GHnt j dkr“tj|jjƒtj t ƒ}tr“dGt |ƒGHq“n|jjƒdS(Ntws#Status from fcntl with O_NONBLOCK: Rs!String from fcntl with F_SETLKW: (sos2emx(topenRR1RR-tF_SETFLRt O_NONBLOCKRRRtF_SETLKWR'R#R4(R+trv((s+/usr/local/lib/python2.7/test/test_fcntl.pyttest_fcntl_filenoFs$ !cCsnttdƒ|_tj|jtjtjƒ}tjdkr]tj|jtj t ƒ}n|jj ƒdS(NR6R(sos2emx( R7RR1RR8RR9RRR:R'R4(R+R;((s+/usr/local/lib/python2.7/test/test_fcntl.pyttest_fcntl_file_descriptorRs c CsÌ|jtƒtjdtjtjƒWdQX|jtƒ$tjtdƒtjtjƒWdQX|jtƒtjdtjtjƒWdQX|jtƒ$tjtdƒtjtjƒWdQXdS(Niÿÿÿÿtspam(t assertRaisest ValueErrorRR8RR9R)t TypeError(R+((s+/usr/local/lib/python2.7/test/test_fcntl.pyttest_fcntl_bad_fileZs%c Csòddlm}m}|jtƒ"tj|dtjtjƒWdQX|jtƒ(tjt |dƒtjtjƒWdQX|jtƒ"tj|dtjtjƒWdQX|jtƒ(tjt |dƒtjtjƒWdQXdS(Niÿÿÿÿ(tINT_MAXtINT_MINi( t _testcapiRCRDR?R@RR8RR9R)(R+RCRD((s+/usr/local/lib/python2.7/test/test_fcntl.pyttest_fcntl_bad_file_overflowds#)#cCs¨ytj}tj}Wntk r6|jdƒnXtjtjjtjj t ƒƒtj ƒ}z/ytj|||ƒWnt k r‘nXWdtj |ƒXdS(Ns$F_NOTIFY or DN_MULTISHOT unavailable(RtF_NOTIFYt DN_MULTISHOTRtskipTestRR7tpathtdirnametabspathRtO_RDONLYtIOErrorR4(R+tcmdtflagstfd((s+/usr/local/lib/python2.7/test/test_fcntl.pyttest_fcntl_64_bitqs   - ( R.R/R2R5R<R=RBRRFRR(((s+/usr/local/lib/python2.7/test/test_fcntl.pyR0<s     cCsttƒdS(N(RR0(((s+/usr/local/lib/python2.7/test/test_fcntl.pyt test_main„st__main__((t__doc__RRRtunittestttest.test_supportRRRRRRRR(R'R)tTestCaseR0RSR.(((s+/usr/local/lib/python2.7/test/test_fcntl.pyts    .  H