Meta/Make, Dothem: use prove test when available

Junio C Hamano committed Feb 23, 2012 at 14:13 UTC 7e62b4a70b5d9b9c0234fabde81b869274dfa0ca
2 files changed +48 -29
Dothem
+42 -29
@@ -48,12 +48,6 @@ do
48 done
49
50 sh -c 'asciidoc --version >/dev/null 2>&1' || nodoc=y
51 -if sh -c 'prove --version >/dev/null 2>&1' &&
52 - sh -c 'prove --exec : >/dev/null 2>&1'
53 -then
54 - DEFAULT_TEST_TARGET=prove GIT_PROVE_OPTS="$jobs"
55 - export DEFAULT_TEST_TARGET GIT_PROVE_OPTS
56 -fi
51 GIT_TEST_OPTS="$TRASH${GIT_TEST_OPTS+" $GIT_TEST_OPTS"}"
52 export GIT_TEST_OPTS
53
@@ -74,6 +68,35 @@ fi
68 test -n "$branches" || branches='next master maint jch pu'
69 test -n "$jobs" || jobs=-j2
70
71 +find_installed () {
72 + branch=$1
73 + test -f "$inst_prefix/git-$branch/bin/git" &&
74 + installed=$($inst_prefix/git-$branch/bin/git version) &&
75 + if version=$(expr "$installed" : '.*\.g\([0-9a-f]*\)$')
76 + then
77 + :
78 + elif version=v$(expr "$installed" : \
79 + 'git version \(.*\)\.rc[0-9]*$')
80 + then
81 + version="$version"-$(expr "$installed" : \
82 + 'git version .*\.\(rc[0-9]*\)$')
83 + else
84 + version=v$(expr "$installed" : 'git version \(.*\)')
85 + fi &&
86 + git rev-parse --verify "$version^0" 2>/dev/null
87 +}
88 +
89 +installed_source_trees=" "
90 +for branch in $branches
91 +do
92 + if v=$(find_installed $branch) &&
93 + test -n "$v" &&
94 + v=$(git rev-parse --verify "$v^{tree}" 2>/dev/null)
95 + then
96 + installed_source_trees="$installed_source_trees$v "
97 + fi
98 +done
99 +
100 for branch in $branches
101 do
102 echo "** $branch **"
@@ -99,21 +122,8 @@ do
122 private=$(git rev-parse -q --verify private-$branch 2>/dev/null)
123 case $? in 0|1) ;; *) exit $? ;; esac
124
102 - if test -f "$inst_prefix/git-$branch/bin/git" &&
103 - installed=$($inst_prefix/git-$branch/bin/git version) &&
104 - if version=$(expr "$installed" : '.*\.g\([0-9a-f]*\)$')
105 - then
106 - :
107 - elif version=v$(expr "$installed" : \
108 - 'git version \(.*\)\.rc[0-9]*$')
109 - then
110 - version="$version"-$(expr "$installed" : \
111 - 'git version .*\.\(rc[0-9]*\)$')
112 - else
113 - version=v$(expr "$installed" : 'git version \(.*\)')
114 - fi &&
115 - version=$(git rev-parse --verify "$version^0" 2>/dev/null) &&
116 - test "z$version" = "z$revision"
125 + version=$(find_installed $branch)
126 + if test "z$version" = "z$revision"
127 then
128 echo "* up-to-date version \"$installed\" is already installed from $branch"
129 test -n "$force" || continue
@@ -121,16 +131,18 @@ do
131
132 (
133 skip_test=$notest
124 - case ",$version,$revision," in
125 - *,,*)
126 - ;;
127 - *)
128 - if git diff --quiet --exit-code $version $revision
129 - then
130 - skip_test=1
131 - fi
134 + vtree=$(git rev-parse --verify "$version^{tree}")
135 + rtree=$(git rev-parse --verify "$revision^{tree}")
136 + case "$installed_source_trees" in
137 + *" $rtree "*)
138 + skip_test=1
139 ;;
140 esac
141 + if test "z$vtree" = "z$rtree"
142 + then
143 + skip_test=1
144 + nodoc=1
145 + fi
146 case "$branch, $branches " in
147 jch,*' next '*)
148 if git diff --quiet --exit-code jch next
@@ -139,6 +151,7 @@ do
151 fi
152 ;;
153 esac
154 + test $(git rev-parse --verify "$version^{tree}" 2>/dev/null)
155 case "$skip_test" in
156 ?*) dotest= ;;
157 '') dotest=test ;;
Make
+6
@@ -135,6 +135,12 @@ if test -z "$tests" && test -n "$skip"
135 then
136 : GIT_SKIP_TESTS="${GIT_SKIP_TESTS:-$skip}"
137 fi
138 +if sh -c 'prove --version >/dev/null 2>&1' &&
139 + sh -c 'prove --exec : >/dev/null 2>&1'
140 +then
141 + DEFAULT_TEST_TARGET=prove GIT_PROVE_OPTS="$jobs"
142 + export DEFAULT_TEST_TARGET GIT_PROVE_OPTS
143 +fi
144
145 LC_ALL=$LANG
146 export LANG LC_ALL