sapling/tests
Vadim Gelfer 9ea4436262 add support for streaming clone.
existing clone code uses pull to get changes from remote repo.  is very
slow, uses lots of memory and cpu.

new clone code has server write file data straight to client, client
writes file data straight to disk.  memory and cpu used are very low,
clone is much faster over lan.

new client can still clone with pull, can still clone from older servers.
new server can still serve older clients.
2006-07-14 11:17:22 -07:00
..
coverage.py Add code coverage to the python version of run-tests (inc. annotation) 2006-04-27 21:59:44 -07:00
fish-merge Remove "export FOO=bar" bashism. 2005-07-29 14:54:36 +01:00
get-with-headers.py Add a test for getting raw files via the web UI. 2006-06-29 16:44:23 -07:00
md5sum.py clarify license on md5sum.py 2006-03-06 17:58:53 +01:00
README deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
run-tests.py Add merge to list of required tools. 2006-07-13 09:50:51 -07:00
test-addremove Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-addremove.out Corrected test output for deprecated addremove command. 2006-05-03 10:18:52 +02:00
test-archive tests: add timeouts, make run-tests.py clean up dead daemon processes 2006-07-06 11:45:34 -07:00
test-archive.out archive: make "hg archive -t XXX -" to write to stdout 2006-06-21 15:15:06 -07:00
test-backout Test case for #295 2006-06-23 17:21:04 -07:00
test-backout.out print message after backout that tells that backout adds new head. 2006-06-23 17:33:10 -07:00
test-backwards-remove Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-backwards-remove.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-bad-pull tests: record few more daemon pids to be safe 2006-07-06 11:49:19 -07:00
test-bad-pull.out Update keepalive.py to current CVS version of urlgrabber. 2006-06-16 10:00:37 -03:00
test-basic Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-basic.out Show repo's revlog format on verify only if it doesn't match the default format. 2006-04-28 21:52:08 +02:00
test-bdiff Add a fast binary diff extension (not yet used) 2005-06-21 17:27:58 -08:00
test-bdiff.out Add a fast binary diff extension (not yet used) 2005-06-21 17:27:58 -08:00
test-bundle tests for bundles and bundlerepo 2006-05-12 18:39:37 +02:00
test-bundle.out tests for bundles and bundlerepo 2006-05-12 18:39:37 +02:00
test-cat Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-cat.out Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-clone changes by John Levon to standardize some erroroutput 2006-02-22 15:57:43 +01:00
test-clone-failure Use sh instead of bash in tests. 2005-08-04 18:20:40 +01:00
test-clone-failure.out Move empty local repo logic for pull into findincoming 2006-04-21 15:33:51 -05:00
test-clone-pull-corruption Added test cases for repo corruption fixed in e2b47039575f (issue132) 2006-02-22 07:45:14 +01:00
test-clone-pull-corruption.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-clone-r remove bashisms from tests 2006-03-12 08:08:22 +01:00
test-clone-r.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-clone.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-command-template Use timestamps without leading 0 in test-command-template for portable tests. 2006-03-13 18:33:33 +01:00
test-command-template.out Corrected tests for commit now consistently stripping last newline. 2006-05-17 19:59:15 +02:00
test-commit Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-commit.out Updated test-commit to match changed output caused by nested transactions. 2006-02-28 23:19:47 +01:00
test-committer Add tests/test-committer 2006-04-20 16:33:49 +02:00
test-committer.out Add tests/test-committer 2006-04-20 16:33:49 +02:00
test-conflict deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-conflict.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-confused-revert deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-confused-revert.out make test-confused-revert check working dir with two parents. 2006-05-05 10:45:08 -07:00
test-copy Update tests for revlogng 2006-05-08 14:32:43 -05:00
test-copy2 The copy tests don't need to invoke cp any longer. 2005-09-14 16:31:03 -07:00
test-copy2.out Fixed test-copy2 with only looking at copied files. 2005-08-28 16:37:24 +02:00
test-copy.out Update tests for revlogng 2006-05-08 14:32:43 -05:00
test-default-push add test for default-push. 2006-06-23 18:23:42 -07:00
test-default-push.out add test for default-push. 2006-06-23 18:23:42 -07:00
test-diff-ignore-whitespace Fix sed expression for OS X and Solaris 2.6. 2006-07-13 11:19:35 -07:00
test-diff-ignore-whitespace.out add missed tests for diff -b/-B 2006-07-11 15:51:16 -07:00
test-diff-newlines fix diffs containing embedded "\r". 2006-05-10 10:31:54 -07:00
test-diff-newlines.out fix diffs containing embedded "\r". 2006-05-10 10:31:54 -07:00
test-diffdir Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-diffdir.out Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-empty Add empty repo test 2005-09-23 17:52:15 -07:00
test-empty-dir Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-empty-dir.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-empty-group document and fix findincoming 2006-05-23 10:44:40 +02:00
test-empty-group.out document and fix findincoming 2006-05-23 10:44:40 +02:00
test-empty.out Show repo's revlog format on verify only if it doesn't match the default format. 2006-04-28 21:52:08 +02:00
test-encode Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-encode.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-excessive-merge deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-excessive-merge.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-filebranch deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-filebranch.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-flags deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-flags.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-globalopts Workaround to work with less sophisticated sed versions. 2006-06-27 21:56:11 +02:00
test-globalopts.out help: make "hg help EXTENSION" work 2006-07-03 14:30:24 -07:00
test-grep use posix compliant option for head 2005-11-13 16:25:45 +01:00
test-grep.out Add test-grep.out file for now. 2005-08-29 11:28:48 -07:00
test-help Further help improvements: 2005-08-06 15:43:12 +01:00
test-help.out help: make "hg help EXTENSION" work 2006-07-03 14:30:24 -07:00
test-hgignore Fix broken hgignore tests due to full path showing up in output. 2006-03-26 22:54:05 +02:00
test-hgignore.out Adjusted test output to match new hgignore error messages. 2006-01-07 16:34:20 +01:00
test-hgrc make readconfig take a filename instead of a file pointer as argument 2005-10-27 13:40:56 -07:00
test-hgrc.out Add missing test output 2005-10-27 13:48:00 -07:00
test-hook deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-hook.out hooks: add preupdate and update hooks. 2006-05-11 10:14:48 -07:00
test-http add support for streaming clone. 2006-07-14 11:17:22 -07:00
test-http-proxy add support for streaming clone. 2006-07-14 11:17:22 -07:00
test-http-proxy.out add support for streaming clone. 2006-07-14 11:17:22 -07:00
test-http.out add support for streaming clone. 2006-07-14 11:17:22 -07:00
test-hup Some systems are slower ... give 'em some time/ 2006-06-27 22:50:33 +02:00
test-hup.out Update tests for revlogng 2006-05-08 14:32:43 -05:00
test-import import: added tests, fixed bugs found by tests and asak. 2006-06-27 09:30:50 -07:00
test-import.out import: added tests, fixed bugs found by tests and asak. 2006-06-27 09:30:50 -07:00
test-incoming-outgoing tests: add timeouts, make run-tests.py clean up dead daemon processes 2006-07-06 11:45:34 -07:00
test-incoming-outgoing.out add -r/--rev arguments to incoming and outgoing 2006-06-30 16:16:35 +02:00
test-init Added tests for local and remote init. 2006-07-12 09:01:10 +02:00
test-init.out Added tests for local and remote init. 2006-07-12 09:01:10 +02:00
test-locate Test case for #294 2006-06-23 08:10:06 +02:00
test-locate.out Test case for #294 2006-06-23 08:10:06 +02:00
test-lock-badness fix backtrace printed when cannot get lock. 2006-03-28 09:01:07 -08:00
test-lock-badness.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-merge1 deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-merge1.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-merge2 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-merge2.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-merge3 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-merge3.out transitive copy/rename 2006-02-18 07:37:59 -08:00
test-merge4 deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-merge4.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-merge5 Don't require the "yes" command for test-merge5. 2006-03-15 11:26:57 +01:00
test-merge5.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-merge6 deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-merge6.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-merge7 deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-merge7.out deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-merge-revert Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-merge-revert2 rewrite revert command. fix issues 93, 123, 147. 2006-03-31 10:37:25 -08:00
test-merge-revert2.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-merge-revert.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-nested-repo mke test-nested-repo use "revert" instead of "forget" 2006-04-26 12:06:21 -07:00
test-nested-repo.out Fixed test output for not using the deprecated 'hg forget'. 2006-04-27 13:05:02 +02:00
test-notfound Addes test for error messages when operating on non-existing files. 2005-08-15 06:58:25 +01:00
test-notfound.out Fix up failing tests. 2005-09-01 07:37:49 -07:00
test-oldcgi Don't change $PATH (breaks python in other locations) and $PWD in test-oldcgi 2006-06-30 21:40:56 +02:00
test-oldcgi.out Fix new tests to be better. In particular, fix webraw test to 2006-06-30 08:45:52 -07:00
test-parse-date add more testcases for date parsing 2006-06-30 18:57:04 +02:00
test-parse-date.out add more testcases for date parsing 2006-06-30 18:57:04 +02:00
test-parseindex add test for revlog.parseindex 2006-05-14 18:37:50 -03:00
test-parseindex.out add test for revlog.parseindex 2006-05-14 18:37:50 -03:00
test-permissions Update tests for revlogng 2006-05-08 14:32:43 -05:00
test-permissions.out Show repo's revlog format on verify only if it doesn't match the default format. 2006-04-28 21:52:08 +02:00
test-pull add support for streaming clone. 2006-07-14 11:17:22 -07:00
test-pull-permission Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-pull-permission.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-pull-pull-corruption Added test cases for repo corruption fixed in e2b47039575f (issue132) 2006-02-22 07:45:14 +01:00
test-pull-pull-corruption2 Wait for first pull to be completed before doing verify. 2006-06-28 12:29:48 +02:00
test-pull-pull-corruption2.out Show repo's revlog format on verify only if it doesn't match the default format. 2006-04-28 21:52:08 +02:00
test-pull-pull-corruption.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-pull.out Corrected test output for deprecated addremove command. 2006-05-03 10:18:52 +02:00
test-push-hook-lock Create local ui object per repository, so .hg/hgrc don't get mixed. 2006-03-06 17:47:41 +01:00
test-push-hook-lock.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-push-http tests: add timeouts, make run-tests.py clean up dead daemon processes 2006-07-06 11:45:34 -07:00
test-push-http.out add tests for push over http. 2006-06-21 17:55:11 -07:00
test-push-r remove bashisms from tests 2006-03-12 08:08:22 +01:00
test-push-r.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-push-warn deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-push-warn.out Report on push/pull if heads are merged, too, like for new heads. 2006-06-10 17:39:29 +02:00
test-rawcommit1 Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-rawcommit1.out Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-remove remove: rewrite to be ~400x faster, bit more friendly 2006-05-18 13:48:12 -07:00
test-remove.out remove: rewrite to be ~400x faster, bit more friendly 2006-05-18 13:48:12 -07:00
test-rename Enable path validation for copy, rename, debugwalk and other canonpath users. 2006-03-19 14:53:58 +01:00
test-rename.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-revert revert: fix corner case found by faheem mitha. 2006-05-11 22:10:47 -07:00
test-revert-unknown Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-revert-unknown.out small changes to revert command. 2006-04-03 10:02:09 -07:00
test-revert.out revert: better fix for not printing 'reverting' message 2006-06-07 13:16:25 -07:00
test-ro-message deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-ro-message.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-rollback deprecate undo command, replace with rollback command. 2006-05-08 14:19:05 -07:00
test-rollback.out deprecate undo command, replace with rollback command. 2006-05-08 14:19:05 -07:00
test-simple-update Don't use 'set -x', fix exports, sed and hexdump usage for Solaris. 2005-07-29 15:19:43 +01:00
test-simple-update.out Corrected test output for deprecated addremove command. 2006-05-03 10:18:52 +02:00
test-ssh add support for streaming clone. 2006-07-14 11:17:22 -07:00
test-ssh.out add support for streaming clone. 2006-07-14 11:17:22 -07:00
test-static-http tests: record few more daemon pids to be safe 2006-07-06 11:49:19 -07:00
test-static-http.out replace old-http:// syntax by static-http:// and deprecate the redundant hg:// 2006-06-14 21:53:42 +02:00
test-status Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-status.out Added test for relative paths and all status flags for 'hg status' 2006-01-17 16:00:55 +01:00
test-symlinks Fix issue 165: `hg status' with abs path containing a symlink-to-dir fails 2006-04-21 16:09:43 -07:00
test-symlinks.out Corrected test output for deprecated addremove command. 2006-05-03 10:18:52 +02:00
test-tag Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-tag.out Don't abort when backup files already exist. Don't allow alternative names. 2006-04-01 11:58:50 +02:00
test-tags fix parsing of tags. make parse errors useful. add new tag tests. 2006-05-18 23:31:12 -07:00
test-tags.out fix parsing of tags. make parse errors useful. add new tag tests. 2006-05-18 23:31:12 -07:00
test-ui-config Allow using default values with ui.configlist, too, and add a test for this. 2006-06-26 22:44:48 +02:00
test-ui-config.out Allow using default values with ui.configlist, too, and add a test for this. 2006-06-26 22:44:48 +02:00
test-unrelated-pull update test for unrelated repo. 2006-03-14 23:00:45 -08:00
test-unrelated-pull.out add merge command. means same thing as "update -m". 2006-03-29 10:27:16 -08:00
test-up-local-change deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-up-local-change.out Adjusted test output to changed abort message of 'hg merge' (from 37579062eb39) 2006-07-03 19:28:31 +02:00
test-update-reverse Use 'hg ci -d "1000000 0"' in tests to circumvent problem with leading zero. 2006-03-13 13:05:41 +01:00
test-update-reverse.out Make hg update more verbose by default (issue12) 2006-05-02 18:44:02 +02:00
test-walk Enable path validation for copy, rename, debugwalk and other canonpath users. 2006-03-19 14:53:58 +01:00
test-walk.out Corrected test output for deprecated addremove command. 2006-05-03 10:18:52 +02:00
test-webraw tests: add timeouts, make run-tests.py clean up dead daemon processes 2006-07-06 11:45:34 -07:00
test-webraw.out test-webraw: do not store hostname in test output 2006-06-30 22:04:02 -07:00
tinyproxy.py http: fix many problems with url parsing and auth. added proxy test. 2006-05-22 15:42:49 -07:00

A simple testing framework

To run the tests, do:

cd tests/
python run-tests.py

This finds all scripts in the test directory named test-* and executes
them. The scripts can be either shell scripts or Python. Each test is
run in a temporary directory that is removed when the test is complete.

A test-<x> succeeds if the script returns success and its output
matches test-<x>.out. If the new output doesn't match, it is stored in
test-<x>.err.

There are some tricky points here that you should be aware of when
writing tests:

- hg commit and hg merge want user interaction

  for commit use -m "text"
  for hg merge, set HGMERGE to something noninteractive (like true or merge)

- changeset hashes will change based on user and date which make
  things like hg history output change

  use commit -m "test" -u test -d "1000000 0"

- diff will show the current time

  use hg diff | sed "s/\(\(---\|+++\) [a-zA-Z0-9_/.-]*\).*/\1/" to strip
  dates