annotate tests/test-debian-packages.t @ 29196:bf7b8157c483 stable

strip: invalidate phase cache after stripping changeset (issue5235) When we remove a changeset from the changelog, the phase cache must be invalidated, otherwise it could refer to changesets that are no longer in the repo. To reproduce the failure, I created an extension querying the phase cache after the strip transaction is over. To do that, I stripped two commits with a bookmark on one of them to force another transaction (we open a transaction for moving bookmarks) after the strip transaction. Without the fix in this patch, the test leads to a stacktrace showing the issue: repair.strip(ui, repo, revs, backup) File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/repair.py", line 205, in strip tr.close() File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/transaction.py", line 44, in _active return func(self, *args, **kwds) File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/transaction.py", line 490, in close self._postclosecallback[cat](self) File "$TESTTMP/crashstrip2.py", line 4, in test [repo.changelog.node(r) for r in repo.revs("not public()")] File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/changelog.py", line 337, in node return super(changelog, self).node(rev) File "/Users/lcharignon/facebook-hg-rpms/hg-crew/mercurial/revlog.py", line 377, in node return self.index[rev][7] IndexError: revlog index out of range The situation was encountered in inhibit (evolve's repo) where we would crash following the volatile set invalidation submitted by Augie in e6f490e328635312ee214a12bc7fd3c7d46bf9ce. Before his patch the issue was masked as we were not accessing the phasecache after stripping a revision. This bug uncovered another but in histedit (see explanation in issue5235). I changed the histedit test accordingly to avoid fixing two things at once.
author Laurent Charignon <lcharignon@fb.com>
date Thu, 12 May 2016 06:13:59 -0700
parents 7f49efcaa9b4
children 3c9066ed557c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
26147
a02c22e48142 test-debian-packages: new test for testing construction of debian packages
Augie Fackler <augie@google.com>
parents:
diff changeset
1 #require test-repo slow debhelper
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
2
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
3 Ensure debuild doesn't run the testsuite, as that could get silly.
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
4 $ DEB_BUILD_OPTIONS=nocheck
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
5 $ export DEB_BUILD_OPTIONS
26147
a02c22e48142 test-debian-packages: new test for testing construction of debian packages
Augie Fackler <augie@google.com>
parents:
diff changeset
6 $ OUTPUTDIR=`pwd`
a02c22e48142 test-debian-packages: new test for testing construction of debian packages
Augie Fackler <augie@google.com>
parents:
diff changeset
7 $ export OUTPUTDIR
a02c22e48142 test-debian-packages: new test for testing construction of debian packages
Augie Fackler <augie@google.com>
parents:
diff changeset
8
a02c22e48142 test-debian-packages: new test for testing construction of debian packages
Augie Fackler <augie@google.com>
parents:
diff changeset
9 $ cd "$TESTDIR"/..
a02c22e48142 test-debian-packages: new test for testing construction of debian packages
Augie Fackler <augie@google.com>
parents:
diff changeset
10 $ make deb > $OUTPUTDIR/build.log 2>&1
a02c22e48142 test-debian-packages: new test for testing construction of debian packages
Augie Fackler <augie@google.com>
parents:
diff changeset
11 $ cd $OUTPUTDIR
a02c22e48142 test-debian-packages: new test for testing construction of debian packages
Augie Fackler <augie@google.com>
parents:
diff changeset
12 $ ls *.deb
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
13 mercurial-common_*.deb (glob)
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
14 mercurial_*.deb (glob)
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
15 main deb should have .so but no .py
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
16 $ dpkg --contents mercurial_*.deb | egrep '(localrepo|parsers)'
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
17 * ./usr/lib/python2.7/dist-packages/mercurial/parsers*.so (glob)
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
18 mercurial-common should have py but no .so or pyc
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
19 $ dpkg --contents mercurial-common_*.deb | egrep '(localrepo|parsers)'
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26147
diff changeset
20 * ./usr/lib/python2.7/dist-packages/mercurial/localrepo.py (glob)