P08-03: 配置の通常操作受入
This commit is contained in:
@@ -124,15 +124,27 @@ class EvidenceTests(unittest.TestCase):
|
||||
|
||||
def test_wrong_resume(self):
|
||||
path = 'pair/reader-checkpoint.json'
|
||||
original = (self.out/path).read_bytes()
|
||||
model = C.decode(json.loads((self.out/path).read_text()))
|
||||
model['clock']['absolute_minute'] += 1
|
||||
F.put(self.out/path, F.typed(model)); F.repin(self.out)
|
||||
self.reject('wrong resume model')
|
||||
(self.out/path).write_bytes(original); F.repin(self.out)
|
||||
self.edit('pair/reader-save-result-0001.json', lambda d: d.update(result=F.typed({'ok':False,'operation':'load','code':'UNSAFE_PATH'})))
|
||||
self.reject('actual save/load failed')
|
||||
self.edit('pair/reader-save-result-0001.json', lambda d: d.update(result=F.typed({'ok':True,'operation':'load'}), requested_path='/outside/formal'))
|
||||
self.reject('save outside private user profile')
|
||||
|
||||
def test_missing_formal_member(self):
|
||||
(self.out/'pair/formal/journal.log').unlink()
|
||||
F.repin(self.out)
|
||||
self.reject('journal.log')
|
||||
for name in ('formal','formal.bak'):
|
||||
with self.subTest(package=name):
|
||||
file = self.out/('pair/'+name+'/journal.log')
|
||||
original = file.read_bytes()
|
||||
file.unlink(); F.repin(self.out)
|
||||
self.reject('journal.log')
|
||||
file.write_bytes(original); F.repin(self.out)
|
||||
self.edit('pair/formal-export.json', lambda d: d['slot_metadata'].update(sha256='0'*64))
|
||||
self.reject('slot metadata SHA')
|
||||
|
||||
def test_missing_model_member(self):
|
||||
path = 'pair/writer-unsupported-before.json'
|
||||
@@ -238,7 +250,9 @@ class EvidenceTests(unittest.TestCase):
|
||||
private_project=C.runner.private_project, fresh_environment=C.runner.fresh_environment,
|
||||
SUPPORT=ROOT/'tools/regression', module=lambda *a:SimpleNamespace(ordinary_gate=lambda *a:{'mock':True}))
|
||||
outer = SimpleNamespace(native=SimpleNamespace(helper={'live_engines':lambda:[]}),finish_captured=cleanup)
|
||||
with patch.object(D.subprocess,'Popen',side_effect=spawn), contextlib.redirect_stdout(io.StringIO()):
|
||||
# Disk admission is an environmental input to this fully mocked collector.
|
||||
# Preserve the real collector's gate; make this fixture independent of host free space.
|
||||
with patch.object(D.shutil,'disk_usage',return_value=SimpleNamespace(free=1024**3)), patch.object(D.subprocess,'Popen',side_effect=spawn), contextlib.redirect_stdout(io.StringIO()):
|
||||
if fail_wait:
|
||||
with self.assertRaisesRegex(AssertionError,'native OS collection failed'):
|
||||
D.collect_os(r,self.root,output,stage,str(Path(self.temp.name)/'synthetic-engine-not-executable'),'1'*40,refs,protected,outer)
|
||||
|
||||
Reference in New Issue
Block a user