Runs a real live test of mercurial-server from beginning to end
authorPaul Crowley <paul@lshift.net>
Tue, 01 Dec 2009 15:31:03 +0000
changeset 266 7cc208cbf2be
parent 265 6629144cf111
child 267 4f24892b33fe
Runs a real live test of mercurial-server from beginning to end
action/go
action/test1
action/test2
run-test
--- 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
+
--- /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
+
--- /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
+
+
--- 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