1# $OpenBSD: Makefile,v 1.25 2008/02/15 23:26:58 xsa Exp $ 2 3# Regression tests by Niall O'Higgins <niallo@openbsd.org> and 4# Tobias Stoeckmann <tobias@openbsd.org>. 5# Based on OpenRCS regression framework. 6 7CVS?= opencvs -f 8 9REGRESS_ROOT= ${.OBJDIR}/regress_cvs_root 10REGRESS_WCOPY= ${.OBJDIR}/regress_cvs_wcopy 11REGRESS_SEED= ${REGRESS_WCOPY}/seed 12 13.if defined(REMOTE) 14MYCVSROOT?= localhost:${REGRESS_ROOT} 15.else 16MYCVSROOT?= ${REGRESS_ROOT} 17.endif 18 19CLEANFILES= regress_cvs_root regress_cvs_wcopy regress_cvs_stderr \ 20 regress_cvs_stdout 21 22 23# These must be done in order. 24LTESTS= cvs-initial \ 25 cvs-import-mflag \ 26 cvs-checkout-dflag \ 27 cvs-checkout-rflag-HEAD \ 28 cvs-checkout-kflag-k-rflag-HEAD \ 29 cvs-checkout-rflag-inval_branch_rev \ 30 cvs-checkout-rflag-too_high \ 31 cvs-checkout \ 32 cvs-checkout-pflag \ 33 cvs-tag \ 34 cvs-add \ 35 cvs-add-dir \ 36 cvs-add-subdir_file \ 37 cvs-commit-Fflag \ 38 cvs-checkout \ 39 cvs-tag-branch \ 40 cvs-checkout-rflag_branch \ 41 cvs-diff-file \ 42 cvs-commit-to_branch \ 43 cvs-annotate \ 44 cvs-annotate-rflag-inval_branch_rev \ 45 cvs-annotate-rflag-inval_branch_rev-fflag \ 46 cvs-annotate-rflag-unknown_symbol-fflag \ 47 cvs-checkout-kflag-kv-rflag-1.1 \ 48 cvs-update-Aflag-kflag-kv \ 49 cvs-update-Aflag-kflag-k-rflag-1.1 \ 50 cvs-update-Aflag-rflag-1.1 \ 51 cvs-update-Aflag \ 52 cvs-status \ 53 cvs-diff \ 54 cvs-remove-fflag \ 55 cvs-status-vflag \ 56 cvs-log \ 57 cvs-rlog \ 58 cvs-rtag-one_more_branch \ 59 cvs-export 60# Known to fail. 61# cvs-update-for_subdir 62# cvs-release-dflag 63 64.for t in ${LTESTS} 65REGRESS_TARGETS+=test-${t} 66.endfor 67 68# XXX - should not print anything 69test-cvs-add: 70 @echo "initial content" > ${REGRESS_SEED}/seed2.txt 71 @cd ${REGRESS_SEED}; \ 72 ${CVS} -q add seed2.txt > /dev/null 2> /dev/null 73# eval 'test `${CVS} -Q add seed2.txt | wc -l` -eq 0' 74 75test-cvs-add-dir: 76 @mkdir ${REGRESS_SEED}/subdir 77 @cd ${REGRESS_SEED}; ${CVS} -q add subdir > /dev/null 2> /dev/null 78 @test -d ${REGRESS_SEED}/subdir/CVS && \ 79 test -d ${REGRESS_ROOT}/seed/subdir 80 81test-cvs-add-subdir_file: 82 @echo "initial content of seed3.txt" > ${REGRESS_SEED}/subdir/seed3.txt 83 @cd ${REGRESS_SEED}; \ 84 ${CVS} -q add subdir/seed3.txt > /dev/null 2> /dev/null 85# @eval 'test `${CVS} -Q add seed2.txt | wc -l` -eq 0' 86 87test-cvs-annotate: 88 @cd ${REGRESS_SEED}; \ 89 eval 'test `${CVS} -Q annotate seed1.txt 2>/dev/null | wc -l` -eq 3' 90 91test-cvs-annotate-rflag-inval_branch_rev: 92 @cd ${REGRESS_SEED}; \ 93 eval 'test `${CVS} -Q annotate -r 1.2.3.4 seed1.txt 2>/dev/null \ 94 | wc -l` -eq 0' 95 96test-cvs-annotate-rflag-inval_branch_rev-fflag: 97 @cd ${REGRESS_SEED}; \ 98 eval 'test `${CVS} -Q annotate -f -r 1.2.3.4 seed1.txt 2>/dev/null \ 99 | wc -l` -eq 3' 100 101test-cvs-annotate-rflag-unknown_symbol-fflag: 102 @cd ${REGRESS_SEED}; \ 103 eval 'test `${CVS} -Q annotate -f -r UNKNOWN seed1.txt 2>/dev/null \ 104 | wc -l` -eq 0' 105 106test-cvs-checkout: 107 @rm -rf ${REGRESS_WCOPY} 108 @mkdir ${REGRESS_WCOPY} 109 @cd ${REGRESS_WCOPY}; ${CVS} -Q -d ${MYCVSROOT} co seed > /dev/null 110 @test -f ${REGRESS_SEED}/seed1.txt 111 112test-cvs-checkout-kflag-k-rflag-HEAD: 113 @rm -rf ${REGRESS_WCOPY} 114 @mkdir ${REGRESS_WCOPY} 115 @cd ${REGRESS_WCOPY}; \ 116 ${CVS} -Q -d ${MYCVSROOT} co -rHEAD -kkv seed > /dev/null 117 @test -f ${REGRESS_SEED}/seed1.txt 118 @eval 'test `grep -c -e THEAD -e -kkv \ 119 ${REGRESS_SEED}/CVS/Entries | wc -l` -eq 1' 120 @eval 'test `grep -c Id$ \ 121 ${REGRESS_SEED}/seed1.txt | wc -l` -eq 1' 122 123test-cvs-checkout-kflag-kv-rflag-1.1: 124 @rm -rf ${REGRESS_WCOPY} 125 @mkdir ${REGRESS_WCOPY} 126 @cd ${REGRESS_WCOPY}; \ 127 ${CVS} -Q -d ${MYCVSROOT} co -r 1.1 -kkv seed > /dev/null 128 @test -f ${REGRESS_SEED}/seed1.txt; 129 @eval 'test `grep -c -e T1.1 -e -kkv \ 130 ${REGRESS_SEED}/CVS/Entries | wc -l` -eq 1' 131 132test-cvs-checkout-pflag: 133 @eval 'test `${CVS} -Q -d ${MYCVSROOT} checkout \ 134 -p seed/seed1.txt 2>/dev/null | wc -l` -eq 2' 135 136test-cvs-checkout-rflag_branch: 137 @rm -rf ${REGRESS_WCOPY} 138 @mkdir ${REGRESS_WCOPY} 139 @cd ${REGRESS_WCOPY}; \ 140 ${CVS} -Q -d ${MYCVSROOT} co -r FIRST_BRANCH seed > /dev/null 141 @test -f ${REGRESS_SEED}/seed1.txt 142 @eval 'test `grep -c TFIRST_BRANCH ${REGRESS_SEED}/CVS/Entries` -eq 2' 143 144test-cvs-checkout-rflag-inval_branch_rev: 145 @rm -rf ${REGRESS_WCOPY} 146 @mkdir ${REGRESS_WCOPY} 147 @cd ${REGRESS_WCOPY}; ${CVS} -Q -d ${MYCVSROOT} co -r1.2.3.4 seed 148 @eval 'test ! -f ${REGRESS_SEED}/seed1.txt' 149 150test-cvs-checkout-rflag-too_high: 151 @rm -rf ${REGRESS_WCOPY} 152 @mkdir ${REGRESS_WCOPY} 153 @cd ${REGRESS_WCOPY}; ${CVS} -Q -d ${MYCVSROOT} co -r1.5 seed 154 @eval 'test ! -f ${REGRESS_SEED}/seed1.txt' 155 156test-cvs-checkout-rflag-HEAD: 157 @rm -rf ${REGRESS_WCOPY} 158 @mkdir ${REGRESS_WCOPY} 159 @cd ${REGRESS_WCOPY}; \ 160 ${CVS} -Q -d ${MYCVSROOT} co -rHEAD seed > /dev/null 161 @test -f ${REGRESS_SEED}/seed1.txt; 162 @eval 'test `grep -c THEAD ${REGRESS_SEED}/CVS/Entries | wc -l` -eq 1' 163 164test-cvs-checkout-rflag-1.1: 165 @rm -rf ${REGRESS_WCOPY} 166 @mkdir ${REGRESS_WCOPY} 167 @cd ${REGRESS_WCOPY}; \ 168 ${CVS} -Q -d ${MYCVSROOT} co -r 1.1 seed > /dev/null 169 @test -f ${REGRESS_SEED}/seed1.txt && test -f ${REGRESS_SEED}/seed2.txt 170 171test-cvs-checkout-dflag: 172 @rm -rf ${REGRESS_WCOPY} 173 @mkdir ${REGRESS_WCOPY} 174 @cd ${REGRESS_WCOPY}; \ 175 ${CVS} -Q -d ${MYCVSROOT} co -d seed2 seed > /dev/null 176 @test -d ${REGRESS_WCOPY}/seed2/CVS 177 178test-cvs-checkout-subdir: 179 @echo "test-cvs-checkout-subdir" 180 @rm -rf ${REGRESS_WCOPY} 181 @mkdir ${REGRESS_WCOPY} 182 @cd ${REGRESS_WCOPY}; \ 183 ${CVS} -Q -d ${MYCVSROOT} co seed/subdir > /dev/null 184 @test -f ${REGRESS_SEED}/subdir/seed3.txt && \ 185 test ! -f ${REGRESS_SEED}/seed2.txt 186 187test-cvs-commit-Fflag: 188 @sleep 1 189 @echo "second line" >> ${REGRESS_SEED}/seed1.txt 190 @echo "commit seed repo" > ${REGRESS_WCOPY}/logmsg.txt 191 @cd ${REGRESS_SEED}; ${CVS} commit \ 192 -F ${REGRESS_WCOPY}/logmsg.txt > /dev/null 193 @grep "^@commit seed repo" \ 194 ${REGRESS_ROOT}/seed/seed1.txt,v > /dev/null 195 @eval 'test `cat ${REGRESS_ROOT}/seed/seed1.txt,v | wc -l` -eq 60' 196 @test -f ${REGRESS_ROOT}/seed/seed2.txt,v 197 198test-cvs-commit-to_branch: 199 @sleep 1 200 @cd ${REGRESS_SEED}; ${CVS} commit -m'first branch seed' > /dev/null 201 @eval 'test `cat ${REGRESS_ROOT}/seed/seed1.txt,v | wc -l` -eq 80' 202 @eval 'test `grep -c TFIRST_BRANCH ${REGRESS_SEED}/CVS/Entries` -eq 2' 203 204test-cvs-diff: 205 @sleep 1 206 @echo "modified" > ${REGRESS_SEED}/seed2.txt 207 @cd ${REGRESS_SEED}; eval 'test `${CVS} -Q diff | wc -l` -eq 9' 208 209test-cvs-diff-file: 210 @sleep 1 211 @echo "first branch line" >> ${REGRESS_SEED}/seed1.txt 212 @cd ${REGRESS_SEED}; \ 213 eval 'test `${CVS} -Q diff seed1.txt | wc -l` -eq 7' 214 215test-cvs-export: 216 @rm -rf ${REGRESS_WCOPY} 217 @mkdir ${REGRESS_WCOPY} 218 @cd ${REGRESS_WCOPY}; \ 219 ${CVS} -Q -d ${MYCVSROOT} export -r HEAD seed > /dev/null 220 @test -f ${REGRESS_SEED}/seed1.txt 221 222test-cvs-import-mflag: 223 @cd ${.CURDIR}/import_seed; \ 224 ${CVS} -Q -d ${MYCVSROOT} import \ 225 -m'import seed repo' seed regress regress_import > /dev/null 226 @test -f ${REGRESS_ROOT}/seed/seed1.txt,v 227 228test-cvs-initial: clean 229 @${CVS} -d ${MYCVSROOT} init 230 @test -d ${REGRESS_ROOT}/CVSROOT 231 232test-cvs-log: 233 @cd ${REGRESS_SEED}; eval 'test `${CVS} -Q log | wc -l` -eq 68' 234 235test-cvs-release-dflag: test-cvs-checkout 236 @cd ${REGRESS_WCOPY}; ${CVS} -Q -d ${MYCVSROOT} release -d seed 237 @test ! -d ${.OBJDIR}/regress_cvs_wcopy/seed 238 @eval 'test `grep '^F' ${REGRESS_ROOT}/CVSROOT/history | wc -l` -eq 1' 239 240test-cvs-remove-fflag: 241 @cd ${REGRESS_SEED}; ${CVS} -Q remove -f seed1.txt 242 @test ! -f ${REGRESS_SEED}/seed1.txt 243 244test-cvs-rlog: 245 @eval 'test `${CVS} -Q -d ${MYCVSROOT} rlog seed | wc -l` -eq 65' 246 247test-cvs-status: 248 @cd ${REGRESS_SEED}; eval 'test `${CVS} -Q status | wc -l` -eq 18' 249 250test-cvs-status-vflag: 251 @cd ${REGRESS_SEED}; eval 'test `${CVS} -Q status -v | wc -l` -eq 30' 252 253test-cvs-tag: 254 @cd ${REGRESS_SEED}; ${CVS} -Q tag FIRST_TAG > /dev/null 255 @grep FIRST_TAG ${REGRESS_ROOT}/seed/seed1.txt,v > /dev/null 256 257test-cvs-tag-branch: 258 @cd ${REGRESS_SEED}; ${CVS} -Q tag -b FIRST_BRANCH > /dev/null 259 @grep FIRST_BRANCH ${REGRESS_ROOT}/seed/seed1.txt,v > /dev/null 260 261test-cvs-rtag-one_more_branch: 262 @${CVS} -d ${MYCVSROOT} -Q rtag -b SECOND_BRANCH seed > /dev/null 263 @grep SECOND_BRANCH ${REGRESS_ROOT}/seed/seed2.txt,v \ 264 | grep 4 > /dev/null 265 266test-cvs-update-Aflag: 267 @cd ${REGRESS_SEED}; ${CVS} -Q update -A > /dev/null 268 @eval 'test `grep -c -e T1 -e kkv ${REGRESS_SEED}/CVS/Entries` -eq 0' 269 270test-cvs-update-Aflag-kflag-kv: 271 @cd ${REGRESS_SEED}; ${CVS} -Q update -A -kv > /dev/null 272 @eval 'test `grep -c T1 ${REGRESS_SEED}/CVS/Entries` -eq 0' 273 @eval 'test `grep -c kv ${REGRESS_SEED}/CVS/Entries` -eq 2' 274 275test-cvs-update-Aflag-kflag-k-rflag-1.1: 276 @cd ${REGRESS_SEED}; ${CVS} -Q update -A -kk -r 1.1 > /dev/null 277 @eval 'test `grep -c T1 ${REGRESS_SEED}/CVS/Entries` -eq 2' 278 @eval 'test `grep -c kk ${REGRESS_SEED}/CVS/Entries` -eq 2' 279 280test-cvs-update-Aflag-rflag-1.1: 281 @cd ${REGRESS_SEED}; ${CVS} -Q update -A -r 1.1 > /dev/null 282 @eval 'test `grep -c T1 ${REGRESS_SEED}/CVS/Entries` -eq 2' 283 @eval 'test `grep -c kk ${REGRESS_SEED}/CVS/Entries` -eq 0' 284 285test-cvs-update-for_subdir: 286 @echo "test-cvs-update-for_subdir" 287 @cd ${REGRESS_SEED}; ${CVS} -Q update > /dev/null 288 @test -f ${REGRESS_SEED}/subdir/seed3.txt && \ 289 test ! -f ${REGRESS_SEED}/seed1.txt && \ 290 test ! -f ${REGRESS_SEED}/seed2.txt 291 292clean: 293 @rm -rf ${CLEANFILES} 294 295.include <bsd.regress.mk> 296