From: Ian Jackson Date: Sat, 30 May 2015 12:28:21 +0000 (+0100) Subject: Test suite: Use stunt dpkg-parsechangelog X-Git-Tag: debian/0.30~134 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=cbe483c32df06d2babbcf99d7ee947c645e7aea3;p=dgit.git Test suite: Use stunt dpkg-parsechangelog This program takes 16ms instead of ~700ms on my computer. This saves 15s out of 100s for the debpolicy-newreject test (in its current state). Currently this is only used by various things in devscripts because dpkg-source uses /usr/lib/dpkg/parsechangelog/debian directly via a Perl module Dpkg::Changelog::Parse. --- diff --git a/tests/tests/debpolicy-newreject b/tests/tests/debpolicy-newreject index f1611497..c6260a72 100755 --- a/tests/tests/debpolicy-newreject +++ b/tests/tests/debpolicy-newreject @@ -2,6 +2,8 @@ set -e . tests/lib +t-tstunt dpkg-parsechangelog + t-debpolicy t-prep-newpackage example 1.0 diff --git a/tests/tstunt/dpkg-parsechangelog b/tests/tstunt/dpkg-parsechangelog new file mode 100755 index 00000000..2e0360da --- /dev/null +++ b/tests/tstunt/dpkg-parsechangelog @@ -0,0 +1,53 @@ +#!/usr/bin/perl -w +# +# In an example: +# +# $ time dpkg-parsechangelog >/dev/null +# +# real 0m0.712s +# user 0m0.656s +# sys 0m0.048s +# $ time ~/things/Dgit/dgit/tests/tstunt/dpkg-parsechangelog >/dev/null +# +# real 0m0.016s +# user 0m0.000s +# sys 0m0.012s +# $ + +die if @ARGV; + +use strict; +open C, "debian/changelog" or die $!; + +$!=0; $_ = ; +m/^(\S+) \(([^()]+)\) (\S+)\; urgency=(\S+)$/ or die "$!, $_ ?"; +print <; + if (m/^ -- ([^<>]+\<\S+\>) (\w[^<>]+\w)$/) { + print <