§
    ƒÛg�  ã                   óÜ   — d dl Zd dlZd dlmZ d dlmZmZ d dlm	Z	 d dl
mZmZmZ d„ Zd„ Zd„ Zd	„ Zd
„ Z ed¦  «         G d„ de¦  «        ¦   «         Zedk    r ej        ¦   «          dS dS )é    N)Úcuda)ÚCudaAPIErrorÚdriver)ÚCudaSupportError)Úskip_on_cudasimÚunittestÚCUDATestCasec                 ó"   — t          dd¦  «        ‚)Niç  ÚCUDA_ERROR_UNKNOWN)r   )Úargs    úX/granary/edev/quantum/lib/python3.11/site-packages/numba/cuda/tests/cudadrv/test_init.pyÚcuInit_raisingr      s   € Ý
�sÐ0Ñ
1Ô
1Ð1ó    c                 óÊ   — t           t          _        d}d }	 t          j        d¦  «         n # t
          $ r}d}|j        }Y d }~nd }~ww xY w|                      ||f¦  «         d S ©NFé   T)r   r   ÚcuInitr   Údevice_arrayr   ÚmsgÚput©Úresult_queueÚsuccessr   Úes       r   ÚcuInit_raising_testr      s�   € Ý"…F„Mà€GØ
€CðåÔ˜!ÑÔÐÐøÝð ð ð ØˆØŒeˆˆˆˆˆˆøøøøðøøøð ×Ò�g˜s�^Ñ$Ô$Ð$Ð$Ð$s   —, ¬
A	¶	AÁA	c                 óÔ   — t           t          _        d}d }	 t          j        d¦  «         n# t
          $ r d}Y nw xY wt          j        ¦   «         }|                      ||f¦  «         d S r   )r   r   r   r   r   r   Ú
