diff tests/test-static-http.t @ 12491:f0c5c334ded1

tests: unify test-static-http
author Matt Mackall <mpm@selenic.com>
date Sun, 26 Sep 2010 13:44:49 -0500
parents tests/test-static-http@4c94b6d0fb1c
children d08bb64888bc
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-static-http.t	Sun Sep 26 13:44:49 2010 -0500
@@ -0,0 +1,155 @@
+
+  $ cp "$TESTDIR"/printenv.py .
+  $ hg clone http://localhost:$HGPORT/ copy
+  abort: error: Connection refused
+  [255]
+  $ test -d copy
+  [1]
+
+This server doesn't do range requests so it's basically only good for
+one pull
+
+  $ cat > dumb.py <<EOF
+  > import BaseHTTPServer, SimpleHTTPServer, os, signal
+  > 
+  > def run(server_class=BaseHTTPServer.HTTPServer,
+  >         handler_class=SimpleHTTPServer.SimpleHTTPRequestHandler):
+  >     server_address = ('localhost', int(os.environ['HGPORT']))
+  >     httpd = server_class(server_address, handler_class)
+  >     httpd.serve_forever()
+  > 
+  > signal.signal(signal.SIGTERM, lambda x: sys.exit(0))
+  > run()
+  > EOF
+  $ python dumb.py 2>/dev/null &
+  $ echo $! >> $DAEMON_PIDS
+  $ mkdir remote
+  $ cd remote
+  $ hg init
+  $ echo foo > bar
+  $ hg add bar
+  $ hg commit -m"test"
+  $ hg tip
+  changeset:   0:61c9426e69fe
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     test
+  
+  $ cd ..
+  $ hg clone static-http://localhost:$HGPORT/remote local
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  updating to branch default
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ cd local
+  $ hg verify
+  checking changesets
+  checking manifests
+  crosschecking files in changesets and manifests
+  checking files
+  1 files, 1 changesets, 1 total revisions
+  $ cat bar
+  foo
+  $ cd ../remote
+  $ echo baz > quux
+  $ hg commit -A -mtest2
+  adding quux
+
+check for HTTP opener failures when cachefile does not exist
+
+  $ rm .hg/*.cache
+  $ cd ../local
+  $ echo '[hooks]' >> .hg/hgrc
+  $ echo 'changegroup = python ../printenv.py changegroup' >> .hg/hgrc
+  $ hg pull
+  changegroup hook: HG_NODE=822d6e31f08b9d6e3b898ce5e52efc0a4bf4905a HG_SOURCE=pull HG_URL=http://localhost:*/remote  (glob)
+  pulling from static-http://localhost:*/remote (glob)
+  searching for changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  (run 'hg update' to get a working copy)
+
+trying to push
+
+  $ hg update
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ echo more foo >> bar
+  $ hg commit -m"test"
+  $ hg push
+  pushing to static-http://localhost:*/remote (glob)
+  abort: cannot lock static-http repository
+  [255]
+
+trying clone -r
+
+  $ cd ..
+  $ hg clone -r donotexist static-http://localhost:$HGPORT/remote local0
+  abort: unknown revision 'donotexist'!
+  [255]
+  $ hg clone -r 0 static-http://localhost:$HGPORT/remote local0
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  updating to branch default
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+test with "/" URI (issue 747)
+
+  $ hg init
+  $ echo a > a
+  $ hg add a
+  $ hg ci -ma
+  $ hg clone static-http://localhost:$HGPORT/ local2
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 1 changesets with 1 changes to 1 files
+  updating to branch default
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ cd local2
+  $ hg verify
+  checking changesets
+  checking manifests
+  crosschecking files in changesets and manifests
+  checking files
+  1 files, 1 changesets, 1 total revisions
+  $ cat a
+  a
+  $ hg paths
+  default = static-http://localhost:*/ (glob)
+
+test with empty repo (issue965)
+
+  $ cd ..
+  $ hg init remotempty
+  $ hg clone static-http://localhost:$HGPORT/remotempty local3
+  no changes found
+  updating to branch default
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ cd local3
+  $ hg verify
+  checking changesets
+  checking manifests
+  crosschecking files in changesets and manifests
+  checking files
+  0 files, 0 changesets, 0 total revisions
+  $ hg paths
+  default = static-http://localhost:*/remotempty (glob)
+
+test with non-repo
+
+  $ cd ..
+  $ mkdir notarepo
+  $ hg clone static-http://localhost:$HGPORT/notarepo local3
+  abort: 'http://localhost:*/notarepo' does not appear to be an hg repository! (glob)
+  [255]
+  $ kill $!