diff --git a/tests/evaluation-tests.pl b/tests/evaluation-tests.pl index 71673f79..68bf8e40 100644 --- a/tests/evaluation-tests.pl +++ b/tests/evaluation-tests.pl @@ -7,7 +7,7 @@ use Setup; my $db = Hydra::Model::DB->new; -use Test::Simple tests => 72; +use Test::Simple tests => 76; hydra_setup($db); @@ -75,6 +75,13 @@ my @scminputs = ( uri => "$jobsBaseUri/git-repo", update => getcwd . "/jobs/git-update.sh" }, + { + name => "git-rev", + nixexpr => "git-rev-input.nix", + type => "git", + uri => "$jobsBaseUri/git-repo 7f60df502b96fd54bbfa64dd94b56d936a407701", + update => getcwd . "/jobs/git-rev-update.sh" + }, { name => "deepgit", nixexpr => "deepgit-input.nix", diff --git a/tests/jobs/git-rev-input.nix b/tests/jobs/git-rev-input.nix new file mode 100644 index 00000000..4fe49118 --- /dev/null +++ b/tests/jobs/git-rev-input.nix @@ -0,0 +1,10 @@ +with import ./config.nix; +{ src }: +{ + copy = + mkDerivation { + name = "git-rev-input"; + builder = ./scm-builder.sh; + inherit src; + }; +} diff --git a/tests/jobs/git-rev-update.sh b/tests/jobs/git-rev-update.sh new file mode 100755 index 00000000..d48268f4 --- /dev/null +++ b/tests/jobs/git-rev-update.sh @@ -0,0 +1,30 @@ +#! /bin/sh +set -e + +repo=git-repo +export HOME=$(pwd) +STATE_FILE=$(pwd)/.git-rev-state +if test -e $STATE_FILE; then + state=1 + rm $STATE_FILE +else + state=0 + touch $STATE_FILE +fi + +echo "STATE: $state" +case $state in + (0) echo "::Create repo. -- continue -- updated::" + git init $repo + cd $repo + git config --global user.email "you@example.com" + git config --global user.name "Your Name" + + touch foo + git add foo + GIT_AUTHOR_DATE="1970-01-01T00:00:00 +0000" GIT_COMMITTER_DATE="1970-01-01T00:00:00 +0000" git commit -m "Add foo" + ;; + (*) echo "::End. -- stop -- nothing::" + rm -rf $repo + ;; +esac