
     jd                        d 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m	Z	  e	e
      j                         j                  d   Zd
dZ edd      Zd	 Zy)u7  tests/lifecycle_guards/test_self_application.py — Group 8 (1건, §8.A-14).

task-2472 regression: drink-your-own-champagne 메타 테스트.
task-2473에서 task-2471+1 hardening이 raw shell bypass에 우회된 사실 박제
+ 동일 우회 차단 확인.

24. test_drink_your_own_champagne_meta_regression
    )annotationsN)Path   c                4   t         |z  }t        j                  j                  | t	        |            }||j
                  
J d|        t        j                  j                  |      }|t        j                  | <   |j
                  j                  |       |S )Nu   spec load 실패: )
WORKTREE	importlibutilspec_from_file_locationstrloadermodule_from_specsysmodulesexec_module)mod_namerelpathspecmods        C/home/jay/workspace/tests/lifecycle_guards/test_self_application.py_loadr      s    c>D>>11(CIFD 7T;MdV9TT7
..
)
)$
/CCKKKKC J    escalation_marker_g8zscripts/escalation_marker.pyc                   |j                  t        d| dz         |j                  t        d| dz         |j                  t        d| dz  dz         | dz  j                  dd       | dz  j                  dd       t        j                  d	d
dddd      }|d   du s
J d|        | dz  dz  }|j	                         sJ d       t        j                  |j                               }dD ]  }||v rJ d| d        |j                         j                  dkD  sJ d       t        j                  dd
dddd      }|d   du sJ d       | dz  dz  }|j	                         rJ d       t        d z  d!z  }|j	                         sJ d"       |j                  d#$      }	d%|	v sJ d&       t        j                  d't        j                        }
|
j                  |	      }t!        |      dk(  sJ d(t!        |       d)       t        d z  d*z  }|j	                         sJ d+       |j                  d#$      }|
j                  |      }t!        |      dk(  sJ d,t!        |       d-       d%|v sd.|v sJ d/       y0y0)1u5  task-2472 hardening이 자기 자신에게 적용되는지 검증.

    시나리오:
    1. raw `: > /tmp/task-X.done.escalated` 시도 → escalation_marker.py가 거부
    2. finish-task.sh에 escalation_marker.py 호출이 있는지 grep 검증
    3. done-watcher.sh에 raw `: >` 패턴 0건 검증
    
EVENTS_DIRevents	AUDIT_DIRauditESCALATION_AUDIT_PATHzstate-recovery.jsonlT)parentsexist_okztask-2472-heimdall-meta	escalatedzL1 meta regression smoketestmeta_test_validationz	/dev/null)task_idkindreasonsourceblocking_conditionevidence_pathoku   정상 emit 실패: z&task-2472-heimdall-meta.done.escalatedu'   정상 emit 후 마커 파일이 없음)r'   tsr%   r(   r)   r*   u    마커 파일에 필수 필드 'u   ' 없음r   u)   마커 파일이 0-byte (raw emit 의심)ztask-2472-raw-bypass-attempt shell_bypassFuL   raw bypass 시도 (빈 payload) → escalation_marker.py가 거부해야 함z+task-2472-raw-bypass-attempt.done.escalatedu;   raw bypass 거부 후 마커 파일이 생성되면 안 됨scriptszfinish-task.shu   finish-task.sh 없음zutf-8)encodingzescalation_marker.pyuP   finish-task.sh에 escalation_marker.py 호출 없음 — task-2472 구현 누락z)^\s*:\s*>\s*.*\.done\.(escalated|blocked)u"   finish-task.sh에 raw emit 패턴 uM   건 잔존 — task-2473에서 발생한 동일 우회가 차단되지 않음zdone-watcher.shu   done-watcher.sh 없음u#   done-watcher.sh에 raw emit 패턴 u   건 잔존 — task-2472 위반z	task-2472uq   done-watcher.sh에 task-2472 hardening 적용 흔적 없음 (escalation_marker.py 또는 task-2472 주석 없음)N)setattremmkdiremit_escalationexistsjsonloads
read_bytesstatst_sizer   	read_textrecompile	MULTILINEfindalllen)tmp_pathmonkeypatch	result_okmarker_pathcontentfieldresult_raw_bypassbypass_markerfinish_task_sh
ft_contentraw_emit_patternraw_matchesdone_watcher_sh
dw_contentdw_raw_matchess                  r   -test_drink_your_own_champagne_meta_regressionrP   %   s,    L(X*=>KG);<3X5GJ`5`at<td; ""))1! # I T?d"F&:9+$FF" X%(PPKJ!JJjj//12G] TS#CE7(!SST%%)V+VV) **. +  T"e+ V+ x'*WWM##%d'dd% 	),<<N  ";$;;"))7);J "Z/ Z/
 zz4
 #**:6K{q  
,S-=,> ?I 	I  *->>O!!#=%==# **G*<J &--j9N~!# 
-c..A-BBab#
 "Z/;*3L 	@L3L/r   )r   r   r   r   )__doc__
__future__r   importlib.utilr   r6   r<   r   pathlibr   __file__resolver    r   r   r2   rP    r   r   <module>rX      sV    #   	 
 >!!#++A. !#ABXr   