@ProCxx

Страница 1015 из 2477
Constantine
26.06.2017
23:27:21
если есть деструктор

Berkus
26.06.2017
23:27:34
ты ему определяешь таймаут, если кейс не завершается, например по причине забытого done(), тогда - failure (timeout)
ты посмотри таки как регистрация тесткейсов сделана в других либах - catch, boost.test, gunit во всех есть раннеры и тест сьюты, которые делают то что тебе надо

Roman
26.06.2017
23:27:53
ну так мне придётся прописывать более 3-4 future'ов и каждый закрывать, каждому таймаут ставить а done() нужно лишь раз вызвать, меньше кода

Google
Berkus
26.06.2017
23:28:58
если есть деструктор
сам тест это по факту мембер функция run() там нет деструктора

Roman
26.06.2017
23:30:53
да вот, пробую, просто хочется опять-же от boilerplate'а избавиться... $Test(someTestCase) { readFile("/some/file.txt", [] (std::string result) { $AssertEqual(std::string, result, "bla") $Finish }); }

после этого: int main () { // default timeout 1000 ms testing::Test tst("My Test", {someTestCase}, 1000) tst.run(); tst.printResults(); }

но хотелось бы сократить, в $Test уже каким-то образом зарегистрировать функцию

Berkus
26.06.2017
23:34:13
ну вот посмотри как BOOST_AUTO_TEST_CASE ее регистрирует например

Constantine
26.06.2017
23:34:55
а я хочу, чтобы все тесты были в json :)

Berkus
26.06.2017
23:35:18
но хотелось бы сократить, в $Test уже каким-то образом зарегистрировать функцию
потому что в BOOST_AUTO_TEST_CASE надо только указать имя и тело и остальная регистрация автомагическая

Roman
26.06.2017
23:35:18
Berkus
26.06.2017
23:35:31
Vladislav
26.06.2017
23:36:07
Для начала

Roman
26.06.2017
23:36:20
потому что в BOOST_AUTO_TEST_CASE надо только указать имя и тело и остальная регистрация автомагическая
похоже вся магия заключается в этих вот штуках которые как скобки вокруг функций BOOST_AUTO_TEST_SUITE( test_suite1 ) BOOST_AUTO_TEST_SUITE_END()

Berkus
26.06.2017
23:36:24
Он не яп
это почти джаваскрипт )

Google
Маришка
26.06.2017
23:36:57
это почти джаваскрипт )
Это лишь объект из жабкаскрипта

Vladislav
26.06.2017
23:37:19
он не тьюринг полный
Идрис/агда - тоже не тьюринг-полные, кстати

Строго говоря

Berkus
26.06.2017
23:37:36
похоже вся магия заключается в этих вот штуках которые как скобки вокруг функций BOOST_AUTO_TEST_SUITE( test_suite1 ) BOOST_AUTO_TEST_SUITE_END()
минимальный тест выглядит так #define BOOST_TEST_MODULE Test_min #include <boost/test/unit_test.hpp> BOOST_AUTO_TEST_CASE(minimal) { BOOST_CHECK(true); }

Roman
26.06.2017
23:37:53
без них прекрасно работает
вот я не могу понять как они это сделали... ибо регистрировать надо после декларации, но в макросе нет доступ к "после-декларации" потому-что function block не внутри макроса

Berkus
26.06.2017
23:38:07
вот и загляни к ним в кишки

всё ж есть

я не буду за тебя гуглить сорцы буста, извини

Roman
26.06.2017
23:38:59
я уже в них копаюсь))

правда найти не могу BOOST_AUTO_TEST_CASE

ща

Constantine
26.06.2017
23:39:51
Он не яп
Шарите. Поэтому тесты в JSON, интерпретатор - прекомпилить

Roman
26.06.2017
23:41:06
да куда они его спрятали то о_О

Constantine
26.06.2017
23:41:26
Чет сложна
Нет, если уже есть парсер (на самом деле xml но пофик), который в С++ транслирует

Constantine
26.06.2017
23:42:38
Тролейбус_из_хлеба.жпг
Ну нет, я не хочу пользоваться модулями из С++

Я хочу написать //GENERATOR_USE(""_image3_dpi_aware)

Google
Roman
26.06.2017
23:43:25
документацию BOOST_AUTO_TEST_CASE нахожу без проблем, в сорсах - ни следа о_О

Constantine
26.06.2017
23:45:15
И хочу написать <function-factory-visitor base="Interface"/>

Vladislav
26.06.2017
23:46:20
И хочу написать <function-factory-visitor base="Interface"/>
Что-то жавой со спрингом пахнуло

Constantine
26.06.2017
23:46:49
Х3 что там в джаве, но меня парит писать 30 виртуальных функций для каждого имени для различных классов сообщений руками

Constantine
26.06.2017
23:47:49
А шаблонами их никак не нагенерить?
Виртуальные функции-то?

С одинаковым именем?

Berkus
26.06.2017
23:48:08
правда найти не могу BOOST_AUTO_TEST_CASE
поиск на гитхабе в boostorg

Constantine
26.06.2017
23:48:12
По всем объявленным потомкам одного интерфейса?

Vladislav
26.06.2017
23:48:42
Тогда я не понимаю, чего ты хочешь сделать

