diff options
author | Ray Lai <ray@cvs.openbsd.org> | 2006-03-11 06:22:48 +0000 |
---|---|---|
committer | Ray Lai <ray@cvs.openbsd.org> | 2006-03-11 06:22:48 +0000 |
commit | d2e9b2643feb2b75787bb8706c82ead9216efc21 (patch) | |
tree | c67f956d6f8614dd002a1b4ac7cb37a6b140e43e /regress/usr.bin/rcs/Makefile | |
parent | 7e83753c24bbcb7ae9e8840a7bcd7baf70364693 (diff) |
RCS regression tests.
ok joris, niallo, otto, and xsa
Diffstat (limited to 'regress/usr.bin/rcs/Makefile')
-rw-r--r-- | regress/usr.bin/rcs/Makefile | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/regress/usr.bin/rcs/Makefile b/regress/usr.bin/rcs/Makefile new file mode 100644 index 00000000000..027388729ea --- /dev/null +++ b/regress/usr.bin/rcs/Makefile @@ -0,0 +1,190 @@ +# $OpenBSD: Makefile,v 1.1 2006/03/11 06:22:47 ray Exp $ + +# Regression tests by Niall O'Higgins <niallo@openbsd.org>. +# ksh -> Makefile by Ray Lai <ray@cyth.net>. + +CI?= ci +CO?= co +RCS?= rcs +RCSDIFF?= rcsdiff +RCSMERGE?= rcsmerge + +CLEANFILES= blah.c blah.c,v test test,v + +# XXX - These may need to be done in order. (At least start with +# test-ci-initial.) +REGRESS_TARGETS= test-ci-initial test-ci-mflag test-ci-lflag +REGRESS_TARGETS+=test-ci-rflag test-co-lflag test-ci-rev test-co-perm +REGRESS_TARGETS+=test-co-perm2 test-ci-perm test-ci-perm2 +REGRESS_TARGETS+=test-ci-dinvalid test-ci-dold test-ci-wflag +REGRESS_TARGETS+=test-rcsdiff-uflag +REGRESS_TARGETS+=test-rcsdiff-rflag test-rcs-mflag test-rcs-mflag2 +REGRESS_TARGETS+=test-co-RCSINIT test-ci-nflag test-ci-Nflag +REGRESS_TARGETS+=test-ci-sflag test-co-lflag2 test-rcsdiff +#REGRESS_TARGETS+=test-rcsmerge +REGRESS_TARGETS+=test-ci-dflag + +test-ci-initial: clean + @echo 'this is a test file' > test + @echo "a test file" | ${CI} -q -l test + @grep -q 'this is a test file' test,v + +# Testing 'ci test' with non-interactive log message +test-ci-mflag: + @echo 'another revision' >> test + @${CI} -q -m'a second revision' test + @test ! -e test + @grep -q 'another revision' test,v + +# Testing 'co -l test' +test-ci-lflag: + @${CO} -q -l test + @test -e test + +# Testing 'ci -r1.30 test' with non-interactive log message +test-ci-rflag: + @echo "new stuff" >> test + @${CI} -q -r1.30 -m'bumped rev' test + @test ! -e test + +# Testing 'co -l test' +test-co-lflag: + @${CO} -q -l test + @test -e test + +# Testing 'ci test' (should be rev 1.31) with non-interactive log message +test-ci-rev: + @echo "a third revision" >> test + @${CI} -q -m'this should be rev 1.31' test + @grep -q '1.31' test,v + +# Testing 'co -u test' - ensuring permissions are 0444 +test-co-perm: + @${CO} -q -u test + @eval 'test `stat -f%p test` = 100444' + +# Testing 'co -l test' - ensuring permissions are 0644 +test-co-perm2: + @rm -rf test + @${CO} -q -l test + @eval 'test `stat -f%p test` = 100644' + +# Testing 'ci -u' - ensuring permissions are 0444 +test-ci-perm: + @echo "a line for ci -u" >> test + @${CI} -q -m'message for ci -u' -u test + @eval 'test `stat -f%p test` = 100444' + +# Testing 'ci -l' - ensuring permissions are 0644 +test-ci-perm2: + @rm -rf test + @${CO} -q -l test + @echo "a line for ci -l" >> test + @${CI} -q -m'message for ci -l' -l test + @eval 'test `stat -f%p test` = 100644' + +# Testing ci with an invalid date +test-ci-dinvalid: + @echo 'some text for invalid date text' >> test + @if @${CI} -q -d'an invalid date' -m'invalid date' -l test 2>/dev/null; then false; fi + @if grep 'some text for invalid date text' test,v; then false; fi + +# Testing ci with a date older than previous revision +test-ci-dold: + @echo 'some text for old date test' >> test + @if ${CI} -q -d'1990-01-12 04:00:00+00' -m'old dated revision' -l test 2>/dev/null; then false; fi + @if grep 'some text for old date test' test,v; then false; fi + +# Testing ci -wtestuser +test-ci-wflag: + @rm -rf test + @${CO} -q -l test + @echo "blah blah" >> test + @echo "output for ci -w" >> test + @${CI} -q -wtestuser -mcomment -l test + @grep -q 'author testuser' test,v + +# Testing 'rcsdiff -u test' after adding another line +test-rcsdiff-uflag: + @echo "a line for rcsdiff test" >> test + @${RCSDIFF} -q -u test | tail -n 5 | \ + diff -u ${.CURDIR}/rcsdiff-uflag.out - + +# Testing 'rcsdiff -u -r1.2 test' +test-rcsdiff-rflag: + @${RCSDIFF} -q -u -r1.2 test | tail -n +3 | \ + diff -u ${.CURDIR}/rcsdiff-rflag.out - + +# Testing 'rcs -m1.2:logmessage' +test-rcs-mflag: + @${RCS} -q -m1.2:logmessage test + @grep -q 'logmessage' test,v + +# Testing 'rcs -m'1.2:a new log message'' +test-rcs-mflag2: + @${RCS} -q -m1.1:'a new log message, one which is quite long and set by rcsprog' test + @grep -q 'a new log message, one which is quite long and set by rcsprog' test,v + +# Testing RCSINIT environment variable +test-co-RCSINIT: + @rm -rf test + @RCSINIT=-l ${CO} -q test + @eval 'test `stat -f%p test` = 100644' + +# Testing check-in with symbol +test-ci-nflag: + @echo "something to check in with a symbol" >> test + @${CI} -q -n'symbolname' -m'test symbols' -l test + @grep -q 'symbolname' test,v + +# Testing check-in, forcing symbol +test-ci-Nflag: + @echo "something to check in with a forced symbol" >> test + @${CI} -q -N'symbolname' -m'test force symbol' -l test + @grep -q 'test force symbol' test,v + +# Trying some jiggerypokery with state +test-ci-sflag: + @echo "blahblah" >> test + @if ${CI} -q -l -s'SPACE S' -m"state with a space" test; then false; fi + @if grep -q 'SPACE S' test,v; then false; fi + +# Trying to check it out +test-co-lflag2: + @rm -rf test + @${CO} -q -l test + @test -e test + +test-rcsmerge: + @cp -f ${.CURDIR}/rev1 blah.c + @echo "descr" | ${CI} -q -l -m"first rev" blah.c + @cp -f ${.CURDIR}/rev2 blah.c + @${CI} -q -l -m"second rev" blah.c + @cp -f ${.CURDIR}/rev3 blah.c + @${CI} -q -l -m"third rev" blah.c + + @${RCSMERGE} -q -r1.1 -r1.3 -p blah.c | \ + sed 's/\($$Id: Makefile,v 1.1 2006/03/11 06:22:47 ray Exp $$]*/\1/' | \ + diff -u ${.CURDIR}/rcsmerge.out - + +test-rcsdiff: + @rm -rf blah.c,v + + @cp -f ${.CURDIR}/rev1 blah.c + @echo "descr" | ${CI} -q -l -m"first rev" blah.c + @cp -f ${.CURDIR}/rev2 blah.c + @${CI} -q -l -m"second rev" blah.c + @cp -f ${.CURDIR}/rev3 blah.c + @${CI} -q -l -m"third rev" blah.c + + @${RCSDIFF} -q -r1.1 -r1.3 -u blah.c | tail -n +3 | \ + sed 's/\($$Id: Makefile,v 1.1 2006/03/11 06:22:47 ray Exp $$]*/\1/' | \ + diff -u ${.CURDIR}/rcsdiff.out - + +# Testing 'ci -d'2037-01-12 04:00:00+00' -l test +test-ci-dflag: + @echo "some text for date test" >> test + @${CI} -q -d'2037-01-12 04:00:00+00' -m'dated revision' -l test + @grep -q 'dated revision' test,v + +.include <bsd.regress.mk> |