Files
Felipe Prado a7cf186e0c Refactor(Core): renomeado o prefixo bb e bbport para gow3
- Renomeados arquivos, alvos e binários (gow3gpu, gow3-probe, gow3-play)
- Renomeadas variáveis GOW3_*, identificadores Gow3*, gow3.ini e magics G3*
- Atualizado o patch do fsr-vulkan com as variáveis novas
2026-10-08 20:21:04 -03:00

41 lines
1.8 KiB
Python

from paths import ROOT
from pathlib import Path
import struct
import subprocess
import tempfile
import unittest
from unittest.mock import patch
import content_profile
EXE=ROOT/'out/content-test'
class ProfileTests(unittest.TestCase):
def test_sfo_parameters_and_explicit_trial_profile(self):
with tempfile.TemporaryDirectory() as tmp:
p=Path(tmp);(p/'sce_sys').mkdir();(p/'sce_sys/param.sfo').write_bytes(b'fixture')
with patch.object(content_profile,'sfo',return_value={'USER_DEFINED_PARAM_1':13,'USER_DEFINED_PARAM_4':0xffffffff}):
content_profile.prepare(p,p,'trial')
self.assertEqual(struct.unpack('<8s5I',(p/'content.bin').read_bytes()),(b'G3CONT01',1,13,0,0,0xffffffff))
def test_invalid_sfo_parameter_rejected(self):
with tempfile.TemporaryDirectory() as tmp:
p=Path(tmp);(p/'sce_sys').mkdir();(p/'sce_sys/param.sfo').write_bytes(b'fixture')
with patch.object(content_profile,'sfo',return_value={'USER_DEFINED_PARAM_1':'13'}):
with self.assertRaisesRegex(ValueError,'invalid user-defined'):
content_profile.prepare(p,p)
@unittest.skipUnless(EXE.exists(),'run bash build.sh --test first')
class ContentTests(unittest.TestCase):
def run_case(self,*args):
return subprocess.run([str(EXE.resolve()),*args],capture_output=True,text=True,timeout=5)
def test_lifecycle_and_output_boundaries(self):
r=self.run_case();self.assertEqual(r.returncode,0,r.stdout+r.stderr)
def test_missing_profile_does_not_report_loaded(self):
r=self.run_case('--missing');self.assertEqual(r.returncode,21)
self.assertIn('needs --content-profile',r.stderr)
def test_other_modules_are_counted_independently(self):
r=self.run_case('--unknown');self.assertEqual(r.returncode,0,r.stdout+r.stderr)