FDS/OS 1.0 fixes
This commit is contained in:
@@ -14,7 +14,7 @@ from image_formats import gpt, LINUX_FILESYSTEM
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
parser.add_argument('--cli', type=Path, required=True)
|
||||
parser.add_argument('--image-tool-runner', type=Path)
|
||||
parser.add_argument('--void-packages', type=Path, default=project / 'vendor/void-packages')
|
||||
parser.add_argument('--void-packages', type=Path, default=project / '.host/void-packages')
|
||||
parser.add_argument('--xbps-tool-runner', type=Path)
|
||||
parser.add_argument('--xbps-bin', type=Path)
|
||||
args = parser.parse_args()
|
||||
@@ -43,6 +43,15 @@ def digest(path):
|
||||
return hashlib.file_digest(stream, 'sha256').hexdigest()
|
||||
|
||||
|
||||
# A user-provided submodule path must fail before copying any package sources.
|
||||
upstream = project / 'vendor/void-packages'
|
||||
assert not subprocess.check_output(['git', '-C', str(upstream), 'status', '--porcelain', '--untracked-files=all'])
|
||||
rejected = subprocess.run([cli[0], '--void-packages', str(upstream), 'software', 'build',
|
||||
str(project / 'examples/software/hello/software.toml'), str(work / 'forbidden-build')],
|
||||
capture_output=True, text=True)
|
||||
assert rejected.returncode != 0 and 'outside Git submodules' in rejected.stderr, rejected.stderr
|
||||
assert not (work / 'forbidden-build').exists()
|
||||
|
||||
for name in ['hello', 'report']:
|
||||
recipe = project / f'examples/software/{name}/software.toml'
|
||||
if name == 'report':
|
||||
@@ -149,7 +158,8 @@ for case in ['program-corrupt', 'catalogue-mapping']:
|
||||
malformed = work / (case + '.img')
|
||||
gpt(malformed, [(part['name'], LINUX_FILESYSTEM, filesystem) for part, filesystem in zip(parts, selected)])
|
||||
invoke(['inspect', malformed], False)
|
||||
record = dict(status='passed', work=str(work), cli_sha256=digest(args.cli.resolve()), compiled_aarch64_software=True,
|
||||
assert not subprocess.check_output(['git', '-C', str(upstream), 'status', '--porcelain', '--untracked-files=all'])
|
||||
record = dict(source_checkout_clean=True, submodule_build_rejected=True, status='passed', work=str(work), cli_sha256=digest(args.cli.resolve()), compiled_aarch64_software=True,
|
||||
void_source_packages=True, installed_runtime_dependencies=True, wrong_elf_and_escaping_symlink_rejected=True, shared_and_separate_payload_partitions=True,
|
||||
repeat_image_identical=True, direct_installed_erofs_programs=True,
|
||||
exact_and_larger_target_readback=True, wrong_confirmation_unchanged=True,
|
||||
|
||||
Reference in New Issue
Block a user