t / t0061-run-command.shon commit init: use strbufs to store paths (9c28390)
   1#!/bin/sh
   2#
   3# Copyright (c) 2009 Ilari Liusvaara
   4#
   5
   6test_description='Test run command'
   7
   8. ./test-lib.sh
   9
  10cat >hello-script <<-EOF
  11        #!$SHELL_PATH
  12        cat hello-script
  13EOF
  14>empty
  15
  16test_expect_success 'start_command reports ENOENT' '
  17        test-run-command start-command-ENOENT ./does-not-exist
  18'
  19
  20test_expect_success 'run_command can run a command' '
  21        cat hello-script >hello.sh &&
  22        chmod +x hello.sh &&
  23        test-run-command run-command ./hello.sh >actual 2>err &&
  24
  25        test_cmp hello-script actual &&
  26        test_cmp empty err
  27'
  28
  29test_expect_success POSIXPERM 'run_command reports EACCES' '
  30        cat hello-script >hello.sh &&
  31        chmod -x hello.sh &&
  32        test_must_fail test-run-command run-command ./hello.sh 2>err &&
  33
  34        grep "fatal: cannot exec.*hello.sh" err
  35'
  36
  37test_expect_success POSIXPERM,SANITY 'unreadable directory in PATH' '
  38        mkdir local-command &&
  39        test_when_finished "chmod u+rwx local-command && rm -fr local-command" &&
  40        git config alias.nitfol "!echo frotz" &&
  41        chmod a-rx local-command &&
  42        (
  43                PATH=./local-command:$PATH &&
  44                git nitfol >actual
  45        ) &&
  46        echo frotz >expect &&
  47        test_cmp expect actual
  48'
  49
  50test_done