#!/bin/sh
#
# Copyright (c) 2007 Frank Lichtenheld
#

test_description='git-cvsserver access

tests read access to a git repository with the
cvs CLI client via git-cvsserver server'

GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME

. ./test-lib.sh

if ! test_have_prereq PERL; then
	skip_all='skipping git cvsserver tests, perl not available'
	test_done
fi
cvs >/dev/null 2>&1
if test $? -ne 1
then
    skip_all='skipping git-cvsserver tests, cvs not found'
    test_done
fi
perl -e 'use DBI; use DBD::SQLite' >/dev/null 2>&1 || {
    skip_all='skipping git-cvsserver tests, Perl SQLite interface unavailable'
    test_done
}

WORKDIR=$PWD
SERVERDIR=$PWD/gitcvs.git
git_config="$SERVERDIR/config"
CVSROOT=":fork:$SERVERDIR"
CVSWORK="$PWD/cvswork"
CVS_SERVER=git-cvsserver
export CVSROOT CVS_SERVER

if perl -e 'exit(1) if not defined crypt("", "cv")'
then
	PWDHASH='lac2ItudM3.KM'
else
	PWDHASH='$2b$10$t8fGvE/a9eLmfOLzsZme2uOa2QtoMYwIxq9wZA6aBKtF1Yb7FJIzi'
fi

rm -rf "$CVSWORK" "$SERVERDIR"
test_expect_success 'setup' '
  git config push.default matching &&
  echo >empty &&
  git add empty &&
  git commit -q -m "First Commit" &&
  mkdir secondroot &&
  ( cd secondroot &&
  git init &&
  touch secondrootfile &&
  git add secondrootfile &&
  git commit -m "second root") &&
  git fetch secondroot main &&
  git merge --allow-unrelated-histories FETCH_HEAD &&
  git clone -q --bare "$WORKDIR/.git" "$SERVERDIR" >/dev/null 2>&1 &&
  GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true &&
  GIT_DIR="$SERVERDIR" git config gitcvs.logfile "$SERVERDIR/gitcvs.log" &&
  GIT_DIR="$SERVERDIR" git config gitcvs.authdb "$SERVERDIR/auth.db" &&
  echo "cvsuser:$PWDHASH" >"$SERVERDIR/auth.db"
'

# note that cvs doesn't accept absolute pathnames
# as argument to co -d
test_expect_success 'basic checkout' '
	GIT_CONFIG="$git_config" cvs -Q co -d cvswork main &&
	test "$(echo $(grep -v ^D cvswork/CVS/Entries|cut -d/ -f2,3,5 | head -n 1))" = "empty/1.1/" &&
	test "$(echo $(grep -v ^D cvswork/CVS/Entries|cut -d/ -f2,3,5 | sed -ne \$p))" = "secondrootfile/1.1/"
'

#------------------------
# PSERVER AUTHENTICATION
#------------------------

cat >request-anonymous  <<EOF
BEGIN AUTH REQUEST
$SERVERDIR
anonymous

END AUTH REQUEST
EOF

cat >request-git  <<EOF
BEGIN AUTH REQUEST
$SERVERDIR
git

END AUTH REQUEST
EOF

cat >login-anonymous <<EOF
BEGIN VERIFICATION REQUEST
$SERVERDIR
anonymous

END VERIFICATION REQUEST
EOF

cat >login-git <<EOF
BEGIN VERIFICATION REQUEST
$SERVERDIR
git

END VERIFICATION REQUEST
EOF

cat >login-git-ok <<EOF
BEGIN VERIFICATION REQUEST
$SERVERDIR
cvsuser
Ah<Z:yZZ30 e
END VERIFICATION REQUEST
EOF

test_expect_success 'pserver authentication' '
	cat request-anonymous | git-cvsserver pserver >log 2>&1 &&
	sed -ne \$p log | grep "^I LOVE YOU\$"
'

