From 4b3809a2f45d14972db5cdafa42097a1bcee56eb Mon Sep 17 00:00:00 2001 From: Daniel Han Date: Mon, 27 Jul 2026 06:42:20 -0700 Subject: [PATCH] tests: stop the installer constraint test counting occurrences (#7503) test_torch_constraint.sh asserted how many times each pin appears in install.sh. Every hardware branch assigns its own torch/torchvision/torchaudio triple, so #7354 adding gfx906 pushed three of those counts up by one and Backend CI has been red on main since: FAIL: default TORCH_CONSTRAINT assignment exists (expected '1', got '2') FAIL: hardcoded torch>=2.4 appears exactly once (expected '1', got '2') FAIL: torchvision bounded (<0.26) at default + custom-leaf (expected '2', got '3') FAIL: torchaudio bounded (<2.11) at default + custom-leaf (expected '2', got '3') install.sh is correct; the numbers were the stale part. Assert the invariants instead, so the next hardware branch is not a test edit: - the default assignment is the top-level one, so anchor the grep at column 0 rather than counting every occurrence. An indented branch pin no longer satisfies it, which the old count did not distinguish either. - what "appears exactly once" really guarded is that no pip install line spells a pin out instead of using "$TORCH_CONSTRAINT", so check that directly. - companions must be bounded everywhere, so compare bounded assignments against total assignments rather than pinning a count of 2. That is strictly stronger: it now covers all 7, not the 2 the old numbers happened to name. 45 pass, 0 fail. Each new assertion fails when its property is broken: a bare or unbounded companion, a hardcoded pin on an install line, or a missing top-level default. --- tests/sh/test_torch_constraint.sh | 32 ++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/tests/sh/test_torch_constraint.sh b/tests/sh/test_torch_constraint.sh index bfafbd161b..ada95c2620 100644 --- a/tests/sh/test_torch_constraint.sh +++ b/tests/sh/test_torch_constraint.sh @@ -94,28 +94,34 @@ echo "=== Structural: TORCH_CONSTRAINT in install.sh ===" _SH_CONTENT=$(cat "$INSTALL_SH") -_count=$(grep -c 'TORCH_CONSTRAINT="torch>=2.4,<2.11.0"' "$INSTALL_SH" || true) +# Each hardware branch assigns its own triple, so counting every occurrence made +# adding a branch (gfx906 in #7354) a test edit. The default is the one assigned at +# top level; a branch's is always indented, so anchor on that instead of counting. +_count=$(grep -c '^TORCH_CONSTRAINT="torch>=2.4,<2.11.0"$' "$INSTALL_SH" || true) assert_eq "default TORCH_CONSTRAINT assignment exists" "1" "$_count" _count=$(grep -c 'TORCH_CONSTRAINT="torch>=2.6,<2.11.0"' "$INSTALL_SH" || true) -assert_eq "tightened TORCH_CONSTRAINT assignment exists" "1" "$_count" +_has=$([ "$_count" -ge 1 ] && echo "yes" || echo "no") +assert_eq "tightened TORCH_CONSTRAINT assignment exists" "yes" "$_has" _count=$(grep -c '"\$TORCH_CONSTRAINT"' "$INSTALL_SH" || true) _has_var=$([ "$_count" -ge 1 ] && echo "yes" || echo "no") assert_eq "\$TORCH_CONSTRAINT used in pip install" "yes" "$_has_var" -# Hardcoded torch>=2.4,<2.11.0 should only appear once (the default assignment) -_hardcoded=$(grep -c '"torch>=2.4,<2.11.0"' "$INSTALL_SH" || true) -assert_eq "hardcoded torch>=2.4 appears exactly once" "1" "$_hardcoded" +# What the old "appears exactly once" count was really guarding: an install line that +# spells the pin out ignores whatever the branch above it chose. +_literal=$(grep -cE 'uv pip install .*"torch>=' "$INSTALL_SH" || true) +assert_eq "no pip install hardcodes a torch pin" "0" "$_literal" -# Companions must be bounded to torch's window everywhere: the <2.11 bound appears -# twice (default assignments + the pinned custom-leaf block), never bare. torchaudio -# 2.11 dropped its exact torch pin, so a bare companion next to a <2.11-capped torch -# resolves a mismatched 2.11 build. -_count=$(grep -c 'TORCHVISION_CONSTRAINT="torchvision>=0.19,<0.26.0"' "$INSTALL_SH" || true) -assert_eq "torchvision bounded (<0.26) at default + custom-leaf" "2" "$_count" -_count=$(grep -c 'TORCHAUDIO_CONSTRAINT="torchaudio>=2.4,<2.11.0"' "$INSTALL_SH" || true) -assert_eq "torchaudio bounded (<2.11) at default + custom-leaf" "2" "$_count" +# Companions must be bounded to torch's window everywhere, never bare: torchaudio 2.11 +# dropped its exact torch pin, so a bare companion next to a <2.11-capped torch resolves +# a mismatched 2.11 build. Every assignment, not a fixed number of them. +_total=$(grep -cE '^[[:space:]]*TORCHVISION_CONSTRAINT="' "$INSTALL_SH" || true) +_bounded=$(grep -cE '^[[:space:]]*TORCHVISION_CONSTRAINT="torchvision>=[0-9][0-9.]*,<[0-9][0-9.]*"$' "$INSTALL_SH" || true) +assert_eq "every torchvision constraint is upper-bounded" "$_total" "$_bounded" +_total=$(grep -cE '^[[:space:]]*TORCHAUDIO_CONSTRAINT="' "$INSTALL_SH" || true) +_bounded=$(grep -cE '^[[:space:]]*TORCHAUDIO_CONSTRAINT="torchaudio>=[0-9][0-9.]*,<[0-9][0-9.]*"$' "$INSTALL_SH" || true) +assert_eq "every torchaudio constraint is upper-bounded" "$_total" "$_bounded" _count=$(grep -c 'TORCHVISION_CONSTRAINT="torchvision"$' "$INSTALL_SH" || true) assert_eq "no bare torchvision companion remains" "0" "$_count" _count=$(grep -c 'TORCHAUDIO_CONSTRAINT="torchaudio"$' "$INSTALL_SH" || true)