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