LINUX.ORG.RU

Помогите примерами проектов, использющих gtest/cmake

 ,


0

4

Надо грамотно привернуть тесты к https://github.com/lvgl/lvgl. При этом комрады не особо шарят в тестировании, а я не особо шарю в сях и тулзах для билда.

Подскажите опенорсы, с которых можно «передрать по аналогии» инфрастрктуру.

Мне нужно:

  • Чтобы файлы тестов можно было по желанию отстраивать:
    • одним билдом (быстрее),
    • группами (иногда нужны разные конфиги)
    • независимо (для особо мутных случаев)
  • Чтобы это все потом пускалось одной командой в едином порыве и выдавало суммарный результат.
  • coverage reports

То есть вопрос не в том, какой фреймворк взять и как юзать моки, а в том как все благоустроить.

Если фреймворк имеет значение - склоняюсь к googletest (это уже в отдельной теме обсуждали).

★★★★★

Ответ на: комментарий от olelookoe

Спасибо. Интересно.

Vit ★★★★★
() автор топика
Ответ на: комментарий от olelookoe

А ты случайно не знаешь, как на cmake делают несколько исполняемых файлов, чтобы потом ctest их запускал как единое целое и генерил общий отчет?

Просто иногда надо поменять глобальные дефайны, вроде размера экрана, а в общем билде это никак. Но при этом отчет по тестам все равно желательно единый.

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

не в курсе специфики реализации lvgl (если найду время обязательно попробую познакомиться поближе. как он в сравнении nuklear, кстати?), но cgreen неплохо покрывает даже весьма затейливые кейсы, могу только посоветовать доку поковырять.

вот это не решает проблему?

или есть вариант вот такой

olelookoe ★★★
()
Ответ на: комментарий от Vit

если на голом cmake/ctest, то наверное нужно что-то вроде такого

сmake_minimum_required (VERSION 3.8)

...

set (TESTS Test1 Test2) 

foreach (_test ${TESTS})
  add_executable (${_test} ${_test}.c)
  target_link_libraries (${_test} ${My_LIBRARIES})
  add_test (NAME ${_test} COMMAND ${_test)
endforeach ()
olelookoe ★★★
()
Ответ на: комментарий от olelookoe

В nuklear уровни абстракции разные. Нет контейнеров «виджетов» (не сможешь без костылей фокус менять). Зато есть буфер для шейпов (эффективнее абстракции gpu).

Но если отбросить лирику, lvgl умеет с очень мелким буфером рисовать - просто за много проходов. И субпиксельный рендеринг шрифтов. И вот-вот выйдет 8 версия, где стили будут вести как урезаный css.

Короче, они для сильно разных задач, их даже сравнивать в плане «что лучше» бессмысленно. Под мои потребности и под дохлые stm32 больше подходит lvgl. А если инфу на видео накладывать - там nuklear без вариантов.

вот это не решает проблему?

Да, Composite Test Suites похоже на то что мне надо. Только там cgreen-runner, а я спрашивал, можно ли это сделать на ctest из состава cmake.

Есть еще дурацкий вопрос. А чем cgreen «лучше» связки google test и cmake/ctest?

Vit ★★★★★
() автор топика
Ответ на: комментарий от Vit

можно ли это сделать на ctest из состава cmake.

Конечно, ctest используется для селфтестов cgreen. В исходниках есть папка test, там развернутый пример\вариант использования. В принципе наверное можно большую часть CMakeList.txt скопипастить и адаптировать под свои нужды.

чем cgreen «лучше» связки google test и cmake/ctest?

google test это С++, то есть тесты должны собираться крестовым компилятором, со всеми вытекающими. Иногда это неважно, а иногда имеет значение. CGreen же можно юзать и так и эдак.

olelookoe ★★★
()

Bazel не думали попробовать? Мы пользуемся с google test, который выдаёт junit xml файлы. Очень удобно для посмотреть на билд сервере. Пускать тесты можно как угодно один или все сразу. Если интересно могу PR на выходных сделать.

photonscore
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.