diff options
Diffstat (limited to 'tests/test-convert-p4-filetypes')
-rwxr-xr-x | tests/test-convert-p4-filetypes | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/tests/test-convert-p4-filetypes b/tests/test-convert-p4-filetypes new file mode 100755 index 0000000..5c0e1a8 --- /dev/null +++ b/tests/test-convert-p4-filetypes @@ -0,0 +1,104 @@ +#!/bin/sh + +"$TESTDIR/hghave" p4 execbit symlink || exit 80 + +echo "[extensions]" >> $HGRCPATH +echo "convert = " >> $HGRCPATH + +echo % create p4 depot +P4ROOT=`pwd`/depot; export P4ROOT +P4AUDIT=$P4ROOT/audit; export P4AUDIT +P4JOURNAL=$P4ROOT/journal; export P4JOURNAL +P4LOG=$P4ROOT/log; export P4LOG +P4PORT=localhost:16661; export P4PORT +P4DEBUG=1; export P4DEBUG +P4CHARSET=utf8; export P4CHARSET + +echo % start the p4 server +[ ! -d $P4ROOT ] && mkdir $P4ROOT +p4d -f -J off -xi >$P4ROOT/stdout 2>$P4ROOT/stderr +p4d -f -J off >$P4ROOT/stdout 2>$P4ROOT/stderr & +trap "echo % stop the p4 server ; p4 admin stop" EXIT + +# wait for the server to initialize +while ! p4 ; do + sleep 1 +done >/dev/null 2>/dev/null + +echo % create a client spec +P4CLIENT=hg-p4-import; export P4CLIENT +DEPOTPATH=//depot/test-mercurial-import/... +p4 client -o | sed '/^View:/,$ d' >p4client +echo View: >>p4client +echo " $DEPOTPATH //$P4CLIENT/..." >>p4client +p4 client -i <p4client + +echo % populate the depot +TYPES="text binary symlink" +TYPES="$TYPES text+m text+w text+x text+k text+kx text+ko text+l text+C text+D text+F text+S text+S2" +TYPES="$TYPES binary+k binary+x binary+kx symlink+k" +TYPES="$TYPES ctext cxtext ktext kxtext ltext tempobj ubinary uxbinary xbinary xltext xtempobj xtext" +# not testing these +#TYPES="$TYPES apple resource unicode utf16 uresource xunicode xutf16" +for T in $TYPES ; do + T2=`echo $T | tr [:upper:] [:lower:]` + case $T in + apple) + ;; + symlink*) + echo "this is target $T" >target_$T2 + ln -s target_$T file_$T2 + p4 add target_$T2 + p4 add -t $T file_$T2 + ;; + binary*) + python -c "file('file_$T2', 'wb').write('this is $T')" + p4 add -t $T file_$T2 + ;; + *) + echo "this is $T" >file_$T2 + p4 add -t $T file_$T2 + ;; + esac +done +p4 submit -d initial + +echo % test keyword expansion +p4 edit file_* target_* +for T in $TYPES ; do + T2=`echo $T | tr [:upper:] [:lower:]` + echo '$Id$' >>file_$T2 + echo '$Header$' >>file_$T2 + echo '$Date$' >>file_$T2 + echo '$DateTime$' >>file_$T2 + echo '$Change$' >>file_$T2 + echo '$File$' >>file_$T2 + echo '$Revision$' >>file_$T2 + echo '$Header$$Header$Header$' >>file_$T2 +done + +ln -s 'target_$Header$' crazy_symlink+k +p4 add -t symlink+k crazy_symlink+k + +p4 submit -d keywords + +echo % check keywords in p4 +grep -H Header file_* + +echo % convert +hg convert -s p4 $DEPOTPATH dst +hg -R dst log --template 'rev={rev} desc="{desc}" tags="{tags}" files="{files}"\n'g + +echo % revision 0 +hg -R dst update 0 +head dst/file_* | cat -v + +echo +echo % revision 1 +hg -R dst update 1 +head dst/file_* | cat -v +echo +echo % crazy_symlink +readlink crazy_symlink+k +readlink dst/crazy_symlink+k + |