From: Alexey Tourbin <at@altlinux.ru>
To: ALT Devel discussion list <devel@altlinux.ru>
Subject: [devel] Re: test binary perl modules
Date: Tue, 3 Aug 2004 23:10:45 +0400
Message-ID: <20040803191044.GD3180@solemn.turbinal.org> (raw)
In-Reply-To: <410F591A.2060701@syktsu.ru>
[-- Attachment #1: Type: text/plain, Size: 4035 bytes --]
On Tue, Aug 03, 2004 at 01:21:30PM +0400, Vladimir Lettiev wrote:
> >У перла как бы всё время немножко едет ABI. Поэтому часть модулей,
> >собранных с более ранним перлом, может перестать работать (зависимость
> >на libperl.so.5.8 не является достаточно жёсткой). Однако же такие
> >модули успешно пересобираются с новым перлом.
>
> Чего-то я не понимаю. Идём по ссылке
> http://search.cpan.org/~nwclark/perl-5.8.5/pod/perl585delta.pod
> И видим "There are no changes incompatible with 5.8.4.". Думаете обманывают?
Могут обмануть. :)
При обновлении perl-5.8.0 -> perl-5.8.1 перестали работать некоторые
модули, собранные с perl-5.8.0 (в частности, HTML::Parser), хотя
бинарная совместимость подразумевалась. Это обнаружили в Debian Team.
mod_perl при обновлении перла тоже иногда подвержен segfault'ам.
> >Как определить модули, которые перестали работать после обновления
> >перла? У модулей есть тесты, которые выполняются на стадии сборки.
> >Можно было бы паковать их в RPM пакеты. А можно придумать механизм,
> >который извлекает эти тесты из perl-*.src.rpm и выполняет.
>
> Нужно придумать такой механизм и проверить все модули. Если окажутся
> нерабочие, повесить на них баги.
Нужно тестировать уже установленный, а не свежесобранный модуль.
$ rpm -bc ~/RPM/SPECS/perl-Bit-Vector.spec
...
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00____version....ok
t/01________new....ok
t/02____destroy....ok
t/03_operations....ok
t/04__functions....ok
t/05_____primes....ok
t/06_____subset....ok
t/07____compare....ok
t/08_____resize....ok
t/09_parameters....ok
t/10__intervals....ok
t/11______shift....ok
t/12_____string....ok
t/13__increment....ok
t/14______empty....ok
t/15________add....ok
t/16___subtract....ok
t/17________gcd....ok
t/28__chunklist....ok
t/30_overloaded....ok
All tests successful.
...
$
Это протестировался свежесобранный модуль.
Чтобы протестировать уже установленный модуль, нужно убрать из команды
blib/lib и blib/arch:
$ cd ~/RPM/BUILD/Bit-Vector-6.3
$ PERL_DL_NONLAZY=1 /usr/bin/perl -MExtUtils::Command::MM -e test_harness */*.t
t/00____version....ok
t/01________new....ok
...
All tests successful.
$
А это протестировался уже установленный perl-Bit-Vector-6.3-alt2.
Т.е. он продолжает работать, несмотря на то, что был собран с perl-5.8.0.
Действительно, в тестах был задействован уже установленный модуль:
$ PERL_DL_NONLAZY=1 filereq /dev/stdout /usr/bin/perl -MExtUtils::Command::MM -e test_harness */*.t | grep Bit/Vector
/usr/lib/perl5/vendor_perl/i386-linux/Bit/Vector.pm
/usr/lib/perl5/vendor_perl/i386-linux/Bit/Vector/Overload.pm
/usr/lib/perl5/vendor_perl/i386-linux/auto/Bit/Vector
/usr/lib/perl5/vendor_perl/i386-linux/auto/Bit/Vector/Vector.so
$
Поэтому для проверки уже собранных модулей можно сделать примерно следущее:
$ rpm -bp --define '__spec_prep_post PERL_DL_NONLAZY=1 %__perl -MExtUtils::Command::MM -e test_harness */*.t' ~/RPM/SPECS/perl-Bit-Vector.spec
...
Source #0 (Bit-Vector-6.3.tar.gz):
+ /bin/gzip -dc /home/at/RPM/SOURCES/Bit-Vector-6.3.tar.gz
+ /bin/tar -xf -
+ cd Bit-Vector-6.3
+ /bin/chmod -Rf u+rwX,go-w .
+ PERL_DL_NONLAZY=1
+ /usr/bin/perl -MExtUtils::Command::MM -e test_harness t/00____version.t t/01________new.t t/02____destroy.t t/03_operations.t t/04__functions.t t/05_____primes.t t/06_____subset.t t/07____compare.t
t/08_____resize.t t/09_parameters.t t/10__intervals.t t/11______shift.t t/12_____string.t t/13__increment.t t/14______empty.t t/15________add.t t/16___subtract.t t/17________gcd.t t/28__chunklist.t t/30_overloaded.t
t/00____version....ok
...
All tests successful.
Files=20, Tests=67417, 120 wallclock secs (12.22 cusr + 0.43 csys = 12.65 CPU)
$
Т.е. определили команду __spec_prep_post, которая будет выполняться
сразу после %setup.
Теперь надо подумать, как это всё автоматизировать.
> --
> С уважением, Владимир Леттиев aka crux <crux@syktsu.ru>
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2004-08-03 19:10 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-02 11:32 [devel] Master 2.4: final countdown Sergey Bolshakov
2004-08-02 11:46 ` Klimchev Konstantin
2004-08-02 12:03 ` Sergey Bolshakov
2004-08-02 12:45 ` Klimchev Konstantin
2004-08-02 13:34 ` Alexei Takaseev
2004-08-02 12:49 ` [devel] sim will be absent (was: Master 2.4: final countdown) Sergey V Turchin
2004-08-02 15:06 ` [devel] Master 2.4: final countdown Yura Zotov
2004-08-02 16:29 ` [devel] " Alexey Tourbin
2004-08-02 18:36 ` Vladimir Lettiev
2004-08-02 18:51 ` Alexey Tourbin
2004-08-03 7:48 ` Sergey V Turchin
2004-08-03 8:44 ` Dmitry V. Levin
2004-08-03 8:41 ` Michael Shigorin
2004-08-03 9:21 ` Vladimir Lettiev
2004-08-03 10:40 ` Sergey V Turchin
2004-08-03 19:10 ` Alexey Tourbin [this message]
2004-08-03 21:22 ` [devel] Re: test binary perl modules Michael Shigorin
2004-08-03 18:38 ` [devel] Master 2.4: final countdown Dmitry V. Levin
2004-08-04 7:10 ` Sviataslau Svirydau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040803191044.GD3180@solemn.turbinal.org \
--to=at@altlinux.ru \
--cc=devel@altlinux.ru \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git