[PATCH v2 0/2] ci: use cmp and align job-count selection
- From
Tamir Duberstein <tamird@gmail.com>
- Date
- Sep 25, 2026, 16:35 UTC
- Message-ID
- <20260925-ci-large-test-resources-v2-0-f632cf319756@gmail.com>
- In-Reply-To
- <20260923-ci-large-test-resources-v1-0-c28416d59475@gmail.com>
The first patch uses cmp for the huge commit-message output comparison. On this input, GNU diffutils 3.8 on Linux arm64 takes 5.276 seconds with 4,199,924 KiB peak RSS for diff, versus 0.506 seconds and 1,264 KiB for cmp. Patch 1 includes the fixture and measurement details.
The second patch aligns GitHub Actions' Make and prove job counts with GitLab CI's CPU-count policy, replacing GitHub's fixed ten jobs.
Signed-off-by: Tamir Duberstein <tamird@gmail.com> --- Changes in v2: - Replace the unavailable CI failure reference with comparison runtime and peak RSS measurements. - Drop the file removal; following tests overwrite expect and actual. - Share job-count selection between GitHub Actions and GitLab CI. - Use native CPU-count queries on macOS and Windows. - Link to v1: https://patch.msgid.link/20260923-ci-large-test-resources-v1-0-c28416d59475@gmail.com
---
Tamir Duberstein (2):
t4205: compare huge output without diff
ci: align job counts across CI providersci/lib.sh | 16 ++++++++++++---- t/t4205-log-pretty-formats.sh | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-)
Range-diff versus v1:
1: 5babc36eb5 ! 1: b48c86e164 t4205: compare huge output without diff
@@ Metadata
## Commit message ##
t4205: compare huge output without diff
- The huge-commit test compares two files with a line larger than 2 GiB.
- In Linux GitHub Actions jobs, git log produces its huge output but
- its subsequent diff process is killed with SIGKILL.
+ The huge-commit test compares output containing a line larger than 2 GiB.
+ For two identical files containing 2,147,483,649 "1" bytes followed by
+ "0\n", GNU diffutils 3.8 on Linux arm64 gives these measurements:
- Use test_cmp_bin to compare the output byte for byte without constructing
- a line-oriented diff. Remove the two large files after a successful
- comparison, releasing more than 4 GiB before subsequent tests.
+ Command Mean +/- stddev Maximum RSS (KiB)
+ diff -u expect actual 5.276 +/- 0.572 s 4199924
+ cmp expect actual 0.506 +/- 0.099 s 1264
+ The test needs only an equality check. Use test_cmp_bin, which runs cmp,
+ to compare the output byte for byte with less time and memory.
+
+ Assisted-by: LLM
Signed-off-by: Tamir Duberstein <tamird@gmail.com>
## t/t4205-log-pretty-formats.sh ##
@@ t/t4205-log-pretty-formats.sh: test_expect_success EXPENSIVE,SIZE_T_IS_64BIT 'se
git log -1 --format="%B%<(1)%x30" $huge_commit >actual &&
echo 0 >>expect &&
- test_cmp expect actual
-+ test_cmp_bin expect actual &&
-+ rm expect actual
++ test_cmp_bin expect actual
'
test_expect_success EXPENSIVE,SIZE_T_IS_64BIT 'log --pretty with huge commit message does not cause allocation failure' '
2: 0836f6b372 < -: ---------- ci: match Linux jobs to available CPUs
-: ---------- > 2: 8ec0308f6a ci: align job counts across CI providers--- base-commit: 3bc0341126508f78f5869cbfc0005e987efdf0c7 change-id: 20260923-ci-large-test-resources-349cdc95f7f8