ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [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