# $OpenBSD: Makefile,v 1.19 2008/02/07 16:16:57 tobias Exp $ # Regression tests by Niall O'Higgins and # Tobias Stoeckmann . # Based on OpenRCS regression framework. CVS?= opencvs -f MYCVSROOT?= ${.OBJDIR}/regress_cvs_root CLEANFILES= regress_cvs_root regress_cvs_wcopy regress_cvs_stderr \ regress_cvs_stdout # These must be done in order. LTESTS= cvs-initial \ cvs-import-mflag \ cvs-checkout-dflag \ cvs-checkout-rflag-HEAD \ cvs-checkout-kflag-k-rflag-HEAD \ cvs-checkout-rflag-inval_branch_rev \ cvs-checkout-rflag-too_high \ cvs-checkout \ cvs-checkout-pflag \ cvs-tag \ cvs-add \ cvs-add-dir \ cvs-add-subdir_file \ cvs-commit-Fflag \ cvs-checkout \ cvs-tag-branch \ cvs-checkout-rflag_branch \ cvs-diff-file \ cvs-commit-to_branch \ cvs-annotate \ cvs-annotate-rflag-inval_branch_rev \ cvs-annotate-rflag-inval_branch_rev-fflag \ cvs-annotate-rflag-unknown_symbol-fflag \ cvs-checkout-kflag-kv-rflag-1.1 \ cvs-update-Aflag \ cvs-status \ cvs-diff \ cvs-remove-fflag \ cvs-status-vflag \ cvs-log \ cvs-rlog \ cvs-rtag-one_more_branch \ cvs-export # Known to fail. # cvs-update-for_subdir .for t in ${LTESTS} REGRESS_TARGETS+=test-${t} .endfor # XXX - should not print anything test-cvs-add: @echo "initial content" > ${.OBJDIR}/regress_cvs_wcopy/seed/seed2.txt @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ ${CVS} -q add seed2.txt > /dev/null 2> /dev/null # eval 'test `${CVS} -Q add seed2.txt | wc -l` -eq 0' test-cvs-add-dir: @mkdir ${.OBJDIR}/regress_cvs_wcopy/seed/subdir @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ ${CVS} -q add subdir > /dev/null 2> /dev/null @test -d ${.OBJDIR}/regress_cvs_wcopy/seed/subdir/CVS && \ test -d ${.OBJDIR}/regress_cvs_root/seed/subdir test-cvs-add-subdir_file: @echo "initial content of seed3.txt" \ > ${.OBJDIR}/regress_cvs_wcopy/seed/subdir/seed3.txt @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ ${CVS} -q add subdir/seed3.txt > /dev/null 2> /dev/null # eval 'test `${CVS} -Q add seed2.txt | wc -l` -eq 0' test-cvs-annotate: @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ eval 'test `${CVS} -Q annotate seed1.txt 2>/dev/null | wc -l` -eq 3' test-cvs-annotate-rflag-inval_branch_rev: @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ eval 'test `${CVS} -Q annotate -r 1.2.3.4 seed1.txt 2>/dev/null \ | wc -l` -eq 0' test-cvs-annotate-rflag-inval_branch_rev-fflag: @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ eval 'test `${CVS} -Q annotate -f -r 1.2.3.4 seed1.txt 2>/dev/null \ | wc -l` -eq 3' test-cvs-annotate-rflag-unknown_symbol-fflag: @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ eval 'test `${CVS} -Q annotate -f -r UNKNOWN seed1.txt 2>/dev/null \ | wc -l` -eq 0' test-cvs-checkout: @rm -rf ${.OBJDIR}/regress_cvs_wcopy @mkdir ${.OBJDIR}/regress_cvs_wcopy @cd ${.OBJDIR}/regress_cvs_wcopy; \ ${CVS} -Q -d ${MYCVSROOT} co seed > /dev/null @test -f ${.OBJDIR}/regress_cvs_wcopy/seed/seed1.txt test-cvs-checkout-kflag-k-rflag-HEAD: @rm -rf ${.OBJDIR}/regress_cvs_wcopy @mkdir ${.OBJDIR}/regress_cvs_wcopy @cd ${.OBJDIR}/regress_cvs_wcopy; \ ${CVS} -Q -d ${MYCVSROOT} co -rHEAD -kkv seed > /dev/null @test -f ${.OBJDIR}/regress_cvs_wcopy/seed/seed1.txt; @eval 'test `grep -c -e THEAD -e -kkv \ ${.OBJDIR}/regress_cvs_wcopy/seed/CVS/Entries | wc -l` -eq 1' @eval 'test `grep -c Id$ \ ${.OBJDIR}/regress_cvs_wcopy/seed/seed1.txt | wc -l` -eq 1' test-cvs-checkout-kflag-kv-rflag-1.1: @rm -rf ${.OBJDIR}/regress_cvs_wcopy @mkdir ${.OBJDIR}/regress_cvs_wcopy @cd ${.OBJDIR}/regress_cvs_wcopy; \ ${CVS} -Q -d ${MYCVSROOT} co -r 1.1 -kkv seed > /dev/null @test -f ${.OBJDIR}/regress_cvs_wcopy/seed/seed1.txt; @eval 'test `grep -c -e T1.1 -e -kkv \ ${.OBJDIR}/regress_cvs_wcopy/seed/CVS/Entries | wc -l` -eq 1' test-cvs-checkout-pflag: @eval 'test `${CVS} -Q -d ${MYCVSROOT} checkout \ -p seed/seed1.txt 2>/dev/null | wc -l` -eq 2' test-cvs-checkout-rflag_branch: @rm -rf ${.OBJDIR}/regress_cvs_wcopy @mkdir ${.OBJDIR}/regress_cvs_wcopy @cd ${.OBJDIR}/regress_cvs_wcopy; \ ${CVS} -Q -d ${MYCVSROOT} co -r FIRST_BRANCH seed \ > /dev/null @test -f ${.OBJDIR}/regress_cvs_wcopy/seed/seed1.txt @eval 'test `grep -c TFIRST_BRANCH \ ${.OBJDIR}/regress_cvs_wcopy/seed/CVS/Entries` -eq 2' test-cvs-checkout-rflag-inval_branch_rev: @rm -rf ${.OBJDIR}/regress_cvs_wcopy @mkdir ${.OBJDIR}/regress_cvs_wcopy @cd ${.OBJDIR}/regress_cvs_wcopy; \ ${CVS} -Q -d ${MYCVSROOT} co -r1.2.3.4 seed @eval 'test ! -f ${.OBJDIR}/regress_cvs_wcopy/seed/seed1.txt' test-cvs-checkout-rflag-too_high: @rm -rf ${.OBJDIR}/regress_cvs_wcopy @mkdir ${.OBJDIR}/regress_cvs_wcopy @cd ${.OBJDIR}/regress_cvs_wcopy; \ ${CVS} -Q -d ${MYCVSROOT} co -r1.5 seed @eval 'test ! -f ${.OBJDIR}/regress_cvs_wcopy/seed/seed1.txt' test-cvs-checkout-rflag-HEAD: @rm -rf ${.OBJDIR}/regress_cvs_wcopy @mkdir ${.OBJDIR}/regress_cvs_wcopy @cd ${.OBJDIR}/regress_cvs_wcopy; \ ${CVS} -Q -d ${MYCVSROOT} co -rHEAD seed > /dev/null @test -f ${.OBJDIR}/regress_cvs_wcopy/seed/seed1.txt; @eval 'test `grep -c THEAD \ ${.OBJDIR}/regress_cvs_wcopy/seed/CVS/Entries | wc -l` -eq 1' test-cvs-checkout-rflag-1.1: @rm -rf ${.OBJDIR}/regress_cvs_wcopy @mkdir ${.OBJDIR}/regress_cvs_wcopy; \ cd ${.OBJDIR}/regress_cvs_wcopy; \ ${CVS} -Q -d ${MYCVSROOT} co -r 1.1 seed > /dev/null @test -f ${.OBJDIR}/regress_cvs_wcopy/seed/seed1.txt && \ test -f ${.OBJDIR}/regress_cvs_wcopy/seed/seed2.txt test-cvs-checkout-dflag: @rm -rf ${.OBJDIR}/regress_cvs_wcopy @mkdir ${.OBJDIR}/regress_cvs_wcopy; \ cd ${.OBJDIR}/regress_cvs_wcopy; \ ${CVS} -Q -d ${MYCVSROOT} co -d seed2 seed > /dev/null @test -d ${.OBJDIR}/regress_cvs_wcopy/seed2/CVS test-cvs-checkout-subdir: @echo "test-cvs-checkout-subdir" @rm -rf ${.OBJDIR}/regress_cvs_wcopy @mkdir ${.OBJDIR}/regress_cvs_wcopy; \ cd ${.OBJDIR}/regress_cvs_wcopy; \ ${CVS} -Q -d ${MYCVSROOT} co seed/subdir > /dev/null @test -f ${.OBJDIR}/regress_cvs_wcopy/seed/subdir/seed3.txt && \ test ! -f ${.OBJDIR}/regress_cvs_wcopy/seed/seed2.txt test-cvs-commit-Fflag: @sleep 1 @echo "second line" >> ${.OBJDIR}/regress_cvs_wcopy/seed/seed1.txt @echo "commit seed repo" > ${.OBJDIR}/regress_cvs_wcopy/logmsg.txt @cd ${.OBJDIR}/regress_cvs_wcopy/seed; ${CVS} commit \ -F ${.OBJDIR}/regress_cvs_wcopy/logmsg.txt > /dev/null @grep "^@commit seed repo" \ ${.OBJDIR}/regress_cvs_root/seed/seed1.txt,v > /dev/null @eval 'test `cat ${.OBJDIR}/regress_cvs_root/seed/seed1.txt,v | wc -l` \ -eq 60' @test -f ${.OBJDIR}/regress_cvs_root/seed/seed2.txt,v test-cvs-commit-to_branch: @sleep 1 @cd ${.OBJDIR}/regress_cvs_wcopy/seed; ${CVS} commit \ -m'first branch seed' > /dev/null @eval 'test `cat ${.OBJDIR}/regress_cvs_root/seed/seed1.txt,v | wc -l` \ -eq 80' @eval 'test `grep -c TFIRST_BRANCH \ ${.OBJDIR}/regress_cvs_wcopy/seed/CVS/Entries` -eq 2' test-cvs-diff: @sleep 1 @echo "modified" > ${.OBJDIR}/regress_cvs_wcopy/seed/seed2.txt @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ eval 'test `${CVS} -Q diff | wc -l` -eq 9' test-cvs-diff-file: @sleep 1 @echo "first branch line" >> ${.OBJDIR}/regress_cvs_wcopy/seed/seed1.txt @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ eval 'test `${CVS} -Q diff seed1.txt | wc -l` -eq 7' test-cvs-export: @rm -rf ${.OBJDIR}/regress_cvs_wcopy @mkdir ${.OBJDIR}/regress_cvs_wcopy; \ cd ${.OBJDIR}/regress_cvs_wcopy; \ ${CVS} -Q -d ${MYCVSROOT} export -r HEAD seed > /dev/null @test -f ${.OBJDIR}/regress_cvs_wcopy/seed/seed1.txt test-cvs-import-mflag: @cd ${.CURDIR}/import_seed; \ ${CVS} -Q -d ${MYCVSROOT} import \ -m'import seed repo' seed regress regress_import > /dev/null @test -f ${.OBJDIR}/regress_cvs_root/seed/seed1.txt,v test-cvs-initial: clean @${CVS} -d ${MYCVSROOT} init @test -d ${.OBJDIR}/regress_cvs_root/CVSROOT test-cvs-log: @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ eval 'test `${CVS} -Q log | wc -l` -eq 68' test-cvs-remove-fflag: @cd ${.OBJDIR}/regress_cvs_wcopy/seed; ${CVS} -Q remove -f seed1.txt test-cvs-rlog: @eval 'test `${CVS} -Q -d ${MYCVSROOT} rlog seed | wc -l` -eq 65' test-cvs-status: @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ eval 'test `${CVS} -Q status | wc -l` -eq 18' test-cvs-status-vflag: @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ eval 'test `${CVS} -Q status -v | wc -l` -eq 30' test-cvs-tag: @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ ${CVS} -Q tag FIRST_TAG > /dev/null @grep FIRST_TAG ${.OBJDIR}/regress_cvs_root/seed/seed1.txt,v \ > /dev/null test-cvs-tag-branch: @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ ${CVS} -Q tag -b FIRST_BRANCH > /dev/null @grep FIRST_BRANCH ${.OBJDIR}/regress_cvs_root/seed/seed1.txt,v \ > /dev/null test-cvs-rtag-one_more_branch: @${CVS} -d ${MYCVSROOT} -Q rtag -b SECOND_BRANCH seed > /dev/null @grep SECOND_BRANCH ${.OBJDIR}/regress_cvs_root/seed/seed2.txt,v \ | grep 4 > /dev/null # XXX - Output is not GNU conform test-cvs-update-Aflag: @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ ${CVS} -Q update -A > /dev/null # eval 'test `${CVS} -q update -A | wc -l` -eq 1' @eval 'test `grep -c -e T1 -e kkv \ ${.OBJDIR}/regress_cvs_wcopy/seed/CVS/Entries` -eq 0' test-cvs-update-for_subdir: @echo "test-cvs-update-for_subdir" @cd ${.OBJDIR}/regress_cvs_wcopy/seed; \ ${CVS} -Q update > /dev/null @test -f ${.OBJDIR}/regress_cvs_wcopy/seed/subdir/seed3.txt && \ test ! -f ${.OBJDIR}/regress_cvs_wcopy/seed/seed1.txt && \ test ! -f ${.OBJDIR}/regress_cvs_wcopy/seed/seed2.txt clean: @rm -rf ${CLEANFILES} .include