ó o®¸Qc@süddlTddlZddlZddlZddlmZddlmZdZ ej dkrredƒZ n<ej dkrŠdZ n$ej d kr¢d Z n edƒZ ed ƒrÆd Ge GHnd ej fd„ƒYZ edkrøejƒndS(iÿÿÿÿ(t*N(t find_library(tis_resource_enabledtnttctcetcoredlltcygwins cygwin1.dlltprintings libc_name ist LoaderTestcBs§eZdZed k r$d„Zned k rTejjeƒdkrTd„Z nd„Z ej d krd„Z d„Z nej dkr¥d „Zd „ZnRS( txxrandomnamexxcCs:ttƒttjjtƒƒ|jtt|jƒdS(N(tCDLLt libc_nametostpathtbasenamet assertRaisestOSErrort unknowndll(tself((s./sys/lib/python2.7/ctypes/test/test_loading.pyt test_loads s libc.so.6cCs@tjdƒ|jttjdƒ|jttj|jƒdS(Ns libc.so.6s libc.so.9(tcdllt LoadLibraryRRR(R((s./sys/lib/python2.7/ctypes/test/test_loading.pyttest_load_versions cCsAx:dD]2}t|ƒ}|rtj|ƒt|ƒqqWdS(NRtm(RR(RRRR (Rtnametlib((s./sys/lib/python2.7/ctypes/test/test_loading.pyt test_find%s    RRcCsÄ|jtdkƒtdƒr8tdƒGHtdƒGHntjdkr|tjj tdj tj dƒj t dƒj nDtjdkrÀtj j tdj tj dƒj t dƒj ndS(NRtkernel32tuser32RRR( t assertFalseR tNoneRRR RtwindllRtGetModuleHandleWRtWinDLLR(R((s./sys/lib/python2.7/ctypes/test/test_loading.pyttest_load_library-s      c Cs ddl}t|jƒ}|d}|j}t|ƒ}t|ƒ}tj|ƒj}tj|ƒj}|jt |ƒt |ƒƒ|j t |j dƒdS(NiÿÿÿÿiiÒ( t _ctypes_testR"t__file__t GetStringt addressoftc_void_pt from_addresstvaluet assertEqualthexRtAttributeErrort __getitem__( RR$tdlltfunc_ordt func_nameta_ordta_namet f_ord_addrt f_name_addr((s./sys/lib/python2.7/ctypes/test/test_loading.pyttest_load_ordinal_functions>s     cCs0ddlm}m}|dƒ}||ƒdS(Niÿÿÿÿ(Rt FreeLibrarytadvapi32(t_ctypesRR7(RRR7thandle((s./sys/lib/python2.7/ctypes/test/test_loading.pyttest_1703286_ANs cCs˜ddlm}tj}|jd|jdƒƒttftj j _ ttj j _ tj j |j dƒ}|j|ƒ|jd||dƒƒdS(Niÿÿÿÿ(t call_functionit CloseEventLog(N(R9R<R R8R+R=RR(tc_char_pRtGetProcAddresstargtypestrestypet_handlet assertTrue(RR<R8tproc((s./sys/lib/python2.7/ctypes/test/test_loading.pyttest_1703286_BXs  N(sntsce(t__name__t __module__RR RRR RRRRRR#R6R;RE(((s./sys/lib/python2.7/ctypes/test/test_loading.pyR s  $     t__main__(tctypestsystunittestR t ctypes.utilRt ctypes.testRRR RtplatformtTestCaseR RFtmain(((s./sys/lib/python2.7/ctypes/test/test_loading.pyts"       U