Conversation
…r_group_compat, io_device_weight, io_device_latency, delegate_subgroup (Resolves #463) Each grammar is calibrated against the systemd C parser, biased toward false-negatives over false-positives (rarer C checks that can't be modeled safely are left unenforced and documented in each KDoc): - config_parse_unit_string_printf (35 keys): any string, but '%' must be '%%' or a valid unit specifier (unit_full_printf table + COMMON_SYSTEM/ CREDS/TMP specifiers). Real specifier validation, not accept-everything. - config_parse_ip_filter_bpf_progs (12): absolute path (PATH_CHECK_ABSOLUTE), leading specifier allowed. - config_parse_user_group_compat (12): valid_user_group_name(RELAX) - no ':' '/' control chars or edge whitespace; numeric IDs allowed. - config_parse_io_device_weight (6): <path> <int 1-10000> (cg_weight_parse). - config_parse_io_device_latency (6): <path> <timespan> (parse_sec). - config_parse_delegate_subgroup (6): cgroup name, !cg_needs_escape. OptionValueTest burn-down: 372 -> 366 missing functions (797 -> 720 missing key-instances). Each validator ships valid + invalid tests; full suite passes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Test Results1 096 tests 1 096 ✅ 53s ⏱️ Results for commit 68c10c7. |
SJrX
pushed a commit
that referenced
this pull request
Jun 20, 2026
…ce, log_extra_fields, exec_selinux_context, exec_smack_process_label, unset_environ (Resolves #465) Each grammar is calibrated against the systemd C parser, biased toward false-negatives over false-positives (documented per-validator in KDoc): - config_parse_set_credential (ltypes 0,1): <id>:<data>; id is credential_name_valid (no '/' ':' control, not "."/".."), data arbitrary. - config_parse_load_credential (ltypes 0,1): <id>[:<source>]; id is credential_name_valid, source loosely constrained. - config_parse_log_namespace: log_namespace_name_valid (filename-safe, no '/', not "."/".."). - config_parse_log_extra_fields: list of FIELD=value, FIELD a journal field name [A-Z][A-Z0-9_]{0,63}. - config_parse_exec_selinux_context / config_parse_exec_smack_process_label: optional leading '-' then a specifier-validated string. - config_parse_unset_environ: list of env names or NAME=value assignments. Because the credential parsers cover ltypes 0 and 1, this clears 9 burn-down entries: OptionValueTest 366 -> 357 missing functions (1979 -> 2024 found). Each validator ships valid + invalid tests; full suite passes. Stacked on #464 (both touch AiGenerated.kt); merge #464 first. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SJrX
pushed a commit
that referenced
this pull request
Jun 20, 2026
…ce, log_extra_fields, exec_selinux_context, exec_smack_process_label, unset_environ (Resolves #465) Each grammar is calibrated against the systemd C parser, biased toward false-negatives over false-positives (documented per-validator in KDoc): - config_parse_set_credential (ltypes 0,1): <id>:<data>; id is credential_name_valid (no '/' ':' control, not "."/".."), data arbitrary. - config_parse_load_credential (ltypes 0,1): <id>[:<source>]; id is credential_name_valid, source loosely constrained. - config_parse_log_namespace: log_namespace_name_valid (filename-safe, no '/', not "."/".."). - config_parse_log_extra_fields: list of FIELD=value, FIELD a journal field name [A-Z][A-Z0-9_]{0,63}. - config_parse_exec_selinux_context / config_parse_exec_smack_process_label: optional leading '-' then a specifier-validated string. - config_parse_unset_environ: list of env names or NAME=value assignments. Because the credential parsers cover ltypes 0 and 1, this clears 9 burn-down entries: OptionValueTest 366 -> 357 missing functions (1979 -> 2024 found). Each validator ships valid + invalid tests; full suite passes. Stacked on #464 (both touch AiGenerated.kt); merge #464 first. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
SJrX
added a commit
that referenced
this pull request
Jun 20, 2026
…ce, log_extra_fields, exec_selinux_context, exec_smack_process_label, unset_environ (Resolves #465) (#466) Each grammar is calibrated against the systemd C parser, biased toward false-negatives over false-positives (documented per-validator in KDoc): - config_parse_set_credential (ltypes 0,1): <id>:<data>; id is credential_name_valid (no '/' ':' control, not "."/".."), data arbitrary. - config_parse_load_credential (ltypes 0,1): <id>[:<source>]; id is credential_name_valid, source loosely constrained. - config_parse_log_namespace: log_namespace_name_valid (filename-safe, no '/', not "."/".."). - config_parse_log_extra_fields: list of FIELD=value, FIELD a journal field name [A-Z][A-Z0-9_]{0,63}. - config_parse_exec_selinux_context / config_parse_exec_smack_process_label: optional leading '-' then a specifier-validated string. - config_parse_unset_environ: list of env names or NAME=value assignments. Because the credential parsers cover ltypes 0 and 1, this clears 9 burn-down entries: OptionValueTest 366 -> 357 missing functions (1979 -> 2024 found). Each validator ships valid + invalid tests; full suite passes. Stacked on #464 (both touch AiGenerated.kt); merge #464 first. Co-authored-by: Steve Ramage <gitcommits@sjrx.net> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves #463. Six validators, each calibrated against the systemd C parser (local source), implemented in the
SimpleGrammarOptionValuesframework with valid + invalid tests.config_parse_unit_string_printf%must be%%or a valid unit specifierconfig_parse_ip_filter_bpf_progsPATH_CHECK_ABSOLUTE); leading specifier allowedconfig_parse_user_group_compatvalid_user_group_name(RELAX): no:/ctrl / edge whitespace; numeric OKconfig_parse_io_device_weight<path> <int 1-10000>(cg_weight_parse)config_parse_io_device_latency<path> <timespan>(parse_sec)config_parse_delegate_subgroup!cg_needs_escapeDesign notes
unit_string_printfdoes real specifier validation (set extracted fromunit-printf.c+ theCOMMON_*macros inspecifier.h) —%eis flagged,%i/%H/%%/non-ASCII pass. Not an accept-everything validator.%loosely;io_device_*don't force absolute paths since the C usesflags 0;user_group_compatskips the purely-numeric/-N/./..RELAX cases;delegate_subgroupskips the<controller>.rule).Impact
OptionValueTestburn-down: 372 → 366 missing functions (797 → 720 missing key-instances).🤖 Generated with Claude Code