(хочу) вывод разной степени критичности
От: Кодт Россия  
Дата: 03.08.15 16:00
Оценка:
Не знаю, как точно сформулировать, поэтому надеюсь на коллективную телепатию.

Суть вот в чём.
Допустим, я запускаю в консоли что-то длинное — компиляцию проекта, юнит-тесты и т.п.
Весь вывод можно ранжировать по трём категориям:
— шапка/подвал "будет запущено 100500 тестов..." / "100 тестов прошло, 500 провалилось" — чтобы понимать, чего следует ожидать от забега
— критичные сообщения "[FAILED] Some.Test" — чтобы видеть проблемы по мере их поступления, а не только постфактум, разгребая лог
— весь вывод — чтобы убедиться, что процесс не завис, грубо говоря
(возможно и более мелкое дробление)

Проблем здесь три
1) уровней критичности больше, чем 2 (т.е. нельзя просто так раскидать на stderr и stdout)
2) у исходной программы своё видение, что в какой поток валить; а мне хотелось бы, например, в критичном потоке видеть не только красное [FAILED], но и немножко предыстории
3) как визуализировать?

В общем-то, не так уж и сложно написать программу-фильтр (на питоне или даже awk) и запускать
my_unit_tests 2>&1 | my_pretty_filter


Но как эту красоту визуализировать?
Связываться с голыми curses не хочу. Вот если бы припахать tmux или screen какой-нибудь...

Открыть параллельно три терминала и подключить в каждом из них соответствующий tail -f ~/workspace/severityN.log — это самый последний вариант. Хуже не придумаешь.
Чуть лучше — запустить SublimeText и открыть в нём эти логфайлы — пусть он следит за изменениями. Но это тоже так себе.

Да, желательно решение, пригодное для убунты, мака и гитбаша. Или хотя бы для мака.
http://files.rsdn.org/4783/catsmiley.gif Перекуём баги на фичи!
Re: (хочу) вывод разной степени критичности
От: GarryIV  
Дата: 03.08.15 16:09
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Допустим, я запускаю в консоли что-то длинное — компиляцию проекта, юнит-тесты и т.п.


Консоль это хорошо конечно, но не всегда

http://instinct.googlecode.com/svn/wiki/images/InstinctJUnitIntegrationFailure.png
WBR, Igor Evgrafov
Re[2]: (хочу) вывод разной степени критичности
От: Кодт Россия  
Дата: 03.08.15 16:25
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>Консоль это хорошо конечно, но не всегда

GIV>Image: InstinctJUnitIntegrationFailure.png

Это какая-то популярная нахлобучка на гугловские юнит тесты?

Моё гуглофу нашло только две поделки — gtest-bar и gtest-runner-qt
Не могу сказать, что я счастлив.
http://files.rsdn.org/4783/catsmiley.gif Перекуём баги на фичи!
Re: (хочу) вывод разной степени критичности
От: velkin Россия  
Дата: 03.08.15 16:31
Оценка:
Здравствуйте, Кодт, Вы писали:
К>Допустим, я запускаю в консоли что-то длинное — компиляцию проекта, юнит-тесты и т.п.

Надо курить систему непрерывной интеграции. Лично я бы поискал необходимые возможности в Jenkins, причём в оригинальном репозитории, который со всеми плагинами.
Re: (хочу) вывод разной степени критичности
От: vsb Казахстан  
Дата: 03.08.15 17:11
Оценка: 34 (1)
tail можно натравливать на несколько файлов, если это поможет.
Re: (хочу) вывод разной степени критичности
От: boot  
Дата: 03.08.15 17:32
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Не знаю, как точно сформулировать, поэтому надеюсь на коллективную телепатию...


Ну не знаю) реализовали мы для своего проекта недавно подобную шнягу с кучкой транспортных протоколов, но открывать код пока не собираемся, а то еще конкуренты юзать начнут)

Вкратце, правильно мыслите. Идут сообщения

[PASS] test
, или
[....] test
details...
[FAIL]

все цветное, по завершению echo $? (код завершения) говорит о числе заваленных тестов, больше 255 уже не суть важно сколько не прошло.
Детализация задается параметрами, выхлопа и текста теста достаточно для анализа.
Тест конкретный запускается отдельно, если надо детальнее. Ну, плюшек много, очень) можно еще прикрутить.

Что еще добавить то? Напишите конкретнее что надо, пока не понятно в чем затык конкретно. Ах, да, все это в терминале запускается и выводится.
Жизнеспособность прямо пропорциональна простоте!
Re[2]: (хочу) вывод разной степени критичности
От: Кодт Россия  
Дата: 03.08.15 17:33
Оценка:
Здравствуйте, vsb, Вы писали:

vsb>tail можно натравливать на несколько файлов, если это поможет.