test_expect_success 'pserver authentication failure (non-anonymous user)' '
	if cat request-git | git-cvsserver pserver >log 2>&1
	then
	    false
	else
	    true
	fi &&
	sed -ne \$p log | grep "^I HATE YOU\$"
'

test_expect_success 'pserver authentication success (non-anonymous user with password)' '
	cat login-git-ok | git-cvsserver pserver >log 2>&1 &&
	sed -ne \$p log | grep "^I LOVE YOU\$"
'

test_expect_success 'pserver authentication (login)' '
	cat login-anonymous | git-cvsserver pserver >log 2>&1 &&
	sed -ne \$p log | grep "^I LOVE YOU\$"
'

test_expect_success 'pserver authentication failure (login/non-anonymous user)' '
	if cat login-git | git-cvsserver pserver >log 2>&1
	then
	    false
	else
	    true
	fi &&
	sed -ne \$p log | grep "^I HATE YOU\$"
'


# misuse pserver authentication for testing of req_Root

cat >request-relative  <<EOF
BEGIN AUTH REQUEST
gitcvs.git
anonymous

END AUTH REQUEST
EOF

cat >request-conflict  <<EOF
BEGIN AUTH REQUEST
$SERVERDIR
anonymous

END AUTH REQUEST
Root $WORKDIR
EOF

test_expect_success 'req_Root failure (relative pathname)' '
	if cat request-relative | git-cvsserver pserver >log 2>&1
	then
		echo unexpected success
		false
	else
		true
	fi &&
	tail log | grep "^error 1 Root must be an absolute pathname$"
'

test_expect_success 'req_Root failure (conflicting roots)' '
	cat request-conflict | git-cvsserver pserver >log 2>&1 &&
	tail log | grep "^error 1 Conflicting roots specified$"
'

test_expect_success 'req_Root (strict paths)' '
	cat request-anonymous | git-cvsserver --strict-paths pserver "$SERVERDIR" >log 2>&1 &&
	sed -ne \$p log | grep "^I LOVE YOU\$"
'

test_expect_success 'req_Root failure (strict-paths)' '
	! cat request-anonymous |
	git-cvsserver --strict-paths pserver "$WORKDIR" >log 2>&1
'

test_expect_success 'req_Root (w/o strict-paths)' '
	cat request-anonymous | git-cvsserver pserver "$WORKDIR/" >log 2>&1 &&
	sed -ne \$p log | grep "^I LOVE YOU\$"
'

test_expect_success 'req_Root failure (w/o strict-paths)' '
	! cat request-anonymous |
	git-cvsserver pserver "$WORKDIR/gitcvs" >log 2>&1
'

cat >request-base  <<EOF
BEGIN AUTH REQUEST
/gitcvs.git
anonymous

END AUTH REQUEST
Root /gitcvs.git
EOF

test_expect_success 'req_Root (base-path)' '
	cat request-base | git-cvsserver --strict-paths --base-path "$WORKDIR/" pserver "$SERVERDIR" >log 2>&1 &&
	sed -ne \$p log | grep "^I LOVE YOU\$"
'

test_expect_success 'req_Root failure (base-path)' '
	! cat request-anonymous |
	git-cvsserver --strict-paths --base-path "$WORKDIR" pserver "$SERVERDIR" >log 2>&1
'

GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled false || exit 1

test_expect_success 'req_Root (export-all)' '
	cat request-anonymous | git-cvsserver --export-all pserver "$WORKDIR" >log 2>&1 &&
	sed -ne \$p log | grep "^I LOVE YOU\$"
'

test_expect_success 'req_Root failure (export-all w/o directory list)' '
	! (cat request-anonymous | git-cvsserver --export-all pserver >log 2>&1 || false)'

test_expect_success 'req_Root (everything together)' '
	cat request-base | git-cvsserver --export-all --strict-paths --base-path "$WORKDIR/" pserver "$SERVERDIR" >log 2>&1 &&
	sed -ne \$p log | grep "^I LOVE YOU\$"
