--- a/tests/test-rhg.t Mon Mar 01 16:18:42 2021 +0100
+++ b/tests/test-rhg.t Mon Mar 01 20:36:06 2021 +0100
@@ -1,9 +1,10 @@
#require rust
Define an rhg function that will only run if rhg exists
+ $ RHG="$RUNTESTDIR/../rust/target/release/rhg"
$ rhg() {
- > if [ -f "$RUNTESTDIR/../rust/target/release/rhg" ]; then
- > "$RUNTESTDIR/../rust/target/release/rhg" "$@"
+ > if [ -f "$RHG" ]; then
+ > "$RHG" "$@"
> else
> echo "skipped: Cannot find rhg. Try to run cargo build in rust/rhg."
> exit 80
@@ -151,6 +152,27 @@
$ rhg cat -r 1 copy_of_original
original content
+Fallback to Python
+ $ rhg cat original
+ unsupported feature: `rhg cat` without `--rev` / `-r`
+ [252]
+ $ FALLBACK="--config rhg.on-unsupported=fallback"
+ $ rhg cat original $FALLBACK
+ original content
+
+ $ rhg cat original $FALLBACK --config rhg.fallback-executable=false
+ [1]
+
+ $ rhg cat original $FALLBACK --config rhg.fallback-executable=hg-non-existent
+ tried to fall back to a 'hg-non-existent' sub-process but got error $ENOENT$
+ unsupported feature: `rhg cat` without `--rev` / `-r`
+ [252]
+
+ $ rhg cat original $FALLBACK --config rhg.fallback-executable="$RHG"
+ Blocking recursive fallback. The 'rhg.fallback-executable = */rust/target/release/rhg' config points to `rhg` itself. (glob)
+ unsupported feature: `rhg cat` without `--rev` / `-r`
+ [252]
+
Requirements
$ rhg debugrequirements
dotencode