Круто, не знал. Одна беда, tail тупо демультиплексирует обновления хвостов, комментируя при этом, какой хвост поменялся. Что при этом на экране творится, догадаться несложно.
http://files.rsdn.org/4783/catsmiley.gif Перекуём баги на фичи!
Re[2]: (хочу) вывод разной степени критичности
От: Кодт Россия  
Дата: 03.08.15 18:06
Оценка:
Здравствуйте, boot, Вы писали:

B>Что еще добавить то? Напишите конкретнее что надо, пока не понятно в чем затык конкретно. Ах, да, все это в терминале запускается и выводится.


tmux видел? Или, скажем, vim в режиме нескольких тайлов? Вот хочу похожую фигню.
Только мне vim шибко избыточен, хватило бы less, чтобы быстро прокручивать туда-сюда и искать.
А голый less не умеет обновлять в реальном времени. А голый tail не умеет прокручивать и искать.
А на голых curses писать — совсем уж базовую функциональность, конечно, можно — чтоб каждый поток в свою область; но делать геометрию и интерактивность вручную — свят-свят-свят.
http://files.rsdn.org/4783/catsmiley.gif Перекуём баги на фичи!
Re[3]: (хочу) вывод разной степени критичности
От: boot  
Дата: 04.08.15 03:11
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, boot, Вы писали:


B>>Что еще добавить то? Напишите конкретнее что надо, пока не понятно в чем затык конкретно. Ах, да, все это в терминале запускается и выводится.


К>tmux видел? Или, скажем, vim в режиме нескольких тайлов? Вот хочу похожую фигню.

К>Только мне vim шибко избыточен, хватило бы less, чтобы быстро прокручивать туда-сюда и искать.
К>А голый less не умеет обновлять в реальном времени. А голый tail не умеет прокручивать и искать.

Это 2 разных окна, одновременно чтобы показывался хвост и другое место потока, так не бывает. "tail не умеет прокручивать и искать" зато терминал умеет, правда у него надо размер буфера задать, а так, это почти что less.

К>А на голых curses писать — совсем уж базовую функциональность, конечно, можно — чтоб каждый поток в свою область; но делать геометрию и интерактивность вручную — свят-свят-свят.


А вам все вместе или можно частями?) В юникс лайк ос для каждой операции своя тулза, комбайны это другой путь. Чтобы сделать несколько окошек терминала в одном, заодно сохраняя сессию, это screen | tail, если файл читать | grep или sed, если фильтровать надо | в конце можно влепить преобразование текста, цвет, подчеркивание и пр. Как бы все очевидно, конвейер.
Жизнеспособность прямо пропорциональна простоте!
Re: (хочу) вывод разной степени критичности
От: Miroff Россия  
Дата: 04.08.15 04:17
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Не знаю, как точно сформулировать, поэтому надеюсь на коллективную телепатию.

К>Но как эту красоту визуализировать?

grc гиганта мысли не спасет?
Re: (хочу) вывод разной степени критичности
От: Sheridan Россия  
Дата: 04.08.15 05:40
Оценка:
А просто раскрасить? sed -e s///ig
c_std="^[[0;39m"
c_h_std="^[[1;37m"
c_pink="^[[0;35m"
c_h_pink="^[[1;35m"
c_red="^[[0;31m"
c_h_red="^[[1;31m"
c_cayan="^[[0;36m"
c_h_cayan="^[[1;36m"
c_yellow="^[[1;33m"
c_green="^[[0;32m"
c_h_green="^[[1;32m"
c_blue="^[[0;34m"
c_h_blue="^[[1;34m"

sheridan@pc-0019 / $ echo abcdef | sed -e 's/\(.*\)\(b\)\(.*\)/\1-\2-\3/'
a-b-cdef
Matrix has you...
Re: (хочу) вывод разной степени критичности
От: Grelkin  
Дата: 04.08.15 07:46
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Но как эту красоту визуализировать?

К>Связываться с голыми curses не хочу. Вот если бы припахать tmux или screen какой-нибудь...

К>Открыть параллельно три терминала и подключить в каждом из них соответствующий tail -f ~/workspace/severityN.log — это самый последний вариант. Хуже не придумаешь.

К>Чуть лучше — запустить SublimeText и открыть в нём эти логфайлы — пусть он следит за изменениями. Но это тоже так себе.

К>Да, желательно решение, пригодное для убунты, мака и гитбаша. Или хотя бы для мака.


Привет,

Я бы попробовал tail + tmux + tmux-copycat для подсвечивания результатов поиска, и возможно использования предопределенных шаблонов.
Re[2]: (хочу) вывод разной степени критичности
От: Кодт Россия  
Дата: 04.08.15 09:06
Оценка:
Здравствуйте, Miroff, Вы писали:

M>grc гиганта мысли не спасет?