'

GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true || exit 1

#--------------
# CONFIG TESTS
#--------------

test_expect_success 'gitcvs.enabled = false' \
  'GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled false &&
   if GIT_CONFIG="$git_config" cvs -Q co -d cvswork2 main >cvs.log 2>&1
   then
     echo unexpected cvs success
     false
   else
     true
   fi &&
   grep "GITCVS emulation disabled" cvs.log &&
   test ! -d cvswork2'

rm -fr cvswork2
test_expect_success 'gitcvs.ext.enabled = true' '
	GIT_DIR="$SERVERDIR" git config --bool gitcvs.ext.enabled true &&
	GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled false &&
	GIT_CONFIG="$git_config" cvs -Q co -d cvswork2 main >cvs.log 2>&1 &&
	test_cmp cvswork cvswork2
'

rm -fr cvswork2
test_expect_success 'gitcvs.ext.enabled = false' '
	GIT_DIR="$SERVERDIR" git config --bool gitcvs.ext.enabled false &&
	GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true &&
	if GIT_CONFIG="$git_config" cvs -Q co -d cvswork2 main >cvs.log 2>&1
	then
		echo unexpected cvs success
		false
	else
		true
	fi &&
	grep "GITCVS emulation disabled" cvs.log &&
	test ! -d cvswork2
'

rm -fr cvswork2
test_expect_success 'gitcvs.dbname' '
	GIT_DIR="$SERVERDIR" git config --bool gitcvs.ext.enabled true &&
	GIT_DIR="$SERVERDIR" git config gitcvs.dbname %Ggitcvs.%a.%m.sqlite &&
	GIT_CONFIG="$git_config" cvs -Q co -d cvswork2 main >cvs.log 2>&1 &&
	test_cmp cvswork cvswork2 &&
	test -f "$SERVERDIR/gitcvs.ext.main.sqlite" &&
	cmp "$SERVERDIR/gitcvs.main.sqlite" "$SERVERDIR/gitcvs.ext.main.sqlite"
'

rm -fr cvswork2
test_expect_success 'gitcvs.ext.dbname' '
	GIT_DIR="$SERVERDIR" git config --bool gitcvs.ext.enabled true &&
	GIT_DIR="$SERVERDIR" git config gitcvs.ext.dbname %Ggitcvs1.%a.%m.sqlite &&
	GIT_DIR="$SERVERDIR" git config gitcvs.dbname %Ggitcvs2.%a.%m.sqlite &&
	GIT_CONFIG="$git_config" cvs -Q co -d cvswork2 main >cvs.log 2>&1 &&
	test_cmp cvswork cvswork2 &&
	test -f "$SERVERDIR/gitcvs1.ext.main.sqlite" &&
	test ! -f "$SERVERDIR/gitcvs2.ext.main.sqlite" &&
	cmp "$SERVERDIR/gitcvs.main.sqlite" "$SERVERDIR/gitcvs1.ext.main.sqlite"
'


#------------
# CVS UPDATE
#------------

rm -fr "$SERVERDIR"
cd "$WORKDIR" &&
git clone -q --bare "$WORKDIR/.git" "$SERVERDIR" >/dev/null 2>&1 &&
GIT_DIR="$SERVERDIR" git config --bool gitcvs.enabled true &&
GIT_DIR="$SERVERDIR" git config gitcvs.logfile "$SERVERDIR/gitcvs.log" ||
exit 1

test_expect_success 'cvs update (create new file)' '
	echo testfile1 >testfile1 &&
	git add testfile1 &&
	git commit -q -m "Add testfile1" &&
	git push gitcvs.git >/dev/null &&
	cd cvswork &&
	GIT_CONFIG="$git_config" cvs -Q update &&
	test "$(echo $(grep testfile1 CVS/Entries|cut -d/ -f2,3,5))" = "testfile1/1.1/" &&
	test_cmp testfile1 ../testfile1
