summaryrefslogtreecommitdiff
path: root/tests/test-static-http.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-static-http.t')
-rw-r--r--tests/test-static-http.t174
1 files changed, 174 insertions, 0 deletions
diff --git a/tests/test-static-http.t b/tests/test-static-http.t
new file mode 100644
index 0000000..ed9ab54
--- /dev/null
+++ b/tests/test-static-http.t
@@ -0,0 +1,174 @@
+ $ "$TESTDIR/hghave" serve || exit 80
+
+#if windows
+ $ hg clone http://localhost:$HGPORT/ copy
+ abort: * (glob)
+ [255]
+#else
+ $ hg clone http://localhost:$HGPORT/ copy
+ abort: error: Connection refused
+ [255]
+#endif
+ $ 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, sys
+ >
+ > 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, y: sys.exit(0))
+ > run()
+ > EOF
+ $ python dumb.py 2>/dev/null &
+ $ echo $! >> $DAEMON_PIDS
+ $ hg init remote
+ $ cd remote
+ $ echo foo > bar
+ $ echo c2 > '.dotfile with spaces'
+ $ hg add
+ adding .dotfile with spaces
+ adding bar
+ $ hg commit -m"test"
+ $ hg tip
+ changeset: 0:02770d679fb8
+ 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 2 changes to 2 files
+ updating to branch default
+ 2 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
+ 2 files, 1 changesets, 2 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 \"$TESTDIR/printenv.py\" changegroup" >> .hg/hgrc
+ $ hg pull
+ pulling from static-http://localhost:$HGPORT/remote
+ searching for changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 1 changes to 1 files
+ changegroup hook: HG_NODE=4ac2e3648604439c580c69b09ec9d93a88d93432 HG_SOURCE=pull HG_URL=http://localhost:$HGPORT/remote
+ (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:$HGPORT/remote
+ abort: destination does not support push
+ [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
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 2 changes to 2 files
+ updating to branch default
+ 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+test with "/" URI (issue 747) and subrepo
+
+ $ hg init
+ $ hg init sub
+ $ touch sub/test
+ $ hg -R sub commit -A -m "test"
+ adding test
+ $ hg -R sub tag not-empty
+ $ echo sub=sub > .hgsub
+ $ echo a > a
+ $ hg add a .hgsub
+ $ hg -q ci -ma
+ $ hg clone static-http://localhost:$HGPORT/ local2
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 3 changes to 3 files
+ updating to branch default
+ cloning subrepo sub from static-http://localhost:$HGPORT/sub
+ requesting all changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 2 changesets with 2 changes to 2 files
+ 3 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
+ 3 files, 1 changesets, 3 total revisions
+ $ cat a
+ a
+ $ hg paths
+ default = static-http://localhost:$HGPORT/
+
+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:$HGPORT/remotempty
+
+test with non-repo
+
+ $ cd ..
+ $ mkdir notarepo
+ $ hg clone static-http://localhost:$HGPORT/notarepo local3
+ abort: 'http://localhost:$HGPORT/notarepo' does not appear to be an hg repository!
+ [255]
+ $ kill $!