
    b.                     f    d Z ddlmZ ddlmZ ddlZddlZddlZddlZddl	Z	 G d de          Z
dS )zTests for samba's dsdb modules    )SamDBTestCase)SamDBNc                   D    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
S )DsdbLockTestCasec                    | j                                         }t          j                    \  }}t          j                    }|dk    r| ` t          j                     t          | j        | j	                  | _         | j         
                                 dt          |          z   }| j                             |dd           | j                             |           | j                                          t          j        |d           t!          j        d           | j                                          t          j        d           |                     t          j        |d          d           t!          j                    }| j                                         }|D ]}t!          j                    }	|                     |	|z
  d	           t          j        |d          \  }
}|                     |
|           |                     t          j        |                     |                     t          j        |          d           d S )
Nr   session_infolpcn=test_db_lock_user,cn=users,userdnobjectclass   prepared      ffffff?)samdbget_default_basednospipeforkgccollectr   sessionr
   transaction_startstradddeletetransaction_prepare_commitwritetimesleeptransaction_cancel_exitassertEqualreadsearch_iteratorassertGreaterwaitpid
assertTrue	WIFEXITEDWEXITSTATUS)selfbasednr1w1pidr   startreslendgot_pidstatuss               7/usr/lib/python3/dist-packages/samba/tests/dsdb_lock.pytest_db_lock1zDsdbLockTestCase.test_db_lock1   s   ..00799Rgii!88
JLLLDL"&'+ + +DJ J((***1CKK?BJNN &     Jb!!! J11333HR%%%JqMMM J))+++HQKKKQ555	 j((**  	 	Aikk3;,,,JsA..&#&&&V,,---//33333    c                    | j                                         }t          j                    \  }}t          j                    \  }}t          j                    }|dk    rA| ` t          j                     t          | j        | j	                  | _         | j         
                                }t          j        |d           t          j        |d          dk    rt          j        d           t          j        |d           t          j        |d          d	k    rt          j        d
           t          j        |d           t          j        d
           |D ]}t          j        |d          dk    rt          j        d           t          j        d           |                     t          j        |d          d           | j                                          t          j        |d           |                     t          j        |d          d           dt%          |          z   }	| j                             |	dd           | j                             |	           t          j        |d	           |                     t          j        |d          d           t          j                    }
| j                                          t          j                    }	 |                     ||
z
  d           n#   xY w	 t          j        |d           | j                                          t          j        |d          \  }}|                     ||           |                     t          j        |                     |                     t          j        |          d           d S # t          j        |d           | j                                          t          j        |d          \  }}|                     ||           |                     t          j        |                     |                     t          j        |          d           w xY w)Nr   r      start      started      add      addedr      preparer   r      r   r   r   r   )r   r   r   r   r   r   r   r   r   r
   r(   r!   r'   r%   r"   r#   r&   r   r   r   r   r    r)   r$   r*   r+   r,   r-   r.   r/   r0   r1   r2w2r2   r4   r5   r   r3   r6   r7   r8   s                 r9   test_db_lock2zDsdbLockTestCase.test_db_lock2R   s   ..00799R799Rgii!88
JLLLDL"&'+ + +DJ *,,..CHR"""A*,,HR   A(** HR$$$JqMMM   A+--HQKKK 	Q222
$$&&&
Z   Q000-F;
"
 
 	 	 	 	
"
X 	Q444	
--///ikk	8sU{C0000	 1 HR%%% J))+++ "
3 2 2WfWc***OOBL00111R^F33Q77777 HR%%% J))+++ "
3 2 2WfWc***OOBL00111R^F33Q7777s   (L N6 LN6 6B-Q#c                 8   | j                                         }t          j                    \  }}t          j                    \  }}t          j                    }|dk    rA| ` t          j                     t          | j        | j	                  | _         | j         
                                }t          j        |d           t          j        |d          dk    rt          j        d           t          j        |d           t          j        |d          d	k    rt          j        d
           t          j        |d           t          j        d
           |D ]}t          j        |d          dk    rt          j        d           t          j        d           |                     t          j        |d          d           | j                                          t          j        |d           |                     t          j        |d          d           d}	| j                             d|	i           | j                             |	           t          j        |d	           |                     t          j        |d          d           t          j                    }