'

cd "$WORKDIR"
test_expect_success 'cvs update (update existing file)' '
	echo line 2 >>testfile1 &&
	git add testfile1 &&
	git commit -q -m "Append to testfile1" &&
	git push gitcvs.git >/dev/null &&
	cd cvswork &&
	GIT_CONFIG="$git_config" cvs -Q update &&
	test "$(echo $(grep testfile1 CVS/Entries|cut -d/ -f2,3,5))" = "testfile1/1.2/" &&
	test_cmp testfile1 ../testfile1
'

cd "$WORKDIR"
#TODO: cvsserver doesn't support update w/o -d
test_expect_failure "cvs update w/o -d doesn't create subdir (TODO)" '
	mkdir test &&
	echo >test/empty &&
	git add test &&
	git commit -q -m "Single Subdirectory" &&
	git push gitcvs.git >/dev/null &&
	cd cvswork &&
	GIT_CONFIG="$git_config" cvs -Q update &&
	test ! -d test
'

cd "$WORKDIR"
test_expect_success 'cvs update (subdirectories)' '
	(for dir in A A/B A/B/C A/D E; do
		mkdir $dir &&
		echo "test file in $dir" >"$dir/file_in_$(echo $dir|sed -e "s#/# #g")"  &&
		git add $dir || exit 1
	done) &&
	git commit -q -m "deep sub directory structure" &&
	git push gitcvs.git >/dev/null &&
	cd cvswork &&
	GIT_CONFIG="$git_config" cvs -Q update -d &&
	(for dir in A A/B A/B/C A/D E; do
		filename="file_in_$(echo $dir|sed -e "s#/# #g")" &&
		if test "$(echo $(grep -v ^D $dir/CVS/Entries|cut -d/ -f2,3,5))" = "$filename/1.1/" &&
			test_cmp "$dir/$filename" "../$dir/$filename"; then
		:
		else
			exit 1
		fi
	done)
'

cd "$WORKDIR"
test_expect_success 'cvs update (delete file)' '
	git rm testfile1 &&
	git commit -q -m "Remove testfile1" &&
	git push gitcvs.git >/dev/null &&
	cd cvswork &&
	GIT_CONFIG="$git_config" cvs -Q update &&
	test -z "$(grep testfile1 CVS/Entries)" &&
	test ! -f testfile1
'

cd "$WORKDIR"
test_expect_success 'cvs update (re-add deleted file)' '
	echo readded testfile >testfile1 &&
	git add testfile1 &&
	git commit -q -m "Re-Add testfile1" &&
	git push gitcvs.git >/dev/null &&
	cd cvswork &&
	GIT_CONFIG="$git_config" cvs -Q update &&
	test "$(echo $(grep testfile1 CVS/Entries|cut -d/ -f2,3,5))" = "testfile1/1.4/" &&
	test_cmp testfile1 ../testfile1
'

cd "$WORKDIR"
test_expect_success 'cvs update (merge)' '
	echo Line 0 >expected &&
	for i in 1 2 3 4 5 6 7
	do
		echo Line $i >>merge &&
		echo Line $i >>expected || return 1
	done &&
	echo Line 8 >>expected &&
	git add merge &&
	git commit -q -m "Merge test (pre-merge)" &&
	git push gitcvs.git >/dev/null &&
	cd cvswork &&
	GIT_CONFIG="$git_config" cvs -Q update &&
	test "$(echo $(grep merge CVS/Entries|cut -d/ -f2,3,5))" = "merge/1.1/" &&
	test_cmp merge ../merge &&
	( echo Line 0 && cat merge ) >merge.tmp &&
	mv merge.tmp merge &&
	cd "$WORKDIR" &&
	echo Line 8 >>merge &&
	git add merge &&
	git commit -q -m "Merge test (merge)" &&
	git push gitcvs.git >/dev/null &&
	cd cvswork &&
	sleep 1 && touch merge &&
	GIT_CONFIG="$git_config" cvs -Q update &&
	test_cmp merge ../expected
