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

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

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

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

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

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

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

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

Leave a comment

0 Comments.

Leave a Reply

Yandex Mail.ru Google LiveJournal myOpenId Flickr claimId Blogger Wordpress OpenID Yahoo Technorati Vidoop Verisign AOL


[ Ctrl + Enter ]

9 visitors online now
9 guests, 0 members
Max visitors today: 13 at 03:20 am MST
This month: 17 at 02-07-2012 06:17 am MST
This year: 29 at 01-23-2012 02:50 am MST
All time: 45 at 02-23-2011 09:11 am MST