| j                                          t          j                    }|                     ||
z
  d           t          j        |d           | j                                          t          j        |d          \  }}|                     t          j        |                     |                     t          j        |          d           |                     ||           d S )Nr   r   r=   r>   r?   r@   rA   rB   rC   r   rD   r   r   rE   @DSDB_LOCK_TESTr   r   )r   r   r   r   r   r   r   r   r   r
   r(   r!   r'   r%   r"   r#   r&   r   r   r   r    r)   r$   r*   r+   r,   r-   rF   s                 r9   test_db_lock3zDsdbLockTestCase.test_db_lock3   s   ..00799R799Rgii!88
JLLLDL"&'+ + +DJ *,,..CHR"""A*,,HR   A(** HR$$$JqMMM   A+--HQKKK 	Q222
$$&&&
Z   Q000 
2 	 	 	
"
X 	Q444	
--///ikk3;,,,
[!!! 	
%%'''JsA..&V,,---//333#&&&&&r;   c                    t          j                    \  }}t          j                    }|dk    r| `t	          j                     t          j        |          }|                                 |	                    ddi           |
                    d           |                                 t          j        |d           t          j        d           |                                 t          j        d           |                     t          j        |d          d           t          j                    }| j                                        }t          j                    }|                     ||z
  d           |D ]}	t          j        |d          \  }
}|                     |
|           |                     t          j        |                     |                     t          j        |          d           d S )Nr   r   rK   r   r   r   r   )r   r   r   r   r   r   ldbLdbr   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   )r.   backend_pathr0   r1   r2   	backenddbr3   r4   r6   r5   r7   r8   s               r9   _test_full_db_lock1z$DsdbLockTestCase._test_full_db_lock1   s   799Rgii!88
JLLL--I'')))MM4!23444./// 00222HR%%%JqMMM ((***HQKKKQ555	 j((**
 ikk3;,,,  	 	AJsA..&#&&&V,,---//33333r;   c                    | j                                         }d|                                z  }t          j                            d|          }| j                            |          }|                     |           d S Nz%s.ldbz	sam.ldb.d)	r   r   get_casefoldr   pathjoinr
   private_pathrR   r.   r/   backend_filenamebackend_subpathrP   s        r9   test_full_db_lock1z#DsdbLockTestCase.test_full_db_lock1  u    ..00#f&9&9&;&;;',,{'79 9w++O<<  .....r;   c                    | j                                         }d|                                z  }t          j                            d|          }| j                            |          }|                     |           d S rT   )	r   get_config_basednrU   r   rV   rW   r
   rX   rR   rY   s        r9   test_full_db_lock1_configz*DsdbLockTestCase.test_full_db_lock1_config  u    --//#f&9&9&;&;;',,{'79 9w++O<<  .....r;   c                    t          j                    \  }}t          j                    \  }}t          j                    }|dk    rA| `t	          j                     t          | j        | j                  | _        | j        	                                }t          j
        |d           t          j        |d          dk    rt          j        d           t          j
        |d           t          j        |d          d	k    rt          j        d
           t          j
        |d           t          j        d
           |D ]}t          j        |d          dk    rt          j        d           t          j        d           | `t	          j                     t          j        |          }	|                     t          j        |d          d           |	                                 t          j
        |d           |                     t          j        |d          d           |	                    ddi           |	                    d           t          j
        |d	           |                     t          j        |d          d           t          j                    }
|	                                 t          j                    }	 |                     ||
z
  d           n#   xY w	 t          j
        |d           |	                                 t          j        |d          \  }}|                     ||           |                     t          j        |                     |                     t          j        |          d           d S # t          j
        |d           |	                                 t          j        |d          \  }}|                     ||           |                     t          j        |                     |                     t          j        |          d           w xY w)Nr   r   r=   r>   r?   r@   rA   rB   rC   r   rD   r   r   rE   r   rK   r   )r   r   r   r   r   r   r   r   r
   r(   r!   r'   r%   r"   r#   rN   rO   r&   r   r   r   r    r)   r$   r*   r+   r,   r-   )r.   rP   r0   r1   rG   rH   r2   r4   r5   rQ   r3   r6   r7   r8   s                 r9   _test_full_db_lock2z$DsdbLockTestCase._test_full_db_lock2  s   799R799Rgii!88 
JLLLDL"&'+ + +DJ *,,..CHR"""A*,,HR   A(** HR$$$JqMMM   A+--HQKKK J

GL))	 	Q222##%%%
Z   Q000t./000*+++
X 	Q444	,,...ikk	8sU{C0000	 1 HR%%% ((*** "
3 2 2WfWc***OOBL00111R^F33Q77777 HR%%% ((*** "
3 2 2WfWc***OOBL00111R^F33Q7777s   K+ *N +K..N B(Qc                    | j                                         }d|                                z  }t          j                            d|          }| j                            |          }|                     |           d S rT   )	r   r   rU   r   rV   rW   r
   rX   rc   rY   s        r9   test_full_db_lock2z#DsdbLockTestCase.test_full_db_lock2i  r]   r;   c                    | j                                         }d|                                z  }t          j                            d|          }| j                            |          }|                     |           d S rT   )	r   r_   rU   r   rV   rW   r
   rX   rc   rY   s        r9   test_full_db_lock2_configz*DsdbLockTestCase.test_full_db_lock2_configq  ra   r;   N)__name__
__module____qualname__r:   rI   rL   rR   r\   r`   rc   re   rg    r;   r9   r   r      s        24 24 24hG8 G8 G8RC' C' C'J-4 -4 -4^/ / // / /H8 H8 H8T/ / // / / / /r;   r   )__doc__samba.tests.samdbr   samba.samdbr   rN   r   sambar   r"   r   rk   r;   r9   <module>rp      s   $ % $ + + + + + +       



 				  				 Z/ Z/ Z/ Z/ Z/} Z/ Z/ Z/ Z/ Z/r;   