<?php
require __DIR__.'/common-write.php';$step=(int)getenv('NW_STEP');$check(in_array($step,[7,9],true),'Only approved two no-op methods');$state=json_decode(file_get_contents(__DIR__.'/private-state.json'),true);$check($state['step']===9,'Only stopped status0 state');$case=cdxCase($step,$state['ids']);$case['label']='R'.$step;$label=$case['label'];$check(!is_file(__DIR__.'/private-sent-'.$label),'Retest cannot replay');$before=$source();$own=$guard($before);$check((int)$own['nutrition_time'][0]['status']===0&&(int)$own['nutrition_time'][0]['del_flag']===0&&(int)$own['nutrition_set'][0]['status']===0&&(int)$own['nutrition_set'][0]['is_del']===1,'Exact retained entities status0 not deleted');
$request=['token'=>json_decode(file_get_contents(__DIR__.'/private-auth-write.json'),true)['token'],'nonce'=>bin2hex(random_bytes(24)),'case'=>$case];$save('private-dispatch.json',$request);$port=$lane==='B'?18831:18832;$curl=curl_init('http://127.0.0.1:'.$port.$case['path']);curl_setopt_array($curl,[CURLOPT_POST=>true,CURLOPT_POSTFIELDS=>http_build_query($case['params']),CURLOPT_RETURNTRANSFER=>true,CURLOPT_HTTPHEADER=>['token: '.$request['token'],'X-CDX-Nonce: '.$request['nonce']],CURLOPT_CONNECTTIMEOUT=>5,CURLOPT_TIMEOUT=>40]);$body=curl_exec($curl);$status=curl_getinfo($curl,CURLINFO_HTTP_CODE);curl_close($curl);$check($body!==false,'HTTP error do not retry');file_put_contents(__DIR__.'/private-case-'.$label.'.httpbody',$body);chmod(__DIR__.'/private-case-'.$label.'.httpbody',0600);$wire=json_decode(file_get_contents(__DIR__.'/private-case-'.$label.'.wire.json'),true);$decoded=json_decode($body,true);$expected=['code'=>1,'message'=>$step===7?'状态修改失败':'修改失败','data'=>[]];$summary=['lane'=>$lane,'label'=>$label,'HTTP'=>$status,'business'=>$decoded,'body_sha256'=>hash('sha256',$body),'body_bytes'=>strlen($body),'complete_source_unchanged'=>$before===$source(),'passed'=>$wire['error']===null&&$status===200&&$body===$wire['body']&&$decoded===$expected];$save('private-case-'.$label.'.http.json',$summary);echo json_encode($summary,JSON_UNESCAPED_UNICODE),"\n";$check($summary['passed']&&$summary['complete_source_unchanged'],'Original error contract/zero field mutation');
