
    dafR                     &   d Z ddlmZ ddlmZmZ ddlZddlZddlZ G d dej                        Z
 G d dej                        Zed	k(  rF eej                        d
kD  r ej                  ej                  d
           ej                           yy)aT  
These tests are meant to exercise that requests to create objects bigger
than what the address space allows are properly met with an OverflowError
(rather than crash weirdly).

Primarily, this means 32-bit builds with at least 2 GiB of available memory.
You need to pass the -M option to regrtest (e.g. "-M 2.1G") for tests to
be enabled.
    )support)bigaddrspacetestMAX_Py_ssize_tNc                   <    e Zd Zed        Zed        Zed        Zy)	BytesTestc                 |    	 dt         dz
  z  }| j                  t        t        j                  |d       d }y # d }w xY wN   x   s   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)r   assertRaisesOverflowErroroperatoraddselfxs     1/root/Python-3.12.4/Lib/test/test_bigaddrspace.pytest_concatzBytesTest.test_concat   s9    
	,-AmX\\1jIAA   27 ;c                     	 dt         dz
  z  }| j                  t              5 }|dz   }d d d        | j                  t              5 }|dz  }d d d        d }y # 1 sw Y   /xY w# 1 sw Y   d }y xY w# d }w xY wr	   )r   r   r   r   r   cms      r   test_optimized_concatzBytesTest.test_optimized_concat    s    	,-A""=1 #R
N# ""=1 !Rj ! A# #! AAs?   !A1 AA1 A#A1 A A1 #A.(A1 .A1 1A5c                 |    	 dt         dz
  z  }| j                  t        t        j                  |d       d }y # d }w xY w)Nr
   r   )r   r   r   r   mulr   s     r   test_repeatzBytesTest.test_repeat/   s9    	,-AmX\\1cBAAr   N)__name__
__module____qualname__r   r   r   r        r   r   r      s<         r!   r   c                   @    e Zd ZdZed        Zed        Zed        Zy)StrTest   c                     	 dt        t        d| j                  z  z        z  }| j                  t        t
        j                  ||       d }y # d }w xY wNr   皙?)intr   unicodesizer   MemoryErrorr   r   r   s     r   r   zStrTest.test_concat<   sK    	c.S43C3C-CDEEA k8<<A>AA   AA Ac                    	 dt        t        d| j                  z  z        z  }| j                  t              5 }||z   }d d d        | j                  t              5 }||z  }d d d        d }y # 1 sw Y   /xY w# 1 sw Y   d }y xY w# d }w xY wr&   )r(   r   r)   r   r*   r   s      r   r   zStrTest.test_optimized_concatG   s    	c.S43C3C-CDEEA"";/ 2E "";/ 2a A  AAs?   7B A-B A9"B -A62B 9B>B B Bc                     	 dt        t        d| j                  z  z        z  }| j                  t        t
        j                  |d       d }y # d }w xY w)Nr   r'      )r(   r   r)   r   r*   r   r   r   s     r   r   zStrTest.test_repeatV   sI    	c.S43C3C-CDEEAk8<<A>AAr+   N)r   r   r   r)   r   r   r   r   r    r!   r   r#   r#   8   sA    K     r!   r#   __main__   )__doc__testr   test.supportr   r   unittestr   sysTestCaser   r#   r   lenargvset_memlimitmainr    r!   r   <module>r;      s     9   
"!! "J$h $N z
388}qSXXa[)HMMO r!   