Commit 5b6700cb authored by Mislav Marohnić's avatar Mislav Marohnić
Browse files

Simplify stubbing commands in tests

No more awkward juggling of PATH entries and preset stubs in version
control. Commands are stubbed by symlinking the main stub from a
temporary `$TMP/bin` directory that's added once to PATH in tests.
parent 136294ab
Loading
Loading
Loading
Loading

test/stubs/curl/curl

deleted120000 → 0
+0 −1
Original line number Diff line number Diff line
../stub
 No newline at end of file

test/stubs/md5/md5

deleted120000 → 0
+0 −1
Original line number Diff line number Diff line
../stub
 No newline at end of file
+12 −9
Original line number Diff line number Diff line
export PATH="$BATS_TEST_DIRNAME/../bin:$PATH"
export TMP="$BATS_TEST_DIRNAME/tmp"

if [ "$FIXTURE_ROOT" != "$BATS_TEST_DIRNAME/fixtures" ]; then
  export FIXTURE_ROOT="$BATS_TEST_DIRNAME/fixtures"
  export INSTALL_ROOT="$TMP/install"
  export PATH="$BATS_TEST_DIRNAME/../bin:$PATH"
  export PATH="$TMP/bin:$PATH"
fi

teardown() {
  rm -fr "$TMP"/*
@@ -16,7 +20,8 @@ stub() {
  export "${prefix}_STUB_RUN"="${TMP}/${program}-stub-run"
  export "${prefix}_STUB_END"=

  export PATH="${BATS_TEST_DIRNAME}/stubs/${program}:$PATH"
  mkdir -p "${TMP}/bin"
  ln -shf "${BATS_TEST_DIRNAME}/stubs/stub" "${TMP}/bin/${program}"

  rm -f "${TMP}/${program}-stub-plan" "${TMP}/${program}-stub-run"
  touch "${TMP}/${program}-stub-plan"
@@ -26,14 +31,12 @@ stub() {
unstub() {
  local program="$1"
  local prefix="$(echo "$program" | tr a-z A-Z)"
  local path="${TMP}/bin/${program}"

  export "${prefix}_STUB_END"=1

  local path="${BATS_TEST_DIRNAME}/stubs/$program"
  local escaped_path="${path//\//\\/}"
  export PATH="${PATH/${escaped_path}:}"

  "${path}/$program"
  "$path"
  rm -f "$path"
}

install_fixture() {