Jun 09, 2018 14:27
Пока я активно доделывал проектец, растянувшийся на полгода (из-за очередных внеочередных организационных пертурбаций), QA быстренько навалял байду для запуска тестов проекта. И уже её запустил и злорадно вручил мне баги, наивно полагая, что все они мои и что я за всё в ответе.
Ну вот, на днях дошли мои руки и мозги до этих тестов. Запустил сам.
Обнаружил, что один кусок проекта сломан оригинальными авторами by design, и не работает никак. Стало быть, won't fix, ибо я там ничего не трогал, и мне не критично.
Другой же работает правильно только в стандартной конфигурации, а у меня немножко нестандартная, но никто ж не тестирует нестандартное-то - зачем, радуйтесь, что хоть есть эти конфигурации. Нашёл концы и починил. При этом починились другие тесты, которые, я б и не подумал, что как-то с этим связаны.
Последний нерабочий тест вогнал меня в ступор. Не сказать, чтоб я был в восторге от кода, который он тестирует, но он вроде у всех работает. Кроме меня, естественно. Нашёл магическое изменение, после которого у меня тоже заработало. Оно не должно влиять на результат, ан нет. Выключил в компиляторе оптимизацию - не помогло. Попробовал четырьмя другими компиляторами - помогло с тремя из них. Или тонкий случай undefined behavior, или баг в нашем новейшем компиляторе. Скорее последнее. Но, пилять, я уже наелся этих багов. У нас нет почти ни одного компилятора без них. Виснут, компилируют в мусор или оптимизируют бездумно аки троечники, не дочитавшие what every computer scientist should know about floating point. Выберите два бага из трёх. Похоже, тоже won't fix.
И пока ковырял этот последний тест, нашёл, что оригинальные аффтары не достроили свои шаблонные домики. Стоит подставить int64_t вместо int32_t, и привет. Компилируется в кал. Хоть бы обложили проверками или даже тупо написали комментарий типа hard hats must be worn, чтоб сразу было видно, но нет. Общий шаблон, в общем же и не работающий. Надо будет подарить багу аффтарам. А то они на этот код несколько лет не глядели и расслабились.
Ещё какая-то параша есть (несколько тестов из многих сотен не компилируются, asset'ают невменямо, вбив би), но как-нибудь разгребу.
quality,
work,
stupid,
c++,
software