welcome to 1:1 swiss fake franck muller watches uk store!
best replica-watches stores report.

70%-80% discount and high quality replica breitling.

hundreds of newly rolex replicas for sale usa.

Неортодоксальные текстовые редакторы рулят

Как истинный приверженец vim, я устанавливаю его первым делом на любой мой рабочий компьютер с Майкрософт Уиндоуз, чем раз и навсегда отбиваю у коллег всякое желание что-либо делать на нем без меня. Очень, очень полезное свойство, но люблю я vim вовсе не за это.

Наступил я сегодня на грабли. Впрочем, наступил на них я уже давно, согласившись писать юнит-тесты для C++ кода на MSTest, но сегодня я нашел особо детские грабли.

Полагаю, что некоторые особо просвещенные читатели моего уютного бложека в курсе, что MSTest позволяет «облегчить» написание так называемых Data-Driven юнит тестов. Как обычно, облегчение это приходит в полном соответствии с корпоративным стандартом майкрософт — «теперь  выстрелить себе в ногу стало еще легче». Казалось бы, прикрепи себе атрибут [DataSource] перед тест-кейсом и вперед, на танки мегабайты входных данных, что может быть прекраснее?

Откуда же я знал, что вместо мегабайтов данных OleDB будет мне подсовывать противовелосипедные мины, по противности превосходящие лепешки, сбрасываемые летающими коровами? Оказалось, что если во входном файле данных, а файл данных у меня, как обычно, до ужаса хитрожопого формата — цифры, разделенные запятыми, чтобы ни одна сволочь не догадалась, так вот, если в этом файле идут два подряд шестнадцатеричных числа вроде «1F01,1F02», то на вход теста поступает какая-то такая невообразимая бредятина, что первые три часа я напрочь отказывался верить, что такое вообще случается в пределах нашего горизонта событий, что бы это понятие не означало. Не знаю, почему, как и какой страшной логикой руководствовались аффтары OleDB и провайдера его Jet, но первое число из такой пары читалось почему-то исключительно как 101, а второе вообще никак не читалось.

Порвавши пять бубнов, я таки решил зайти с тыла и попробовал заменить шестнадцатеричные числа на  более привычные неискушенному зрителю, а именно на десятичные. Попробовал и тест заработал, аж фуфайка завернулась. Развернув фуфайку, я задумался. Вручную конвертировать пять мегабайт шестнадцатеричных четырехразрядных чисел мне даже при почасовой оплате не хотелось, а выкидывать тест вообше шло в разрез с моими принципами. Ведь если выкинуть тест, этот кусок кода придется отлаживать в отладчике, а отлаживать свой только что написанный код в отладчике я ненавижу даже больше, чем MSTest и рано вставать.

«Даже если Вас съели, у Вас есть два выхода», гласит известный афоризм. Так что подкрепившись корейским блюдом с названием, которое я вряд ли когда-нибудь смогу выговорить, я вспомнил, что у меня есть Vim. А в нем разве что тетриса нет (я, правда, специально не искал, может быть и есть).  Первая же сцылко в гугле вывела меня на решение моей проблемы. Конвертирование всех шестнадцатеричных числе в файле в числа десятичные заняло один аккорд на клавиатуре и 1.45 секунды, после чего все тесты отработали так, что фуфайка скрутилась в шпагат.

Все-таки Vim — очень, очень удобный текстовый редактор. А MSTest — какашка страшная, а те, кто навязывает его использование для тестирования C++ кода, я вообще не скажу как называются.

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


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

6 посетителей онлайн
4 гостей, 2 bots, 0 зарегистрированных
Максимум сегодня:: 14 в 12:03 am UTC
В этом месяце: 184 в 11-12-2022 10:54 am UTC
В этом году: 285 в 04-27-2022 03:09 am UTC
За все время: 771 в 10-19-2021 06:42 pm UTC