Однозначно, не спасёт. GTest и так выдаёт раскрашенный текст, а что толку, если зелёные, жёлтые и красные надписи стремительно скрываются за горизонтом среди обычной дебажной макулатуры?
http://files.rsdn.org/4783/catsmiley.gif Перекуём баги на фичи!
Re[4]: (хочу) вывод разной степени критичности
От: Кодт Россия  
Дата: 04.08.15 09:12
Оценка:
Здравствуйте, boot, Вы писали:

B>А вам все вместе или можно частями?) В юникс лайк ос для каждой операции своя тулза, комбайны это другой путь. Чтобы сделать несколько окошек терминала в одном, заодно сохраняя сессию, это screen | tail, если файл читать | grep или sed, если фильтровать надо | в конце можно влепить преобразование текста, цвет, подчеркивание и пр. Как бы все очевидно, конвейер.


Так я поэтому и заговорил про тмукс.
Каким-то волшебным способом его запустить, чтобы в каждом под-окошке был свой процесс, а не интерактивный шелл по умолчанию. Чтобы размеры окошек выставились из конфига (и туда же записались, если я их подкручу).

Вот это и будет у-вей: тмукс отвечает за организацию экрана, авк/перл/питон за разбор монолитного выхлопа, лесс/тейл за показ. И скрипт интеграции всего этого добра.
http://files.rsdn.org/4783/catsmiley.gif Перекуём баги на фичи!
Re[2]: (хочу) вывод разной степени критичности
От: Кодт Россия  
Дата: 04.08.15 09:13
Оценка:
Здравствуйте, Grelkin, Вы писали:

G>Я бы попробовал tail + tmux + tmux-copycat для подсвечивания результатов поиска, и возможно использования предопределенных шаблонов.


Можно посмотреть на пример этого "+"?
http://files.rsdn.org/4783/catsmiley.gif Перекуём баги на фичи!
Re[3]: (хочу) вывод разной степени критичности
От: oziro Нигерия  
Дата: 04.08.15 10:20
Оценка: +1
Здравствуйте, Кодт, Вы писали:

К>А голый less не умеет обновлять в реальном времени. А голый tail не умеет прокручивать и искать.


less умеет обновлять!

F нажми в открытом им файле (т.е. shift+f).

тут подробности http://blog.libinpan.com/2009/07/less-is-better-than-tail/
Отредактировано 04.08.2015 10:22 oziro . Предыдущая версия .
Re[5]: (хочу) вывод разной степени критичности
От: boot  
Дата: 04.08.15 12:32
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Так я поэтому и заговорил про тмукс.

К>Каким-то волшебным способом его запустить, чтобы в каждом под-окошке был свой процесс, а не интерактивный шелл по умолчанию. Чтобы размеры окошек выставились из конфига (и туда же записались, если я их подкручу).

К>Вот это и будет у-вей: тмукс отвечает за организацию экрана, авк/перл/питон за разбор монолитного выхлопа, лесс/тейл за показ. И скрипт интеграции всего этого добра.


Можно записать в ~/.screenrc или ~/.tmuxrc, благо примеров полно, например тут https://bbs.archlinux.org/viewtopic.php?id=55618
А вот если выхлоп одного процесса в разные окошки, это через сокеты прикрутить можно
Жизнеспособность прямо пропорциональна простоте!
Re[5]: (хочу) вывод разной степени критичности
От: wildwind Россия  
Дата: 04.08.15 16:15
Оценка:
Здравствуйте, Кодт, Вы писали:

К> Вот это и будет у-вей: тмукс отвечает за организацию экрана, авк/перл/питон за разбор монолитного выхлопа, лесс/тейл за показ. И скрипт интеграции всего этого добра.


Создавайте именованные пайпы (mkfifo) для каждого потока и соединяйте их, как вам нужно.
Hardware eventually fails. Software eventually works. ::: avalon/1.0.442
Re[3]: (хочу) вывод разной степени критичности
От: zaufi Земля  
Дата: 04.08.15 16:30
Оценка: 110 (2)
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, vsb, Вы писали:


vsb>>tail можно натравливать на несколько файлов, если это поможет.


К>Круто, не знал. Одна беда, tail тупо демультиплексирует обновления хвостов, комментируя при этом, какой хвост поменялся. Что при этом на экране творится, догадаться несложно.


посмотри на multitail: http://www.vanheusden.com/multitail/
Re[4]: (хочу) вывод разной степени критичности
От: Кодт Россия  
Дата: 04.08.15 16:56
Оценка:
Здравствуйте, zaufi, Вы писали:

Z>посмотри на multitail: http://www.vanheusden.com/multitail/


Вот оно оно! А то всё "используй греп... используй сокеты..."
http://files.rsdn.org/4783/catsmiley.gif Перекуём баги на фичи!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.