sapling/tests
Alexis S. L. Carvalho 16c4d42a8d load extensions only after the ui object has been completely initialized
This fixes a traceback printed when hg tries to print another traceback
after an extension fails to be loaded.  Add a test for that.
2006-08-22 22:49:30 -03: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 Merge with tah 2006-08-22 10:18:40 +02:00
run-tests.py Clear contents of global hgrc for tests before running each test. 2006-08-22 09:55:14 +02:00
test-abort-checkin Make tests append settings to $HGRCPATH instead of $HGTMP/.hgrc 2006-08-22 10:08:42 +02:00
test-abort-checkin.out Add test mq keeping a reference to localrepo which can't remove journal on exit. 2006-07-28 08:59:06 +02:00
test-addremove addremove: add -s/--similarity option 2006-08-18 22:13:58 -07:00
test-addremove.out addremove: add -s/--similarity option 2006-08-18 22:13:58 -07:00
test-annotate make new tests executable. 2006-08-16 10:53:01 -07:00
test-annotate.out tests: new test for "hg annotate" 2006-08-15 21:22:26 +03: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 addremove: do not deprecate. 2006-07-23 09:04:14 -07:00
test-backout backout: allow backout of merge changeset with --parent option. 2006-07-14 23:19:15 -07:00
test-backout.out fix output of test-backout. 2006-08-04 10:37:40 -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-extension load extensions only after the ui object has been completely initialized 2006-08-22 22:49:30 -03:00
test-bad-extension.out load extensions only after the ui object has been completely initialized 2006-08-22 22:49:30 -03: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-bisect Make tests append settings to $HGRCPATH instead of $HGTMP/.hgrc 2006-08-22 10:08:42 +02:00
test-bisect.out tests: new test for the bisect extension 2006-08-15 21:49:49 +03:00
test-bundle pull: allow to pull from bundle file without need for bundle: syntax 2006-07-30 21:46:38 -07:00
test-bundle.out pull: allow to pull from bundle file without need for bundle: syntax 2006-07-30 21:46:38 -07: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 Only show long hashes with --debug, not --verbose 2006-08-20 22:51:56 -05: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 revert: require --all to revert all files. 2006-08-21 09:44:52 -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 Only show long hashes with --debug, not --verbose 2006-08-20 22:51:56 -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-diff-subdir make test-diff-subdir executable. 2006-08-13 15:03:48 -07:00
test-diff-subdir.out tests: new test for hg diff of a subdirectory only 2006-08-13 23:00:18 +03: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-extdiff Make tests append settings to $HGRCPATH instead of $HGTMP/.hgrc 2006-08-22 10:08:42 +02:00
test-extdiff.out Fixed test-extdiff. 2006-08-15 16:04:47 +02:00
test-fetch Make tests append settings to $HGRCPATH instead of $HGTMP/.hgrc 2006-08-22 10:08:42 +02:00
test-fetch.out test-fetch: make output stable 2006-08-08 16:23:02 -07:00
test-filebranch deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-filebranch.out Only show long hashes with --debug, not --verbose 2006-08-20 22:51:56 -05: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-git-export sed portability fixes 2006-08-16 19:50:21 -07:00
test-git-export.out Add diff --git option 2006-08-14 22:48:03 -07:00
test-git-import Tests for git import 2006-08-11 16:56:31 -07:00
test-git-import.out Unify mq and hg patch invocation. 2006-08-15 11:28:50 -07:00
test-globalopts Fix some tests for portability. 2006-08-09 12:05:40 -07:00
test-globalopts.out Only show long hashes with --debug, not --verbose 2006-08-20 22:51:56 -05:00
test-grep grep: add --follow support. 2006-08-12 15:01:46 -07:00
test-grep.out grep: add --follow support. 2006-08-12 15:01:46 -07:00
test-help Further help improvements: 2005-08-06 15:43:12 +01:00
test-help.out merge. 2006-08-18 21:17:28 -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 hooks: add url to changegroup, incoming, prechangegroup, pretxnchangegroup hooks 2006-07-25 13:50:32 -07:00
test-hook.out tag: shorten hash in default commit message 2006-08-20 23:52:52 -05:00
test-http Allow for MB/sec transfer rates in test-http 2006-08-21 16:33:43 -07:00
test-http-proxy rename stream hgrc option to compressed. 2006-07-16 10:04:16 -07:00
test-http-proxy.out add support for streaming clone. 2006-07-14 11:17:22 -07:00
test-http.out Allow for MB/sec transfer rates in test-http 2006-08-21 16:33:43 -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 Fix some tests for portability. 2006-08-09 12:05:40 -07:00
test-import.out Unify mq and hg patch invocation. 2006-08-15 11:28: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-issue322 fix issue 322. 2006-08-18 21:03:29 -07:00
test-issue322.out fix issue 322. 2006-08-18 21:03:29 -07: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-log Test for log --prune. 2006-08-14 10:27:02 -07:00
test-log.out Only show long hashes with --debug, not --verbose 2006-08-20 22:51:56 -05:00
test-merge1 deprecate 'update -m'. use 'merge' instead. 2006-05-14 21:07:34 -07:00
test-merge1.out merge: simplify working dir manifest generation 2006-08-22 17:08:38 -05: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 Merge with crew, fix most tests 2006-08-09 13:55:18 -05: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 Merge with crew, fix most tests 2006-08-09 13:55:18 -05:00
test-merge-default merge with other head by default, not tip. 2006-08-15 11:38:07 -07:00
test-merge-default.out merge with other head by default, not tip. 2006-08-15 11:38:07 -07:00
test-merge-revert revert: require --all to revert all files. 2006-08-21 09:44:52 -07:00
test-merge-revert2 revert: require --all to revert all files. 2006-08-21 09:44:52 -07: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-mq Make tests append settings to $HGRCPATH instead of $HGTMP/.hgrc 2006-08-22 10:08:42 +02:00
test-mq-guards Make tests append settings to $HGRCPATH instead of $HGTMP/.hgrc 2006-08-22 10:08:42 +02:00
test-mq-guards.out mq: apply patch is any posative guard matches 2006-08-10 17:18:55 -07:00
test-mq-qdiff Make tests append settings to $HGRCPATH instead of $HGTMP/.hgrc 2006-08-22 10:08:42 +02:00
test-mq-qdiff.out tests: new test for mq qdiff command 2006-08-15 20:59:55 +03:00
test-mq-qnew-twice Make tests append settings to $HGRCPATH instead of $HGTMP/.hgrc 2006-08-22 10:08:42 +02:00
test-mq-qnew-twice.out Fix test-mq-qnew-twice exit code and output. 2006-07-28 09:00:30 +02:00
test-mq-qrefresh-replace-log-message Make tests append settings to $HGRCPATH instead of $HGTMP/.hgrc 2006-08-22 10:08:42 +02:00
test-mq-qrefresh-replace-log-message.out MQ: uniformise message and logfile option. 2006-07-26 20:11:54 +02:00
test-mq-qsave Make tests append settings to $HGRCPATH instead of $HGTMP/.hgrc 2006-08-22 10:08:42 +02:00
test-mq-qsave.out Add basic qsave/qrestore test. 2006-08-07 14:48:24 -07:00
test-mq.out Teach mq about git patches 2006-08-16 19:49:45 -07:00
test-nested-repo revert: require --all to revert all files. 2006-08-21 09:44:52 -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 tag: shorten hash in default commit message 2006-08-20 23:52:52 -05: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 addremove: do not deprecate. 2006-07-23 09:04:14 -07: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 hooks: add url to changegroup, incoming, prechangegroup, pretxnchangegroup hooks 2006-07-25 13:50:32 -07:00
test-push-http.out hooks: add url to changegroup, incoming, prechangegroup, pretxnchangegroup hooks 2006-07-25 13:50:32 -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 revert: require --all to revert all files. 2006-08-21 09:44:52 -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: require --all to revert all files. 2006-08-21 09:44:52 -07:00
test-revert-unknown revert: require --all to revert all files. 2006-08-21 09:44:52 -07:00
test-revert-unknown.out small changes to revert command. 2006-04-03 10:02:09 -07:00
test-revert.out revert: require --all to revert all files. 2006-08-21 09:44:52 -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 addremove: do not deprecate. 2006-07-23 09:04:14 -07:00
test-ssh hooks: add url to changegroup, incoming, prechangegroup, pretxnchangegroup hooks 2006-07-25 13:50:32 -07:00
test-ssh.out hooks: add url to changegroup, incoming, prechangegroup, pretxnchangegroup hooks 2006-07-25 13:50:32 -07:00
test-static-http hooks: add url to changegroup, incoming, prechangegroup, pretxnchangegroup hooks 2006-07-25 13:50:32 -07:00
test-static-http.out hooks: add url to changegroup, incoming, prechangegroup, pretxnchangegroup hooks 2006-07-25 13:50:32 -07:00
test-status status: add -c (clean) and -A (all files) options 2006-07-20 16:21:07 -07:00
test-status.out status: add -c (clean) and -A (all files) options 2006-07-20 16:21:07 -07:00
test-strict Make test-strict append to $HGRCPATH, like other tests do since e6e7d87cb388. 2006-08-22 10:20:21 +02:00
test-strict.out Add ui.strict config item. 2006-08-21 21:59:29 -07: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 addremove: do not deprecate. 2006-07-23 09:04:14 -07:00
test-tag change 'hg tag' to tag the parent rev instead of tip 2006-07-21 01:40:07 +02:00
test-tag.out tag: shorten hash in default commit message 2006-08-20 23:52:52 -05:00
test-tags Only show long hashes with --debug, not --verbose 2006-08-20 22:51:56 -05:00
test-tags.out tag: shorten hash in default commit message 2006-08-20 23:52:52 -05:00
test-trusted.py Only read .hg/hgrc files from trusted users/groups 2006-08-22 20:45:03 -03:00
test-trusted.py.out Only read .hg/hgrc files from trusted users/groups 2006-08-22 20:45:03 -03: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 merge: combine merge and get lists 2006-08-22 18:06:17 -05: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 Merge with crew, fix most tests 2006-08-09 13:55:18 -05: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 addremove: do not deprecate. 2006-07-23 09:04:14 -07: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 -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
                    -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/"
  to strip dates

