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