Mercurial > evolve
view tests/testlib/exchange-obsmarker-util.sh @ 5917:94aed9c7ce69 stable
next: refactor two if blocks into an if-elif block
We already checked the value of `needevolve and opts['evolve']` in the first if
block above. In the first one it need to be True, in the second it needs to be
False for the statements to execute. Since not(a or b) = not a and not b, we
can join the second if block to the first one with an elif while dropping the
explicit check.
For me, this works better, because we're doing the same thing in both of these
blocks (checking if working copy is dirty or not).
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Sat, 15 May 2021 20:40:19 +0800 |
parents | 51a1dd295fe0 |
children |
line wrap: on
line source
#!/bin/sh # setup config and various utility to test obsolescence marker exchanges tests cat >> $HGRCPATH <<EOF [web] # We test http pull and push, drop authentication requirement push_ssl = false allow_push = * [ui] # simpler log output logtemplate ="{node|short} ({phase}): {desc}\n" [phases] # non publishing server publish=False [experimental] # reduce output changes bundle2-output-capture=True # enable evolution evolution=all evolution.effect-flags = yes [extensions] # we need to strip some changeset for some test cases hgext.strip= [alias] # fix date used to create obsolete markers. debugobsolete=debugobsolete -d '0 0' [extensions] hgext.strip= EOF echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH mkcommit() { echo "$1" > "$1" hg add "$1" hg ci -m "$1" } getid() { hg log --hidden --template '{node}\n' --rev "$1" } setuprepos() { echo creating test repo for test case $1 mkdir $1 cd $1 echo - pulldest hg init pushdest cd pushdest mkcommit O hg phase --public . cd .. echo - main hg clone -q pushdest main echo - pushdest hg clone -q main pulldest echo 'cd into `main` and proceed with env setup' } inspect_obsmarkers (){ # This exist as its own function to help the evolve extension reuse the tests as is. # The evolve extensions version will includes more advances query (eg: # related to obsmarkers discovery) to this. echo 'obsstore content' echo '================' hg debugobsolete echo 'obshashtree' echo '===========' hg debugobsrelsethashtree echo 'obshashrange' echo '============' hg debugobshashrange --subranges --rev 'head()' } dotest() { # dotest TESTNAME [TARGETNODE] [PUSHFLAGS+] # # test exchange for the given test case. # # This function performs push and pull in all directions through all # protocols and display the resulting obsolescence markers on all sides. testcase=$1 shift target="$1" if [ $# -gt 0 ]; then shift fi targetnode="" desccall="" cd $testcase echo "## Running testcase $testcase" if [ -n "$target" ]; then desccall="desc("\'"$target"\'")" targetnode="`hg -R main id -qr \"$desccall\"`" echo "# testing echange of \"$target\" ($targetnode)" fi echo "## initial state" echo "# obstore: main" hg -R main debugobsolete | sort echo "# obstore: pushdest" hg -R pushdest debugobsolete | sort echo "# obstore: pulldest" hg -R pulldest debugobsolete | sort if [ -n "$target" ]; then echo "## pushing \"$target\"" from main to pushdest hg -R main push -r "$desccall" $@ pushdest else echo "## pushing from main to pushdest" hg -R main push pushdest $@ fi echo "## post push state" echo "# obstore: main" hg -R main debugobsolete | sort echo "# obstore: pushdest" hg -R pushdest debugobsolete | sort echo "# obstore: pulldest" hg -R pulldest debugobsolete | sort if [ -n "$target" ]; then echo "## pulling \"$targetnode\"" from main into pulldest hg -R pulldest pull -r $targetnode $@ main else echo "## pulling from main into pulldest" hg -R pulldest pull main $@ fi echo "## post pull state" echo "# obstore: main" hg -R main debugobsolete | sort echo "# obstore: pushdest" hg -R pushdest debugobsolete | sort echo "# obstore: pulldest" hg -R pulldest debugobsolete | sort cd .. }