Skip to content

Commit

Permalink
Extend testing to include git-tag driver
Browse files Browse the repository at this point in the history
  • Loading branch information
holstvoogd committed Aug 10, 2016
1 parent a98efae commit d7cde8d
Show file tree
Hide file tree
Showing 4 changed files with 107 additions and 78 deletions.
7 changes: 5 additions & 2 deletions test/all.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,11 @@ set -e

export TMPDIR_ROOT=$(mktemp -d /tmp/git-tests.XXXXXX)

$(dirname $0)/check.sh
$(dirname $0)/put.sh
$(dirname $0)/check.sh "git"
$(dirname $0)/put.sh "git"
rm -rf $TMPDIR_ROOT/*
$(dirname $0)/check.sh "git-tag"
$(dirname $0)/put.sh "git-tag"

echo -e '\e[32mall tests passed!\e[0m'

Expand Down
45 changes: 26 additions & 19 deletions test/check.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,32 +5,36 @@ set -e
source $(dirname $0)/helpers.sh

it_can_check_with_no_current_version() {
local driver=$1
local repo=$(init_repo)

check_uri $repo | jq -e "
check_uri $driver $repo | jq -e "
. == [{number: $(echo 0.0.0 | jq -R .)}]
"
}

it_can_check_with_no_current_version_with_initial_set() {
local driver=$1
local repo=$(init_repo)

check_uri_with_initial $repo 0.1.2 | jq -e "
check_uri_with_initial $driver $repo 0.1.2 | jq -e "
. == [{number: $(echo 0.1.2 | jq -R .)}]
"
}

it_can_check_with_current_version() {
local driver=$1
local repo=$(init_repo)

set_version $repo 1.2.3

check_uri $repo | jq -e "
check_uri $driver $repo | jq -e "
. == [{number: $(echo 1.2.3 | jq -R .)}]
"
}

it_fails_if_key_has_password() {
local driver=$1
local repo=$(init_repo)

set_version $repo 1.2.3
Expand All @@ -39,7 +43,7 @@ it_fails_if_key_has_password() {
ssh-keygen -f $key -N some-passphrase

local failed_output=$TMPDIR/failed-output
if check_uri_with_key $repo $key 2>$failed_output; then
if check_uri_with_key $driver $repo $key 2>$failed_output; then
echo "checking should have failed"
return 1
fi
Expand All @@ -48,79 +52,82 @@ it_fails_if_key_has_password() {
}

it_can_check_with_credentials() {
local driver=$1
local repo=$(init_repo)

set_version $repo 1.2.3

check_uri_with_credentials $repo "user1" "pass1" | jq -e "
check_uri_with_credentials $driver $repo "user1" "pass1" | jq -e "
. == [{number: $(echo 1.2.3 | jq -R .)}]
"

local expected_netrc="default login user1 password pass1"
[ "$(cat $HOME/.netrc)" = "$expected_netrc" ]

# make sure it clears out .netrc for this request without credentials
check_uri_with_credentials $repo "" "" | jq -e "
check_uri_with_credentials $driver $repo "" "" | jq -e "
. == [{number: $(echo 1.2.3 | jq -R .)}]
"
[ ! -f "$HOME/.netrc" ]
}

it_clears_netrc_even_after_errors() {
local driver=$1
local repo=$(init_repo)

set_version $repo 1.2.3

if check_uri_with_credentials "non_existent_repo" "user1" "pass1" ; then
if check_uri_with_credentials $driver "non_existent_repo" "user1" "pass1" ; then
exit 1
fi

local expected_netrc="default login user1 password pass1"
[ "$(cat $HOME/.netrc)" = "$expected_netrc" ]

# make sure it clears out .netrc for this request without credentials
if check_uri_with_credentials "non_existent_repo" "" "" ; then
if check_uri_with_credentials $driver "non_existent_repo" "" "" ; then
exit 1
fi
[ ! -f "$HOME/.netrc" ]
}

it_can_check_from_a_version() {
local driver=$1
local repo=$(init_repo)

set_version $repo 1.2.3

check_uri_from $repo 1.2.3 | jq -e "
check_uri_from $driver $repo 1.2.3 | jq -e "
. == [
{number: $(echo 1.2.3 | jq -R .)}
]
"

check_uri_from $repo 1.2.4 | jq -e "
check_uri_from $driver $repo 1.2.4 | jq -e "
. == []
"

set_version $repo 1.2.5

check_uri_from $repo 1.2.4 | jq -e "
check_uri_from $driver $repo 1.2.4 | jq -e "
. == [
{number: $(echo 1.2.5 | jq -R .)}
]
"

set_version $repo 2.0.0

check_uri_from $repo 1.2.4 | jq -e "
check_uri_from $driver $repo 1.2.4 | jq -e "
. == [
{number: $(echo 2.0.0 | jq -R .)}
]
"
}

run it_can_check_with_no_current_version
run it_can_check_with_no_current_version_with_initial_set
run it_can_check_with_current_version
run it_fails_if_key_has_password
run it_can_check_with_credentials
run it_can_check_from_a_version
run it_clears_netrc_even_after_errors
run it_can_check_with_no_current_version $1
run it_can_check_with_no_current_version_with_initial_set $1
run it_can_check_with_current_version $1
run it_fails_if_key_has_password $1
run it_can_check_with_credentials $1
run it_can_check_from_a_version $1
run it_clears_netrc_even_after_errors $1
85 changes: 52 additions & 33 deletions test/helpers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ resource_dir=/opt/resource
run() {
export TMPDIR=$(mktemp -d ${TMPDIR_ROOT}/git-tests.XXXXXX)

echo -e 'running \e[33m'"$@"$'\e[0m...'
echo -e 'running \e[33m'"$1"$'\e[0m with '"$2"' driver...'
eval "$@" 2>&1 | sed -e 's/^/ /g'
echo ""
}
Expand All @@ -33,7 +33,7 @@ init_repo() {
)
}

set_version_in_file_on_branch() {
set_version_in_file_on_branch_and_tag() {
local repo=$1
local file=$2
local branch=$3
Expand All @@ -55,19 +55,38 @@ set_version_in_file_on_branch() {
-c user.email='test@example.com' \
commit -q -m "set version to $version"

# set tag
git -C $repo tag -a -m "concourse semver" $version HEAD

# output resulting sha
git -C $repo rev-parse HEAD
}

set_version() {
set_version_in_file_on_branch $1 some-file master $2
set_version_in_file_on_branch_and_tag $1 some-file master $2
}

check_version() {
local driver=$1
local repo=$2
local version=$3

case $driver in
"git")
test -e $repo/some-file
test "$(cat $repo/some-file)" = $version
;;
"git-tag")
test "$(git -C $repo describe --tags)" = $version
;;
esac
}

check_uri() {
jq -n "{
source: {
driver: \"git\",
uri: $(echo $1 | jq -R .),
driver: $(echo $1 | jq -R .),
uri: $(echo $2 | jq -R .),
branch: \"master\",
file: \"some-file\"
}
Expand All @@ -77,11 +96,11 @@ check_uri() {
check_uri_with_initial() {
jq -n "{
source: {
driver: \"git\",
uri: $(echo $1 | jq -R .),
driver: $(echo $1 | jq -R .),
uri: $(echo $2 | jq -R .),
branch: \"master\",
file: \"some-file\",
initial_version: $(echo $2 | jq -R .)
initial_version: $(echo $3 | jq -R .)
}
}" | ${resource_dir}/check | tee /dev/stderr
}
Expand All @@ -90,11 +109,11 @@ check_uri_with_initial() {
check_uri_with_key() {
jq -n "{
source: {
driver: \"git\",
uri: $(echo $1 | jq -R .),
driver: $(echo $1 | jq -R .),
uri: $(echo $2 | jq -R .),
branch: \"master\",
file: \"some-file\",
private_key: $(cat $2 | jq -s -R .)
private_key: $(cat $3 | jq -s -R .)
}
}" | ${resource_dir}/check | tee /dev/stderr
}
Expand All @@ -103,12 +122,12 @@ check_uri_with_key() {
check_uri_with_credentials() {
jq -n "{
source: {
driver: \"git\",
uri: $(echo $1 | jq -R .),
driver: $(echo $1 | jq -R .),
uri: $(echo $2 | jq -R .),
branch: \"master\",
file: \"some-file\",
username: $(echo $2 | jq -R .),
password: $(echo $3 | jq -R .)
username: $(echo $3 | jq -R .),
password: $(echo $4 | jq -R .)
}
}" | ${resource_dir}/check | tee /dev/stderr
}
Expand All @@ -117,58 +136,58 @@ check_uri_with_credentials() {
check_uri_from() {
jq -n "{
source: {
driver: \"git\",
uri: $(echo $1 | jq -R .),
driver: $(echo $1 | jq -R .),
uri: $(echo $2 | jq -R .),
branch: \"master\",
file: \"some-file\"
},
version: {
number: $(echo $2 | jq -R .)
number: $(echo $3 | jq -R .)
}
}" | ${resource_dir}/check | tee /dev/stderr
}

put_uri() {
jq -n "{
source: {
driver: \"git\",
uri: $(echo $1 | jq -R .),
driver: $(echo $1 | jq -R .),
uri: $(echo $2 | jq -R .),
branch: \"master\",
file: \"some-file\"
},
params: {
file: $(echo $3 | jq -R .)
file: $(echo $4 | jq -R .)
}
}" | ${resource_dir}/out "$2" | tee /dev/stderr
}" | ${resource_dir}/out "$3" | tee /dev/stderr
}

put_uri_with_bump() {
jq -n "{
source: {
driver: \"git\",
uri: $(echo $1 | jq -R .),
driver: $(echo $1 | jq -R .),
uri: $(echo $2 | jq -R .),
branch: \"master\",
file: \"some-file\"
},
params: {
bump: $(echo $3 | jq -R .),
pre: $(echo $4 | jq -R .)
bump: $(echo $4 | jq -R .),
pre: $(echo $5 | jq -R .)
}
}" | ${resource_dir}/out "$2" | tee /dev/stderr
}" | ${resource_dir}/out "$3" | tee /dev/stderr
}

put_uri_with_bump_and_initial() {
jq -n "{
source: {
driver: \"git\",
uri: $(echo $1 | jq -R .),
driver: $(echo $1 | jq -R .),
uri: $(echo $2 | jq -R .),
branch: \"master\",
file: \"some-file\",
initial_version: $(echo $3 | jq -R .)
initial_version: $(echo $4 | jq -R .)
},
params: {
bump: $(echo $4 | jq -R .),
pre: $(echo $5 | jq -R .)
bump: $(echo $5 | jq -R .),
pre: $(echo $6 | jq -R .)
}
}" | ${resource_dir}/out "$2" | tee /dev/stderr
}" | ${resource_dir}/out "$3" | tee /dev/stderr
}
Loading

0 comments on commit d7cde8d

Please sign in to comment.