cuda_errorr   ©r   r   r   s      r   Úinitialization_error_testr   &   s}   € Ý"…F„Mà€GØ
€CðåÔ˜!ÑÔÐÐøÝð ð ð Øˆˆˆðøøøõ Œ/Ñ
Ô
€CØ×Ò�g˜s�^Ñ$Ô$Ð$Ð$Ð$s   —, ¬;º;c                 ó¨   — d}d }	 t          j        d¦  «         n # t          $ r}d}|j        }Y d }~nd }~ww xY w|                      ||f¦  «         d S r   )r   r   r   r   r   r   s       r   Úcuda_disabled_testr!   7   sz   € Ø€GØ
€CðåÔ˜!ÑÔÐÐøÝð ð ð ØˆØŒeˆˆˆˆˆˆøøøøðøøøð ×Ò�g˜s�^Ñ$Ô$Ð$Ð$Ð$s   † ›
8¥	3³8c                 ó²   — d}d }	 t          j        d¦  «         n# t          $ r d}Y nw xY wt          j        ¦   «         }|                      ||f¦  «         d S r   )r   r   r   r   r   r   s      r   Úcuda_disabled_error_testr#   G   sv   € Ø€GØ
€CðåÔ˜!ÑÔÐÐøÝð ð ð Øˆˆˆðøøøõ Œ/Ñ
Ô
€CØ×Ò�g˜s�^Ñ$Ô$Ð$Ð$Ð$s   † ›*©*z)CUDA Simulator does not initialize driverc                   ó8   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	dS )	ÚTestInitc                 ó`  — t          j        d¦  «        }|                     ¦   «         }|                     ||f¬¦  «        }|                     ¦   «          |                     d¦  «         |                     ¦   «         \  }}|s|                      d¦  «         |                      ||¦  «         d S )NÚspawn)ÚtargetÚargsé   zCudaSupportError not raised)	ÚmpÚget_contextÚQueueÚProcessÚstartÚjoinÚgetÚfailÚassertIn)Úselfr(   ÚexpectedÚctxr   Úprocr   r   s           r   Ú_test_init_failurezTestInit._test_init_failureW   s�   € åŒn˜WÑ%Ô%ˆØ—y’y‘{”{ˆØ�{Š{ &°¨ˆ{Ñ?Ô?ˆØ�
Š
‰ŒˆØ�	Š	�"‰ŒˆØ#×'Ò'Ñ)Ô)‰ˆ�ð ð 	5Ø�IŠIÐ3Ñ4Ô4Ð4à�Š�h Ñ$Ô$Ð$Ð$Ð$r   c                 ó@   — d}|                       t          |¦  «         d S )Nz.Error at driver init: CUDA_ERROR_UNKNOWN (999))r8   r   ©r4   r5   s     r   Útest_init_failure_raisingz"TestInit.test_init_failure_raisingg   s$   € ØCˆØ×ÒÕ 3°XÑ>Ô>Ð>Ð>Ð>r   c                 ó@   — d}|                       t          |¦  «         d S )NzCUDA_ERROR_UNKNOWN (999))r8   r   r:   s     r   Útest_init_failure_errorz TestInit.test_init_failure_errork   s$   € Ø-ˆØ×ÒÕ 9¸8ÑDÔDÐDÐDÐDr   c                 ón  — t           j                             d¦  «        }dt           j        d<   	 d}|                      t          |¦  «         |�|t           j        d<   d S t           j                             d¦  «         d S # |�|t           j        d<   w t           j                             d¦  «         w xY w)NÚNUMBA_DISABLE_CUDAÚ1z4CUDA is disabled due to setting NUMBA_DISABLE_CUDA=1)ÚosÚenvironr1   r8   r!   Úpop)r4   r(   Úcuda_disabledr5   s       r   Ú_test_cuda_disabledzTestInit._test_cuda_disabledo   s®   € õ œ
ŸšÐ';Ñ<Ô<ˆØ+.�Œ
Ð'Ñ(ð	5ØMˆHØ×#Ò#Õ$6¸ÑAÔAÐAàÐ(Ø3@•”
Ð/Ñ0Ð0Ð0å”
—’Ð3Ñ4Ô4Ð4Ð4Ð4øð Ð(Ø3@•”
Ð/Ñ0Ð0å”
—’Ð3Ñ4Ô4Ð4Ð4øøøs   °B Â3B4c                 ó:   — |                       t          ¦  «         d S ©N)rE   r!   ©r4   s    r   Útest_cuda_disabled_raisingz#TestInit.test_cuda_disabled_raising}   s   € Ø× Ò Õ!3Ñ4Ô4Ð4Ð4Ð4r   c                 ó:   — |                       t          ¦  «         d S rG   )rE   r#   rH   s    r   Útest_cuda_disabled_errorz!TestInit.test_cuda_disabled_error€   s   € Ø× Ò Õ!9Ñ:Ô:Ð:Ð:Ð:r   c                 óR   — |                       t          j        ¦   «         ¦  «         d S rG   )ÚassertIsNoner   r   rH   s    r   Útest_init_successzTestInit.test_init_successƒ   s&   € ð 	×Ò�$œ/Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,r   N)
Ú__name__Ú
__module__Ú__qualname__r8   r;   r=   rE   rI   rK   rN   © r   r   r%   r%   U   s€   € € € € € ð%ð %ð %ð ?ð ?ð ?ðEð Eð Eð5ð 5ð 5ð5ð 5ð 5ð;ð ;ð ;ð-ð -ð -ð -ð -r   r%   Ú__main__)Úmultiprocessingr+   rA   Únumbar   Únumba.cuda.cudadrv.driverr   r   Únumba.cuda.cudadrv.errorr   Únumba.cuda.testingr   r   r	   r   r   r   r!   r#   r%   rO   ÚmainrR   r   r   ú<module>rZ      s(  ðØ Ð Ð Ð Ø 	€	€	€	à Ð Ð Ð Ð Ð Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fð2ð 2ð 2ð%ð %ð %ð$%ð %ð %ð"%ð %ð %ð %ð %ð %ð €Ð<Ñ=Ô=ð1-ð 1-ð 1-ð 1-ð 1-ˆ|ñ 1-ô 1-ñ >Ô=ð1-ðh ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   