'

cd "$WORKDIR"

cat >expected.C <<EOF
<<<<<<< merge.mine
Line 0
=======
LINE 0
>>>>>>> merge.1.3
EOF

for i in 1 2 3 4 5 6 7 8
do
  echo Line $i >>expected.C
done

test_expect_success 'cvs update (conflict merge)' '
	( echo LINE 0 && cat merge ) >merge.tmp &&
	mv merge.tmp merge &&
	git add merge &&
	git commit -q -m "Merge test (conflict)" &&
	git push gitcvs.git >/dev/null &&
	cd cvswork &&
	GIT_CONFIG="$git_config" cvs -Q update &&
	test_cmp merge ../expected.C
'

cd "$WORKDIR"
test_expect_success 'cvs update (-C)' '
	cd cvswork &&
	GIT_CONFIG="$git_config" cvs -Q update -C &&
	test_cmp merge ../merge
'

cd "$WORKDIR"
test_expect_success 'cvs update (merge no-op)' '
	echo Line 9 >>merge &&
	cp merge cvswork/merge &&
	git add merge &&
	git commit -q -m "Merge test (no-op)" &&
	git push gitcvs.git >/dev/null &&
	cd cvswork &&
	sleep 1 && touch merge &&
	GIT_CONFIG="$git_config" cvs -Q update &&
	test_cmp merge ../merge
'

cd "$WORKDIR"
test_expect_success 'cvs update (-p)' '
	touch really-empty &&
	echo Line 1 > no-lf &&
	printf "Line 2" >> no-lf &&
	git add really-empty no-lf &&
	git commit -q -m "Update -p test" &&
	git push gitcvs.git >/dev/null &&
	cd cvswork &&
	GIT_CONFIG="$git_config" cvs update &&
	for i in merge no-lf empty really-empty; do
		GIT_CONFIG="$git_config" cvs update -p "$i" >$i.out &&
		test_cmp $i.out ../$i || return 1
	done
'

cd "$WORKDIR"
test_expect_success 'cvs update (module list supports packed refs)' '
	GIT_DIR="$SERVERDIR" git pack-refs --all &&
	GIT_CONFIG="$git_config" cvs -n up -d 2> out &&
	grep "cvs update: New directory \`main'\''" < out
'

#------------
# CVS STATUS
#------------

cd "$WORKDIR"
test_expect_success 'cvs status' '
	mkdir status.dir &&
	echo Line > status.dir/status.file &&
	echo Line > status.file &&
	git add status.dir status.file &&
	git commit -q -m "Status test" &&
	git push gitcvs.git >/dev/null &&
	cd cvswork &&
	GIT_CONFIG="$git_config" cvs update &&
	GIT_CONFIG="$git_config" cvs status | grep "^File: status.file" >../out &&
	test_line_count = 2 ../out
'

cd "$WORKDIR"
test_expect_success 'cvs status (nonrecursive)' '
	cd cvswork &&
	GIT_CONFIG="$git_config" cvs status -l | grep "^File: status.file" >../out &&
	test_line_count = 1 ../out
'

cd "$WORKDIR"
test_expect_success 'cvs status (no subdirs in header)' '
	cd cvswork &&
	GIT_CONFIG="$git_config" cvs status | grep ^File: >../out &&
	! grep / <../out
'

#------------
# CVS CHECKOUT
#------------

cd "$WORKDIR"
test_expect_success 'cvs co -c (shows module database)' '
	GIT_CONFIG="$git_config" cvs co -c > out &&
	grep "^main[	 ][ 	]*main$" <out &&
	! grep -v "^main[	 ][ 	]*main$" <out
'

#------------
# CVS LOG
#------------