- You can append your own hgrc settings to the file that the environment
  variable HGRCPATH points to. This file is cleared before running a test.

You also need to be careful that the tests are portable from one platform
to another.  You're probably working on Linux, where the GNU toolchain has
more (or different) functionality than on MacOS, *BSD, Solaris, AIX, etc.
While testing on all platforms is the only sure-fire way to make sure that
you've written portable code, here's a list of problems that have been
found and fixed in the tests.  Another, more comprehensive list may be
found in the GNU Autoconf manual, online here:

    http://www.gnu.org/software/autoconf/manual/html_node/Portable-Shell.html

sh:

The Bourne shell is a very basic shell.  /bin/sh on Linux is typically
bash, which even in Bourne-shell mode has many features that Bourne shells
on other Unix systems don't have (and even on Linux /bin/sh isn't
guaranteed to be bash).  You'll need to be careful about constructs that
seem ubiquitous, but are actually not available in the least common
denominator.  While using another shell (ksh, bash explicitly, posix shell,
etc.) explicitly may seem like another option, these may not exist in a
portable location, and so are generally probably not a good idea.  You may
find that rewriting the test in python will be easier.

- don't use pushd/popd; save the output of "pwd" and use "cd" in place of
  the pushd, and cd back to the saved pwd instead of popd.

- don't use math expressions like let, (( ... )), or $(( ... )); use "expr"
  instead.

grep:

- don't use the -q option; redirect stdout to /dev/null instead.

- don't use extended regular expressions with grep; use egrep instead, and
  don't escape any regex operators.

sed:

- make sure that the beginning-of-line matcher ("^") is at the very
  beginning of the expression -- it may not be supported inside parens.

echo:

- echo may interpret "\n" and print a newline; use printf instead if you
  want a literal "\n" (backslash + n).

false:

- false is guaranteed only to return a non-zero value; you cannot depend on
  it being 1.  On Solaris in particular, /bin/false returns 255.  Rewrite
  your test to not depend on a particular return value, or create a
  temporary "false" executable, and call that instead.

diff:

- don't use the -N option.  There's no particularly good workaround short
  of writing a reasonably complicated replacement script, but substituting
  gdiff for diff if you can't rewrite the test not to need -N will probably
  do.