Constantine
26.06.2017
23:48:53
Я хочу event dispatch

В форме OnEvent... на самом деле

Berkus
26.06.2017
23:49:24
он бы хотел бросить принимать наркотики, но не может в этом признаться в публичном чяте!

Constantine
26.06.2017
23:50:52
Кофеин считается за наркотики?
Нет, наркотик def. внесенное в список наркотических веществ :)

Vladislav
26.06.2017
23:51:05
Berkus
26.06.2017
23:51:11
кекеке, но он точно есть!

Constantine
26.06.2017
23:51:23
Какой конкретно страны?)
Которая тебя будет судить за их незаконное хранение :)

Google
Roman
26.06.2017
23:51:27
ты макрос видишь?.. а он есть

не, безнадёжно, обыскал все версии, все header'ы, нет ни следа

Vladislav
26.06.2017
23:51:59
Которая тебя будет судить за их незаконное хранение :)
То есть в нейтральных водах наркотиков не бывает)

Constantine
26.06.2017
23:52:16
То есть в нейтральных водах наркотиков не бывает)
Торговать все равно нельзя, я тебе вбрасывал экстерриториальность УК РФ

Berkus
26.06.2017
23:52:23
https://github.com/boostorg/test/search?p=3&q=BOOST_AUTO_TEST_CASE&type=&utf8=✓ у меня находит 17 страниц

Roman
26.06.2017
23:52:57
бляя, я в boostorg/boost искал, а не boostorg/test ?

Vladislav
26.06.2017
23:54:38
Торговать все равно нельзя, я тебе вбрасывал экстерриториальность УК РФ
А я - про "аксиоматика может делать определения неверными", или как там было)

Berkus
26.06.2017
23:54:53
бляя, я в boostorg/boost искал, а не boostorg/test ?
https://github.com/boostorg/test/blob/ea9d9b9a8ea3f9aceb71cce41d48c820f05b2fdc/include/boost/test/unit_test_suite.hpp#L207 а вот и definition

Constantine
26.06.2017
23:55:01
А я - про "аксиоматика может делать определения неверными", или как там было)
Мой собеседник уже указал, что "Существование алгебр, в которых нет ни одного положительного числа, опровергает определение положительного числа в виде "число называется положительным, если оно больше нуля"" и не согласен, что свойства в определении есть аксиома, а "ошибочно" и "опровергнуто" по его мнению значат одно и то же

Admin
ERROR: S client not available

Constantine
26.06.2017
23:55:10
Копипаста осталась :)

Berkus
26.06.2017
23:55:36
бляя, я в boostorg/boost искал, а не boostorg/test ?
остается только развернуть 800 уровней вложенных макросов и золотой ключик у тебя в кармане

Berkus
26.06.2017
23:56:20
рекомендую сунуть это в IDE :)

Roman
26.06.2017
23:56:34
да ну, меня Test tst({someCase}) устраивает ?

Constantine
26.06.2017
23:56:40
Roman
26.06.2017
23:57:06
Constantine
26.06.2017
23:57:57
Google
Roman
26.06.2017
23:58:08
Constantine
26.06.2017
23:58:17
а зачем?))
С ними крайне удобно работать :)

Roman
26.06.2017
23:58:53
С ними крайне удобно работать :)
лучше и легче на другой язык пересесть в таком случае, более высокоуровневый и более простой, как Go например

Constantine
26.06.2017
23:59:00
Собственно эти форматы создали читаемыми для людей, а С++ создали читаемым для компилятора

Constantine
26.06.2017
23:59:51
я бы сказал "программилятора"
да хоть мозгонасилятора

не человека точно

и интроспекция бесплатная, кстати

Roman
27.06.2017
00:00:49
C++ парсить тяжело из-за того что backwardscompatibility к C и предыдущим версиям C++ держали и держат

which is great and horrible at the same time

Constantine
27.06.2017
00:02:20
не знаю, я никогда не был расстроен потому, что мне сгенерировали сразу сериализатор, operator == и я умею перечислять всех потомков интерфейса

Vladislav
27.06.2017
00:02:38
при том что в C надобавляли фич, не совместимых с C++, это довольно печально

Constantine
27.06.2017
00:03:47
это все хорошо, но лишняя (и велосипедная) стадия сборки - плохо
я известный любитель велосипедов, но она совершенно не лишняя

например, все сгенерированные файлы пишут автоматически include и экономят намного больше времени запуска генератора

а потом еще подумали, что надо все-таки явно прообъявлять деструкторы и знаешь сколько времени заняло написание 500 деструкторов классов? ?

кстати, на полной пересборке проекта экономия 20 секунд из примерно 10 минут

Vladislav
27.06.2017
00:06:54
у нас для простых случаев thrift, а сложные случаи обычно все равно под шалон не подходят

Constantine
27.06.2017
00:08:30
а кто-нибудь еще умеет в файлы _impl с ручной реализацией всего того, что описано в интерфейсе?

у меня под генератором не интерфейс класса, а весь класс

собственно поскольку мне вломы, у меня генератор еще пишет _impl.cpp в который дампит сигнатуры всех функций, код которых не сгенерирован, и просит меня там все это понаписать

Страница 1015 из 2477