← Files LinchpinARCHIVED FILE

tests/mode-selection.sh

997 Bytes · Oct 2, 2026 · 00:29 UTC

↓ Download file

#!/bin/sh
. "$(dirname -- "$0")/testlib.sh"

a="$tmp_dir/a.md"
b="$tmp_dir/b.md"
c="$tmp_dir/c.md"
cp "$fixture_dir/conforming-prd.md" "$a"
cp "$fixture_dir/conforming-prd.md" "$b"
cp "$fixture_dir/conforming-prd.md" "$c"
sed -i 's#src/alpha.md#src/charlie.md#g; s#src/shared.md#docs/charlie.md#g; s#scripts/linchpin.sh#docs/charlie-run.md#g' "$c"
mixed=$(sh "$repo_root/scripts/linchpin.sh" mode auto "$a" "$b" "$c")
assert_contains "$mixed" 'mode=sequential'
assert_contains "$mixed" 'mode=parallel'
printf '%s\n' "$mixed" | grep -F "$a,$b" >/dev/null || fail 'intersecting lanes were not grouped sequentially'
all_disjoint=$(sh "$repo_root/scripts/linchpin.sh" mode auto "$a" "$c")
if printf '%s\n' "$all_disjoint" | grep -q 'mode=sequential'; then
  fail 'disjoint lanes were made sequential'
fi
expect_failure 'forced parallel on intersecting Files (N)' sh "$repo_root/scripts/linchpin.sh" mode parallel "$a" "$b"
pass 'mode selection is per collision group and forced parallel fails loudly'

SHA-256: d9d8b993d9d5db59e71fa98215763b7af01087a92b2330a9b369cbaba269bf5e