# HG changeset patch # User Paul Crowley # Date 1259681463 0 # Node ID 7cc208cbf2bea5e99b374768075d636212b9ac69 # Parent 6629144cf1116111e9362156c192026dfe43f8bb Runs a real live test of mercurial-server from beginning to end diff -r 6629144cf111 -r 7cc208cbf2be action/go --- a/action/go Tue Dec 01 12:37:20 2009 +0000 +++ b/action/go Tue Dec 01 15:31:03 2009 +0000 @@ -10,10 +10,30 @@ #exec > results 2>&1 -echo "It worked" +#aptitude --allow-untrusted --quiet --without-recommends --assume-yes install mercurial +#hg --version + +aptitude --allow-untrusted --quiet --without-recommends --assume-yes install \ + make mercurial xsltproc docbook-xsl openssh-server + +perl -i -pe 's/^Port 22$/Port 2222/' /etc/ssh/sshd_config +/etc/init.d/ssh start +ssh-keyscan -p 2222 localhost > /etc/ssh/ssh_known_hosts + +cd mercurial-server +make setup-adduser -aptitude --allow-untrusted --quiet --without-recommends --assume-yes install mercurial -hg --version +for user in test1 test2 ; do + adduser --gecos $user --disabled-password $user + su -l -c 'mkdir .ssh' $user + su -l -c 'ssh-keygen -N "" -f .ssh/id_rsa -t rsa' $user +done +cp /home/test1/.ssh/id_rsa.pub /etc/mercurial-server/keys/root/test1 +su -l -c /usr/local/share/mercurial-server/refresh-auth hg +su -l -c /action/test1 test1 +su -l -c /action/test2 test2 -touch results +/etc/init.d/ssh stop +#touch results + diff -r 6629144cf111 -r 7cc208cbf2be action/test1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/action/test1 Tue Dec 01 15:31:03 2009 +0000 @@ -0,0 +1,29 @@ +#!/bin/sh + +set -e + +cd + +cat > .ssh/config <<__END__ +Host chroothg +Hostname localhost +User hg +Port 2222 +__END__ + +hg clone ssh://chroothg/hgadmin +cd hgadmin +mkdir -p keys/users +cp /home/test2/.ssh/id_rsa.pub keys/users/test2 +hg add keys/users/test2 +hg commit -u test1 -m "Added user test2" +hg push +cd .. +mkdir realrepo +cd realrepo +hg init . +echo "This is a file" > content +hg add content +hg commit -u test1 -m "Add a file to the repo" +hg clone . ssh://chroothg/real/project + diff -r 6629144cf111 -r 7cc208cbf2be action/test2 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/action/test2 Tue Dec 01 15:31:03 2009 +0000 @@ -0,0 +1,20 @@ +#!/bin/sh + +set -e + +cd + +cat > .ssh/config <<__END__ +Host chroothg +Hostname localhost +User hg +Port 2222 +__END__ + +hg clone ssh://chroothg/real/project +cd project +echo "and I'm adding something" >> content +hg commit -u test2 -m "Added something to the file" +hg push + + diff -r 6629144cf111 -r 7cc208cbf2be run-test --- a/run-test Tue Dec 01 12:37:20 2009 +0000 +++ b/run-test Tue Dec 01 15:31:03 2009 +0000 @@ -12,23 +12,30 @@ mkdir -p $BACKING $MOUNT touch $BACKING/please-trash-this-system -cp -av action $BACKING mkdir -p $BACKING/etc +echo "pristine" > $BACKING/etc/debian_chroot cp -v policy-rc.d $BACKING/etc/policy-rc.d -unionfs-fuse -o cow -o allow_root,suid,dev $BACKING=RW:$PRISTINE=RO $MOUNT +mkdir -p $BACKING/var/cache/apt/archives +cp -v build/aptcache/* $BACKING/var/cache/apt/archives + +cp -av action $BACKING +#hg -R ../mercurial-server archive -r default $BACKING/action/mercurial-server +( cd ../mercurial-server && \ + hg st -mac0n | cpio -p -0 -d $BACKING/action/mercurial-server ) + +unionfs-fuse -o cow -o allow_other,suid,dev $BACKING=RW:$PRISTINE=RO $MOUNT #mount --bind /dev "$MOUNT/dev" #mount --bind /dev/pts "$MOUNT/dev/pts" mount -t proc proc $MOUNT/proc chroot $MOUNT ./action/go -cd $TOPDIR umount $MOUNT/proc umount $MOUNT -cat $BACKING/action/results +#cat $BACKING/action/results rm -rf build/env