30 lines
1.0 KiB
Bash
30 lines
1.0 KiB
Bash
git() { if [ "$1" = rev-parse ]; then echo "$TEST_SHA"; fi; }
|
|
tar() { cat >/dev/null; }
|
|
node() { echo "verify $*" >> "$TEST_DIR/calls"; }
|
|
docker() {
|
|
echo "docker $*" >> "$TEST_DIR/calls"
|
|
if [ "$1" = login ]; then cat >/dev/null; return; fi
|
|
if [ "$1 $2" = "image inspect" ]; then
|
|
if [[ "$*" = *org.opencontainers.image.revision* ]]; then echo "$TEST_SHA"
|
|
elif [[ "${@: -1}" = *verified-* ]]; then
|
|
case "$SCENARIO" in verified) echo sha256:candidate ;; mismatch) echo sha256:other ;; *) return 1 ;; esac
|
|
else echo sha256:candidate; fi
|
|
fi
|
|
}
|
|
export -f git tar node docker
|
|
|
|
curl() {
|
|
local output="${@: -1}"
|
|
cat > "$output" <<'MOCK'
|
|
#!/usr/bin/env bash
|
|
echo "regctl $*" >> "$TEST_DIR/calls"
|
|
if [[ "$1 $2" = "image copy" && "$SCENARIO" = upload-fails ]]; then exit 1; fi
|
|
if [[ "$1 $2" = "manifest get" ]]; then
|
|
if [[ "$SCENARIO" = wrong-config && "$3" != ocidir:* ]]; then echo sha256:wrong; else printf "sha256:%064d\n" 0; fi
|
|
fi
|
|
MOCK
|
|
}
|
|
sha256sum() { cat >/dev/null; [[ "$SCENARIO" != bad-checksum ]]; }
|
|
uname() { echo x86_64; }
|
|
export -f curl sha256sum uname
|