Skip to content

Commit ef6fd72

Browse files
Matthew Ogilviegitster
authored andcommitted
cvsserver t9400: add basic 'cvs log' test
'cvs log' output is arguably deficient in a number of ways (see the comment added with the test), but add a test for the current output to detect for accidental regressions. Signed-off-by: Matthew Ogilvie <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent d25c58c commit ef6fd72

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

t/t9400-git-cvsserver-server.sh

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -504,6 +504,76 @@ test_expect_success 'cvs co -c (shows module database)' '
504504
! grep -v "^master[ ][ ]*master$" <out
505505
'
506506

507+
#------------
508+
# CVS LOG
509+
#------------
510+
511+
# Known issues with git-cvsserver current log output:
512+
# - Hard coded "lines: +2 -3" placeholder, instead of real numbers.
513+
# - CVS normally does not internally add a blank first line
514+
# nor a last line with nothing but a space to log messages.
515+
# - The latest cvs 1.12.x server sends +0000 timezone (with some hidden "MT"
516+
# tagging in the protocol), and if cvs 1.12.x client sees the MT tags,
517+
# it converts to local time zone. git-cvsserver doesn't do the +0000
518+
# or the MT tags...
519+
# - The latest 1.12.x releases add a "commitid:" field on to the end of the
520+
# "date:" line (after "lines:"). Maybe we could stick git's commit id
521+
# in it? Or does CVS expect a certain number of bits (too few for
522+
# a full sha1)?
523+
#
524+
# Given the above, expect the following test to break if git-cvsserver's
525+
# log output is improved. The test is just to ensure it doesn't
526+
# accidentally get worse.
527+
528+
sed -e 's/^x//' -e 's/SP$/ /' > "$WORKDIR/expect" <<EOF
529+
x
530+
xRCS file: $WORKDIR/gitcvs.git/master/merge,v
531+
xWorking file: merge
532+
xhead: 1.4
533+
xbranch:
534+
xlocks: strict
535+
xaccess list:
536+
xsymbolic names:
537+
xkeyword substitution: kv
538+
xtotal revisions: 4; selected revisions: 4
539+
xdescription:
540+
x----------------------------
541+
xrevision 1.4
542+
xdate: __DATE__; author: author; state: Exp; lines: +2 -3
543+
x
544+
xMerge test (no-op)
545+
xSP
546+
x----------------------------
547+
xrevision 1.3
548+
xdate: __DATE__; author: author; state: Exp; lines: +2 -3
549+
x
550+
xMerge test (conflict)
551+
xSP
552+
x----------------------------
553+
xrevision 1.2
554+
xdate: __DATE__; author: author; state: Exp; lines: +2 -3
555+
x
556+
xMerge test (merge)
557+
xSP
558+
x----------------------------
559+
xrevision 1.1
560+
xdate: __DATE__; author: author; state: Exp; lines: +2 -3
561+
x
562+
xMerge test (pre-merge)
563+
xSP
564+
x=============================================================================
565+
EOF
566+
expectStat="$?"
567+
568+
cd "$WORKDIR"
569+
test_expect_success 'cvs log' '
570+
cd cvswork &&
571+
test x"$expectStat" = x"0" &&
572+
GIT_CONFIG="$git_config" cvs log merge >../out &&
573+
sed -e "s%2[0-9][0-9][0-9]/[01][0-9]/[0-3][0-9] [0-2][0-9]:[0-5][0-9]:[0-5][0-9]%__DATE__%" ../out > ../actual &&
574+
test_cmp ../expect ../actual
575+
'
576+
507577
#------------
508578
# CVS ANNOTATE
509579
#------------

0 commit comments

Comments
 (0)