Всем привет. Столкнулся с проблемой и не знаю как решить. Загрузил генератор тестов во вкладке Files. Захожу в Tests, проверяю, он его успешно компилирует. После сохранения скрипта (пишу GenTest > {15-20}) во всех этих тестах появляется запись GenTest и стоит параметр Script, но как заставить его запустить этот генератор, чтобы он эти тесты сделал?
2. Не нужно просто писать "%I64d".
Это затрудняет повторное использование задач. А сделать генератор более переносимым совсем не сложно.
Можно написать свой генератор в несколько строчек, взяв хорошие константы отсюда. Эта же страница помогает проэмулировать rand(), если кто-то таки сделал тесты через него (а это происходит всё время), и надо заставить генераторы работать под другим компилятором.
Кстати, в версии testlib (0.6.4?), которая была на момент зимних сборов в Петрозаводске, генератор хоть и взят из Java, однако написан так, что последние версии GCC со включёнными оптимизациями компилируют его неправильно. Кажется, ничего не изменилось с тех пор?..
Насчёт #ifdef WIN32: это действительно широко применяющийся способ. Когда printf-ов несколько, удобнее сделать #define INT64 "%lld" или "%I64d" и дальше писать printf (INT64 "\n", v[i]);
Интересно. С конкретным названием rand() в testlib 0.7.1 я вижу только
int rand()
{
quitf(_fail, "Don't use rand(), use rnd.next()");
return 0;
}
Или есть ещё что-то в polygon, но при этом не в testlib?
Ну, #ifdef WIN32 гораздо лучше, чем ничего, его в будущем можно скормить автозамене. Вообще, MinGW полупереведённый в 64 бита: вот сейчас проверил с TDM-GCC MinGW 4.5.1 x86_64, там задефайнено и WIN32, и WIN64. Хотя, действительно, #ifdef WIN64 тоже нужен на будущее.