diff -r 7d54a538dd1e -r 2db0aca03a88 tests/test-extension-isolation.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-extension-isolation.t Tue Apr 09 20:45:36 2019 +0200 @@ -0,0 +1,171 @@ +============================ +Testing extensions isolation +============================ + +In this test case, we check that a repository using the extensions can co-exist +with a repository not using the extension. + + $ . $TESTDIR/testlib/common.sh + +Setup +===== + +Create repo + + $ hg init repo-evo + $ cat > repo-evo/.hg/hgrc << EOF + > [extensions] + > evolve= + > EOF + $ hg init repo-topic + $ cat > repo-topic/.hg/hgrc << EOF + > [extensions] + > topic= + > EOF + $ hg init repo-both + $ cat > repo-both/.hg/hgrc << EOF + > [extensions] + > evolve= + > topic= + > EOF + $ hg init repo-no-ext + +check setup + + $ hg -R repo-evo help -e evolve | head -n 1 + warning: --repository ignored + evolve extension - extends Mercurial feature related to Changeset Evolution + $ hg -R repo-both help -e evolve | head -n 1 + warning: --repository ignored + evolve extension - extends Mercurial feature related to Changeset Evolution + $ hg -R repo-no-ext help -e evolve + warning: --repository ignored + abort: no such help topic: evolve + (try 'hg help --keyword evolve') + [255] + $ hg -R repo-no-ext help -e topic + warning: --repository ignored + abort: no such help topic: topic + (try 'hg help --keyword topic') + [255] + +start hgweb dir for all repo + + $ cat > hgweb.conf << EOF + > [paths] + > / = * + > EOF + + $ hg serve -p $HGPORT -d --pid-file=hg.pid --web-conf hgweb.conf -A access.log -E error.log + $ cat hg.pid >> $DAEMON_PIDS + +Test isolation +-------------- + +As of 4.9 (and previous version). It seems like extensions are displayed as +enabled even for repository where they are not supposed to be. See the output +tagged `no-false`. + +(however, topic and evolve are not supposed to affect other repository as shown +in the rest of this test). + + $ get-with-headers.py $LOCALIP:$HGPORT 'repo-no-ext/help/extensions' | grep 'enabled extensions' -A 7 + [1] + $ get-with-headers.py $LOCALIP:$HGPORT 'repo-evo/help/extensions' | grep 'enabled extensions' -A 7 + enabled extensions: +

+
+
evolve +
extends Mercurial feature related to Changeset Evolution +
+

+ disabled extensions: + $ get-with-headers.py $LOCALIP:$HGPORT 'repo-topic/help/extensions' | grep 'enabled extensions' -A 7 + enabled extensions: +

+
+
evolve (no-false !) +
extends Mercurial feature related to Changeset Evolution (no-false !) +
topic +
support for topic branches +
+ $ get-with-headers.py $LOCALIP:$HGPORT 'repo-both/help/extensions' | grep 'enabled extensions' -A 9 + enabled extensions: +

+
+
evolve +
extends Mercurial feature related to Changeset Evolution +
topic +
support for topic branches +
+

+ disabled extensions: + $ get-with-headers.py $LOCALIP:$HGPORT 'repo-no-ext/help/extensions' | grep 'enabled extensions' -A 9 + enabled extensions: (no-false !) +

(no-false !) +
(no-false !) +
evolve (no-false !) +
extends Mercurial feature related to Changeset Evolution (no-false !) +
topic (no-false !) +
support for topic branches (no-false !) +
(no-false !) +

(no-false !) + disabled extensions: (no-false !) + +make sure repos don't affect each other (and check both ways) + +Check evolve isolation +----------------------- + + $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-no-ext | egrep 'topics|evoext' + [1] + $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-evo | egrep 'topics|evoext' + _evoext_getbundle_obscommon + _evoext_obshash_0 + _evoext_obshash_1 + _evoext_obshashrange_v1 + $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-no-ext | egrep 'topics|evoext' + [1] + +Check topic isolation +--------------------- + + $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-no-ext | egrep 'topics|evoext' + [1] + $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-topic | egrep 'topics|evoext' + topics + $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-no-ext | egrep 'topics|evoext' + [1] + +Check coupled isolation +----------------------- + + $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-no-ext | egrep 'topics|evoext' + [1] + $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-both | egrep 'topics|evoext' + _evoext_getbundle_obscommon + _evoext_obshash_0 + _evoext_obshash_1 + _evoext_obshashrange_v1 + topics + $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-evo | egrep 'topics|evoext' + _evoext_getbundle_obscommon + _evoext_obshash_0 + _evoext_obshash_1 + _evoext_obshashrange_v1 + $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-topic | egrep 'topics|evoext' + topics + $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-evo | egrep 'topics|evoext' + _evoext_getbundle_obscommon + _evoext_obshash_0 + _evoext_obshash_1 + _evoext_obshashrange_v1 + $ hg debugcapabilities http://$LOCALIP:$HGPORT/repo-no-ext | egrep 'topics|evoext' + [1] + +Final cleanup +------------- + + $ cat error.log + + $ $RUNTESTDIR/killdaemons.py $DAEMON_PIDS