Skip to content

feat: add 6 validators (batch 5/5) - exec_input, exec_memory_thp, exec_cpu_affinity, syscall_archs, colon_separated_paths, user_group_strv_compat#453

Merged
SJrX merged 1 commit into
issue-450from
issue-452
May 23, 2026
Merged

feat: add 6 validators (batch 5/5) - exec_input, exec_memory_thp, exec_cpu_affinity, syscall_archs, colon_separated_paths, user_group_strv_compat#453
SJrX merged 1 commit into
issue-450from
issue-452

Conversation

@SJrX
Copy link
Copy Markdown
Owner

@SJrX SJrX commented May 23, 2026

Summary

Final batch (5 of 5). Each grammar derived from systemd C source:

Validator C source Usages Approach
config_parse_exec_input(0) load-fragment.c:1124 5 fd:NAME OR file:/PATH OR enum (null/tty/tty-force/tty-fail/socket/data)
config_parse_exec_memory_thp(0) load-fragment.c:170 (DEFINE_CONFIG_PARSE_ENUM) 5 inherit/disable/madvise/system
config_parse_exec_cpu_affinity(0) load-fragment.c:1822 5 "numa" OR CPU set list (N / N-M, whitespace or comma separated)
config_parse_syscall_archs(0) load-fragment.c:3377seccomp_arch_from_string 5 List of ~22 named archs
config_parse_colon_separated_paths(0) load-fragment.c:448 5 Colon-separated absolute paths (specifier-aware)
config_parse_user_group_strv_compat(0) load-fragment.c:2519valid_user_group_name(RELAX) 5 Whitespace-separated user/group names, no : / whitespace, not ./..

Resolves #452. Stacked on #451 (batch 4).

Results — full burn-down summary

After batches 1-5 land, OptionValueTest:

Metric Before (post-#443) After batch 5 Delta
Missing functions 400 370 −30
Found keys 1744 1900 +156
Estimated failure date ~2026-06-03 ~2026-07-09 +5 weeks

July target reached. 🎉

Skipped

  • config_parse_exec_coredump_filter(0) — accepts filter names + arbitrary uint64, would loosen grammar
  • config_parse_exec_selinux_context/smack_process_label(0) — context strings, defer
  • config_parse_exec_root_hash{,_sig}(0) — base64-ish hashes, defer
  • config_parse_{extension,mount,root_image_options,temporary_filesystems}_images(0) — path + mount-option syntax, defer
  • config_parse_*_credential(0/1) — credential identifier + source, defer

These remain in the missing list for future batches.

Test plan

  • All 6 new test classes pass
  • OptionValueTest and SemanticDataRepositoryTest pass
  • Full suite passes
  • CI green

🤖 Generated with Claude Code

…ty, syscall_archs, colon_separated_paths, user_group_strv_compat (Resolves #452)

Batch 5/5 — final batch of the burn-down extension. Each grammar mirrors the systemd C parser:

- config_parse_exec_input: fd:NAME | file:/PATH | enum from exec_input_table
- config_parse_exec_memory_thp: inherit/disable/madvise/system enum
- config_parse_exec_cpu_affinity: "numa" OR CPU set list (integers and N-M ranges, whitespace or comma separated)
- config_parse_syscall_archs: list of arch names from seccomp_arch_from_string (~22 entries, includes loongarch64/riscv64 unconditionally)
- config_parse_colon_separated_paths: colon-separated absolute paths (specifier-aware)
- config_parse_user_group_strv_compat: relaxed user/group names, no colon/slash/whitespace, not "."/"..", specifier-aware

OptionValueTest missing-function count drops 376 -> 370; found-key count rises 1870 -> 1900.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

Test Results

1 084 tests  +12   1 084 ✅ +12   45s ⏱️ -2s
  281 suites + 6       0 💤 ± 0 
  281 files   + 6       0 ❌ ± 0 

Results for commit 59d162b. ± Comparison against base commit d5ac3fb.

@SJrX SJrX merged commit 4e3ec20 into issue-450 May 23, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant