
    h                     :   d dl Z d dlZd dlZd dlZd dlZd dlmZmZ d dlm	Z	  ej                  de j                  v xr e j                  d    d       ej                  ej                  j                  d       d       G d d	ej                                      Zy)
    N)utilspublic)util&AUTOBAHN_CI_ENABLE_RNG_DEPLETION_TESTSz\entropy depletion tests not enabled (env var AUTOBAHN_CI_ENABLE_RNG_DEPLETION_TESTS not set)linuxz/entropy depletion tests only available on Linuxc                       e Zd Zd Zd Zy)TestEntropyc                 R   i }t        dd      5 }t        d      D ]  }t        d      D ]  }t        j                          t	        j
                         }t        j                         }t        j                  d      }t        j                  dd      }t        j                  dd      }	t        j                  t        d            }
t        j                  t        j                  j                        }t        j                  d	d	      }t        j                          }t        j"                         }t        j$                         }  |j'                  d      }t        d
d      5 }t)        |j'                               dz  }||vrd||<   ||xx   dz  cc<   d d d         	 d d d        t+        |j-                               }t/        d       |D ]   }t/        dj1                  |||                " | j3                  |d   dkD         y # 1 sw Y   xY w# 1 sw Y   wxY w)Nz/dev/urandomrb  d       r   l          
      %/proc/sys/kernel/random/entropy_availr    
system entropy depletion stats:{}: {})openrangerandomseeduuiduuid4getrandbitsrandintnormalvariatechoicer   r   Box
NONCE_SIZEr   generate_tokenidridnewidreadintsortedkeysprintformat
assertTrue)selfresrngijv1v2v3v4v5v6v7v8v9v10v11denteaskeysks                        R/var/www/Befach/backend/env/lib/python3.12/site-packages/autobahn/test/test_rng.pytest_non_depletingzTestEntropy.test_non_depleting*   s   .$' "	!34[sA KKM B  B++B/B+;<B--b#6BuSz2B fjj&;&;<B ,,Q2BB((*C**,C- $2 HHTN A3G !3SXXZC/B}"#BGqLG	! !; !"	!H sxxz"12A(//!SV,-  	a1%! !="	! "	!s$   EH(3HHHHH&c                    i }t        dd      5 }t        d      D ]Z  }|j                  d      }t        dd      5 }t        |j                               dz  }||vrd||<   ||xx   d	z  cc<   d d d        \ 	 d d d        t	        |j                               }t        d
       |D ]   }t        dj                  |||                " | j                  |d   dk(         y # 1 sw Y   xY w# 1 sw Y   vxY w)Nz/dev/randomr   i'  r   r   r   r   r   r   r   r   )	r   r   r&   r'   r(   r)   r*   r+   r,   )	r-   r.   r/   r0   r=   r>   r?   r@   rA   s	            rB   test_depletingzTestEntropy.test_depletingY   s    -& 	!#5\ HHTN A3G !3SXXZC/B}"#BGqLG	! ! "	! sxxz"12A(//!SV,-  	aA&! !	! 	!s"   ,C.3C".
C."C+'C..C7N)__name__
__module____qualname__rC   rE        rB   r	   r	   &   s    -&^'rJ   r	   )ossysunittestr   r   naclr   r   autobahnr   skipIfenvironplatform
startswithTestCaser	   rI   rJ   rB   <module>rU      s   6 
 
      >"**L  FQSQ[Q[  ]E  RF  G  Ig  hS\\,,W557hiG'(## G' j hG'rJ   