# Known issues with git-cvsserver current log output:
#  - Hard coded "lines: +2 -3" placeholder, instead of real numbers.
#  - CVS normally does not internally add a blank first line
#    or a last line with nothing but a space to log messages.
#  - The latest cvs 1.12.x server sends +0000 timezone (with some hidden "MT"
#    tagging in the protocol), and if cvs 1.12.x client sees the MT tags,
#    it converts to local time zone.  git-cvsserver doesn't do the +0000
#    or the MT tags...
#  - The latest 1.12.x releases add a "commitid:" field on to the end of the
#    "date:" line (after "lines:").  Maybe we could stick git's commit id
#    in it?  Or does CVS expect a certain number of bits (too few for
#    a full sha1)?
#
# Given the above, expect the following test to break if git-cvsserver's
# log output is improved.  The test is just to ensure it doesn't
# accidentally get worse.

sed -e 's/^x//' -e 's/SP$/ /' > "$WORKDIR/expect" <<EOF
x
xRCS file: $WORKDIR/gitcvs.git/main/merge,v
xWorking file: merge
xhead: 1.4
xbranch:
xlocks: strict
xaccess list:
xsymbolic names:
xkeyword substitution: kv
xtotal revisions: 4;	selected revisions: 4
xdescription:
x----------------------------
xrevision 1.4
xdate: __DATE__;  author: author;  state: Exp;  lines: +2 -3
x
xMerge test (no-op)
xSP
x----------------------------
xrevision 1.3
xdate: __DATE__;  author: author;  state: Exp;  lines: +2 -3
x
xMerge test (conflict)
xSP
x----------------------------
xrevision 1.2
xdate: __DATE__;  author: author;  state: Exp;  lines: +2 -3
x
xMerge test (merge)
xSP
x----------------------------
xrevision 1.1
xdate: __DATE__;  author: author;  state: Exp;  lines: +2 -3
x
xMerge test (pre-merge)
xSP
x=============================================================================
EOF
expectStat="$?"

cd "$WORKDIR"
test_expect_success 'cvs log' '
	cd cvswork &&
	test x"$expectStat" = x"0" &&
	GIT_CONFIG="$git_config" cvs log merge >../out &&
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 &&
	test_cmp ../expect ../actual
'

#------------
# CVS ANNOTATE
#------------

cd "$WORKDIR"
test_expect_success 'cvs annotate' '
	cd cvswork &&
	GIT_CONFIG="$git_config" cvs annotate merge >../out &&
	sed -e "s/ .*//" ../out >../actual &&
	printf "1.%d\n" 3 1 1 1 1 1 1 1 2 4 >../expect &&
	test_cmp ../expect ../actual
'

#------------
# running via git-shell
#------------

cd "$WORKDIR"

test_expect_success 'create remote-cvs helper' '
	write_script remote-cvs <<-\EOF
	exec git shell -c "cvs server"
	EOF
'

test_expect_success 'cvs server does not run with vanilla git-shell' '
	(
		cd cvswork &&
		CVS_SERVER=$WORKDIR/remote-cvs &&
		export CVS_SERVER &&
		! cvs log merge
	)
'

test_expect_success 'configure git shell to run cvs server' '
	mkdir "$HOME"/git-shell-commands &&

	write_script "$HOME"/git-shell-commands/cvs <<-\EOF &&
	if ! test $# = 1 && test "$1" = "server"
	then
		echo >&2 "git-cvsserver only handles \"server\""
		exit 1
	fi
	exec git cvsserver server
	EOF

	# Should not be used, but part of the recommended setup
	write_script "$HOME"/git-shell-commands/no-interactive-login <<-\EOF
	echo Interactive login forbidden
	EOF
'

test_expect_success 'cvs server can run with recommended config' '
	(
		cd cvswork &&
		CVS_SERVER=$WORKDIR/remote-cvs &&
		export CVS_SERVER &&
		cvs log merge
	)
'

test_done
