Skip to content

Comments

Reduce conformance test CI time#46

Merged
jserv merged 1 commit intomainfrom
shorten-conformance
Feb 21, 2026
Merged

Reduce conformance test CI time#46
jserv merged 1 commit intomainfrom
shorten-conformance

Conversation

@jserv
Copy link
Contributor

@jserv jserv commented Feb 21, 2026

This limits default architecture set to representative archs (x86_64, arm64, riscv, arm) instead of iterating all ~24. test_min_config is further restricted to x86_64 only by default. Full coverage is preserved via environment variables:

  • KCONFIGLIB_OBSESSIVE=1 -- all architectures
  • KCONFIGLIB_MIN_CONFIG=1 -- expand test_min_config to representative set

Parametrize test_defconfig, test_min_config, and test_sanity by (arch, srcarch) so pytest reports per-arch timing and supports selective re-runs (e.g. -k "test_defconfig[x86_64]").

Also replace shell("cp ...") with shutil.copyfile() in test_min_config to eliminate shell injection risk from paths with spaces or special characters.


Summary by cubic

Cuts conformance test CI time by default by running a small, representative arch set and parametrizing tests for per-arch reporting. Full coverage remains opt-in via env vars.

  • Refactors

    • Default arch set: x86_64, arm64, riscv, arm. test_allconfig, test_defconfig, and test_sanity use it by default; set KCONFIGLIB_OBSESSIVE=1 for all architectures.
    • test_min_config runs on x86_64 only by default. Use KCONFIGLIB_MIN_CONFIG=1 (or KCONFIGLIB_OBSESSIVE_MIN_CONFIG=1 / KCONFIGLIB_OBSESSIVE=1) to expand.
    • Parametrized test_defconfig, test_min_config, and test_sanity by (arch, srcarch) for per-arch timing and selective re-runs.
  • Bug Fixes

    • Replaced shell("cp ...") with shutil.copyfile() in test_min_config to remove shell injection risk.

Written for commit 7087ba1. Summary will update on new commits.

Copy link

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="tests/test_conformance.py">

<violation number="1" location="tests/test_conformance.py:371">
P2: `KCONFIGLIB_OBSESSIVE_MIN_CONFIG` is still parsed but no longer affects defconfig collection, so enabling it no longer restores the previous cross-arch coverage. This is a behavior regression for the legacy env flag and silently reduces test coverage.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

This limits default architecture set to representative archs (x86_64,
arm64, riscv, arm) instead of iterating all ~24. test_min_config is
further restricted to x86_64 only by default. Full coverage is
preserved via environment variables:
* KCONFIGLIB_OBSESSIVE=1   -- all architectures
* KCONFIGLIB_MIN_CONFIG=1  -- expand test_min_config to representative set

Parametrize test_defconfig, test_min_config, and test_sanity by (arch,
srcarch) so pytest reports per-arch timing and supports selective
re-runs (e.g. -k "test_defconfig[x86_64]").

Also replace shell("cp ...") with shutil.copyfile() in test_min_config
to eliminate shell injection risk from paths with spaces or special
characters.
@jserv jserv force-pushed the shorten-conformance branch from 4d93aaf to 7087ba1 Compare February 21, 2026 03:57
@jserv jserv merged commit ee37b32 into main Feb 21, 2026
9 checks passed
@jserv jserv deleted the shorten-conformance branch February 21, 2026 04:10
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