* [devel] Пишем тесты под repocop. пример 1. проверка init скриптов.
@ 2008-02-28 9:48 Igor Vlasenko
2008-02-28 9:58 ` Mikhail Gusarov
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Igor Vlasenko @ 2008-02-28 9:48 UTC (permalink / raw)
To: devel
Пример использования repocop для соблюдения полиси.
Денис (mithraen@) недавно писал, как хорошо было бы внедрить
LSB заголовки во все init- скрипты, Поскольку никто не возражал,
налицо консенсус :) но воз и ныне там. Почему?
Поскольку на продвижение LSB заголовков нужно тратить много
времени и усилий. Нужно писать в devel@, обьяснить на wiki,
мониторить ситуацию в сизифе (придется писать свои скрипты)
и тормошить майнтайнеров (писать лично или в багзиллу).
repocop позволяет автоматизировать последние две задачи,
тем самым разгрузив, в данном примере, Дениса.
что делаем: пишем тест под robocop, пакуем его в rpm пакет,
и если никто в devel@ не протестует против LSB заголовков
во всех init- скриптах, то ответственный за prometeus инсталлирует
этот тест на sisyphus.ru.
После этого на странице отчета по тесту можно посмотреть списки
пакетов с и без LSB заголовков в init- скриптах, а на страничке
каждого майнтайнера возле "плохого" пакета загорается желтый шарик -
знак того, что какой-то из юнит тестов выдает на пакет warning.
Если майнтайнеру интересно, он может пройти по ссылке на страничку
отчета repocop'а по пакету и увидеть содержательное сообщение,
написанное тестом, который ругался.
Если же майнтайнеру (глубоко) не интересно, то наличие warning, а
тем более fail, теста на пакет, как и наличие незакрытого бага в
багзилле, может быть формальным поводом для NMU,
Остается написать тест, и еще желательно страничку на wiki c FAQ :)
В принципе тест для примера я уже написал, он в дедале,
в пакете repocop-test-lsb-init.
В пакете сам тестовый скрипт нужно положить в
/usr/{share,%_lib}/repocop/pkgtests/<testname>/test
как он работает:
на входе в $REPOCOP_PKG_ROOT развернут какой-то rpm пакет,
тест проверяет, есть ли там init script. Если нет, выходим,
вызывая repocop-test-skip. Если есть, то проверяем, есть ли
LSB заголовок, и в зависимости от результата выходим через
repocop-test-ok или repocop-test-warn. Аргументом к этим командам
передаем осмысленное сообщение, чем именно тест не доволен.
Есть еще repocop-test-fail, но его нужно вызывать только в случае
явных багов (на sisyphus.ru пакет будет помечен красным)
Вот пример теста на shell:
#!/bin/sh
files_exist()
{
[ -e "$1" ]
}
files_exist $REPOCOP_PKG_ROOT/etc/rc.d/init.d/* ] || exec repocop-test-skip "init file not found."
STATUS=ok
MESSAGE=
for i in $REPOCOP_PKG_ROOT/etc/rc.d/init.d/*; do
filename=${i##$REPOCOP_PKG_ROOT}
if [ -x $i ]; then
HAS_INIT=`grep '# chkconfig:' $i`
HAS_LSB_INIT=`grep '### BEGIN INIT INFO' $i`
if [ -z "$HAS_LSB_INIT" ] && [ -n "$HAS_INIT" ]; then
STATUS=warn
MESSAGE="$MESSAGE$filename: lsb init header missing. "
fi
fi
done
repocop-test-$STATUS $MESSAGE
#----------------------------
Как видим, никакой мистики.
--
Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] Пишем тесты под repocop. пример 1. проверка init скриптов.
2008-02-28 9:48 [devel] Пишем тесты под repocop. пример 1. проверка init скриптов Igor Vlasenko
@ 2008-02-28 9:58 ` Mikhail Gusarov
2008-02-28 10:20 ` Igor Vlasenko
2008-02-28 10:38 ` Igor Vlasenko
2008-02-28 13:38 ` Kirill Maslinsky
2008-02-28 18:36 ` [devel] LSB startup scripts Dmitry V. Levin
2 siblings, 2 replies; 10+ messages in thread
From: Mikhail Gusarov @ 2008-02-28 9:58 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1769 bytes --]
Twas brillig at 11:48:26 28.02.2008 UTC+02 when Igor Vlasenko did gyre and gimble:
IV> что делаем: пишем тест под robocop, пакуем его в rpm пакет, и если
IV> никто в devel@ не протестует против LSB заголовков во всех init-
IV> скриптах, то ответственный за prometeus инсталлирует этот тест на
IV> sisyphus.ru.
А standalone-прогонятель этих тестов есть? Чтобы можно было поставить
себе repocop, какой-нибудь repocop-tests-current и сказать $ repocop
$MY_REPO_DIR.
А то иначе единственным средством проверки пакета будет заливка его в
Сизиф.
IV> Остается написать тест, и еще желательно страничку на wiki c FAQ :)
Я тут слегка редизайню страницу про Sisyphus на fs.i, пока живёт тут:
http://freesource.info/wiki/AltLinux/Sisyphus/NewHomePage
Собственно, ссылочку на repocop я там уже поставил, и заготовку для
страницы создал. Просьба наполнять :)
IV> как он работает: на входе в $REPOCOP_PKG_ROOT развернут какой-то
IV> rpm пакет,
Ещё хочется возможности саму rpm-ку поковырять на предмет правильности
метаданных в ней.
IV> Как видим, никакой мистики.
Спасибо за потенциально очень полезный инструмент!
--
[-- Attachment #2: Type: application/pgp-signature, Size: 188 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] Пишем тесты под repocop. пример 1. проверка init скриптов.
2008-02-28 9:58 ` Mikhail Gusarov
@ 2008-02-28 10:20 ` Igor Vlasenko
2008-02-28 10:38 ` Igor Vlasenko
1 sibling, 0 replies; 10+ messages in thread
From: Igor Vlasenko @ 2008-02-28 10:20 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Thu, Feb 28, 2008 at 03:58:58PM +0600, Mikhail Gusarov wrote:
> А standalone-прогонятель этих тестов есть? Чтобы можно было поставить
> себе repocop, какой-нибудь repocop-tests-current и сказать $ repocop
> $MY_REPO_DIR.
там сейчас standalone-прогонятель и есть, надо поставить сам repocop
и тесты к нему. вызывается
$repocop-run /var/ftp/pub/Linux/ALT/Sisyphus/files/x86_64/RPMS \
/var/ftp/pub/Linux/ALT/Sisyphus/files/noarch/RPMS
только генераторов отчетов пока нет ни единого.
простейший самодельный генератор сводного отчета -
find ~/.repocop | less :)
> IV> Остается написать тест, и еще желательно страничку на wiki c FAQ :)
>
> Я тут слегка редизайню страницу про Sisyphus на fs.i, пока живёт тут:
> http://freesource.info/wiki/AltLinux/Sisyphus/NewHomePage
>
> Собственно, ссылочку на repocop я там уже поставил, и заготовку для
> страницы создал. Просьба наполнять :)
Принято.
--
Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] Пишем тесты под repocop. пример 1. проверка init скриптов.
2008-02-28 9:58 ` Mikhail Gusarov
2008-02-28 10:20 ` Igor Vlasenko
@ 2008-02-28 10:38 ` Igor Vlasenko
1 sibling, 0 replies; 10+ messages in thread
From: Igor Vlasenko @ 2008-02-28 10:38 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Thu, Feb 28, 2008 at 03:58:58PM +0600, Mikhail Gusarov wrote:
> Ещё хочется возможности саму rpm-ку поковырять на предмет правильности
> метаданных в ней.
Это тоже есть, тесту передается путь к rpm в переменной
REPOCOP_PKG.
см. например, пакет repocop-test-altdesktop,
тест update_menus, где проверяется наличие
вызова update_menus в %post/un скриптах.
не хотел документировать лишнего без надобности :)
--
Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] Пишем тесты под repocop. пример 1. проверка init скриптов.
2008-02-28 9:48 [devel] Пишем тесты под repocop. пример 1. проверка init скриптов Igor Vlasenko
2008-02-28 9:58 ` Mikhail Gusarov
@ 2008-02-28 13:38 ` Kirill Maslinsky
2008-02-28 14:18 ` Igor Vlasenko
2008-02-28 18:36 ` [devel] LSB startup scripts Dmitry V. Levin
2 siblings, 1 reply; 10+ messages in thread
From: Kirill Maslinsky @ 2008-02-28 13:38 UTC (permalink / raw)
To: devel
On Thu, Feb 28, 2008 at 11:48:26AM +0200, Igor Vlasenko wrote:
> Пример использования repocop для соблюдения полиси.
>
> Денис (mithraen@) недавно писал, как хорошо было бы внедрить
> LSB заголовки во все init- скрипты, Поскольку никто не возражал,
> налицо консенсус :) но воз и ныне там. Почему?
> Поскольку на продвижение LSB заголовков нужно тратить много
> времени и усилий. Нужно писать в devel@, обьяснить на wiki,
> мониторить ситуацию в сизифе (придется писать свои скрипты)
> и тормошить майнтайнеров (писать лично или в багзиллу).
>
> repocop позволяет автоматизировать последние две задачи,
> тем самым разгрузив, в данном примере, Дениса.
Хорошая идея! Можно ли будет организовать еще почтовый
интерфейс оповещения мантейнеров, скажем, в sisyphus-cybertalk@ ?
--
Kirill Maslinsky
ALT Linux Team
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] Пишем тесты под repocop. пример 1. проверка init скриптов.
2008-02-28 13:38 ` Kirill Maslinsky
@ 2008-02-28 14:18 ` Igor Vlasenko
0 siblings, 0 replies; 10+ messages in thread
From: Igor Vlasenko @ 2008-02-28 14:18 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Thu, Feb 28, 2008 at 04:38:05PM +0300, Kirill Maslinsky wrote:
> Хорошая идея! Можно ли будет организовать еще почтовый
> интерфейс оповещения мантейнеров, скажем, в sisyphus-cybertalk@ ?
Да, конечно, можно, но лучше сделать, чем обещать.
Вот подкрутим к prometeus сначала...
--
Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] LSB startup scripts
2008-02-28 9:48 [devel] Пишем тесты под repocop. пример 1. проверка init скриптов Igor Vlasenko
2008-02-28 9:58 ` Mikhail Gusarov
2008-02-28 13:38 ` Kirill Maslinsky
@ 2008-02-28 18:36 ` Dmitry V. Levin
2008-03-02 21:06 ` Денис Смирнов
2 siblings, 1 reply; 10+ messages in thread
From: Dmitry V. Levin @ 2008-02-28 18:36 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 397 bytes --]
On Thu, Feb 28, 2008 at 11:48:26AM +0200, Igor Vlasenko wrote:
> Пример использования repocop для соблюдения полиси.
>
> Денис (mithraen@) недавно писал, как хорошо было бы внедрить
> LSB заголовки во все init- скрипты, Поскольку никто не возражал,
> налицо консенсус :) но воз и ныне там. Почему?
Я думаю, вопрос был не так прост, чтобы затевать неподготовленное обсуждение.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] LSB startup scripts
2008-02-28 18:36 ` [devel] LSB startup scripts Dmitry V. Levin
@ 2008-03-02 21:06 ` Денис Смирнов
2008-03-03 9:26 ` Igor Vlasenko
0 siblings, 1 reply; 10+ messages in thread
From: Денис Смирнов @ 2008-03-02 21:06 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 641 bytes --]
On Thu, Feb 28, 2008 at 09:36:59PM +0300, Dmitry V. Levin wrote:
>> Пример использования repocop для соблюдения полиси.
>> Денис (mithraen@) недавно писал, как хорошо было бы внедрить
>> LSB заголовки во все init- скрипты, Поскольку никто не возражал,
>> налицо консенсус :) но воз и ныне там. Почему?
DVL> Я думаю, вопрос был не так прост, чтобы затевать неподготовленное обсуждение.
О каких сложностях идет речь? Для большинства пакетов использование LSB
initscripts уменьшают вероятность ошибки.
--
С уважением, Денис
http://freesource.info
----------------------------------------------------------------------------
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] LSB startup scripts
2008-03-02 21:06 ` Денис Смирнов
@ 2008-03-03 9:26 ` Igor Vlasenko
2008-03-03 18:20 ` Victor Forsyuk
0 siblings, 1 reply; 10+ messages in thread
From: Igor Vlasenko @ 2008-03-03 9:26 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Mon, Mar 03, 2008 at 12:06:16AM +0300, Денис Смирнов wrote:
> On Thu, Feb 28, 2008 at 09:36:59PM +0300, Dmitry V. Levin wrote:
> >> Пример использования repocop для соблюдения полиси.
> >> Денис (mithraen@) недавно писал, как хорошо было бы внедрить
> >> LSB заголовки во все init- скрипты, Поскольку никто не возражал,
> >> налицо консенсус :) но воз и ныне там. Почему?
> DVL> Я думаю, вопрос был не так прост, чтобы затевать неподготовленное обсуждение.
> О каких сложностях идет речь? Для большинства пакетов использование LSB
> initscripts уменьшают вероятность ошибки.
если завести control chkconfig(traditional,lsb)
так, чтобы traditional chkconfig игнорировал бы lsb,
а их переключение пересоздавало бы rc.d/*,
то можно было бы безболезненно добавлять как угодно кривые LSB header'ы,
которые простым пользователям не мешали бы,
а продвинутые могли бы тестировать их.ё
--
Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [devel] LSB startup scripts
2008-03-03 9:26 ` Igor Vlasenko
@ 2008-03-03 18:20 ` Victor Forsyuk
0 siblings, 0 replies; 10+ messages in thread
From: Victor Forsyuk @ 2008-03-03 18:20 UTC (permalink / raw)
To: ALT Linux Team development discussions
On Mon, Mar 03, 2008 at 11:26:47AM +0200, Igor Vlasenko wrote:
> On Mon, Mar 03, 2008 at 12:06:16AM +0300, Денис Смирнов wrote:
> > On Thu, Feb 28, 2008 at 09:36:59PM +0300, Dmitry V. Levin wrote:
> > >> Пример использования repocop для соблюдения полиси.
> > >> Денис (mithraen@) недавно писал, как хорошо было бы внедрить
> > >> LSB заголовки во все init- скрипты, Поскольку никто не возражал,
> > >> налицо консенсус :) но воз и ныне там. Почему?
> > DVL> Я думаю, вопрос был не так прост, чтобы затевать неподготовленное обсуждение.
> > О каких сложностях идет речь? Для большинства пакетов использование LSB
> > initscripts уменьшают вероятность ошибки.
>
> если завести control chkconfig(traditional,lsb)
> так, чтобы traditional chkconfig игнорировал бы lsb,
> а их переключение пересоздавало бы rc.d/*,
> то можно было бы безболезненно добавлять как угодно кривые LSB header'ы,
> которые простым пользователям не мешали бы,
> а продвинутые могли бы тестировать их.ё
Это overkill. Достаточно просто начать переходить на LSB initscripts. Их
намного труднее сделать кривыми, чем traditional :)
BTW: http://wiki.debian.org/LSBInitScripts
Пора, пора! :)
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2008-03-03 18:20 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-28 9:48 [devel] Пишем тесты под repocop. пример 1. проверка init скриптов Igor Vlasenko
2008-02-28 9:58 ` Mikhail Gusarov
2008-02-28 10:20 ` Igor Vlasenko
2008-02-28 10:38 ` Igor Vlasenko
2008-02-28 13:38 ` Kirill Maslinsky
2008-02-28 14:18 ` Igor Vlasenko
2008-02-28 18:36 ` [devel] LSB startup scripts Dmitry V. Levin
2008-03-02 21:06 ` Денис Смирнов
2008-03-03 9:26 ` Igor Vlasenko
2008-03-03 18:20 ` Victor Forsyuk
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