?

Log in

No account? Create an account

Торжество методологии - Общество дровосеков Бердичева по изучению Мишны

Apr. 8th, 2015

10:56 pm - Торжество методологии

Previous Entry Share Next Entry

На работе писал сегодня, faute de mieux, поставленную мне фоновую задачу - генерацию случайных тестов. Поначалу практически совсем без фич, переменные все одного типа, знай себе случайные выражения [например, такие] наподобие ((( n1)<<<( n0))/(signed'(((( n6)%( n1))>>>~ ((((( n8) ? ( n10) : ( n2))>>(( n5)- ( n1)))>>>( n4)))))>>>(( n0)>>( n1)))) конструируй, да операторы присваивания печатай. И рандомизации, почитай, никакой: ну random, но совсем не srandom-srandom.
И что бы вы думали: сразу же после того, как из генератора вылезло то, что компилятору удалось пропарсить, тут же в компиляторе и нашлась ошибка, где-то в приведении знаковости, несмотря на специальный пакет из ~10000 тестов, нацеленных именно на тестирование всех языковых хитростей, плюс еще ~25000 прочих тестов (юнит, регрессионных, полевых).

Самое ужасное то, что все ходящие мимо моего рабочего места в рабочее время были в полной уверенности, что я ничем, кроме чтения ЖЖ и новостей, не занимаюсь.

Tags:

Comments:

[User Picture]
From:orleanz
Date:April 9th, 2015 06:14 am (UTC)
(Link)
ну так вы же читали жж только когда генератор генерировал
(Reply) (Thread)
[User Picture]
From:spamsink
Date:April 9th, 2015 06:23 am (UTC)
(Link)
Генератор генерирует мгновенно. Я читал жж, когда думал, какое подмножество фич реализовывать, чтобы к вечеру что-нибудь заработало. :)
(Reply) (Parent) (Thread)
[User Picture]
From:archaicos
Date:April 9th, 2015 06:36 am (UTC)
(Link)
Забавно, что совсем недавно точно таким же способом я нашёл несколько похожих ошибок в компиляторе. Писал тест для своего, а нашёл глюки в чужом. Вероятно, глюки привнесённые за время бестестового плавания компилятора (тесты потерялись во время перехода в опенсорц ибо были чужие и коммерческие).
(Reply) (Thread)
[User Picture]
From:spamsink
Date:April 9th, 2015 06:49 am (UTC)
(Link)
В нашем случае это глюки, которые существовали отродясь, но за 10 с лишним лет никого не беспокоили.
(Reply) (Parent) (Thread)
[User Picture]
From:stumari
Date:April 9th, 2015 06:30 pm (UTC)
(Link)
чисто житейский вопрос - был ли среди ходящих мимо ваш непосредственный начальник?
(Reply) (Thread)
[User Picture]
From:spamsink
Date:April 9th, 2015 07:17 pm (UTC)
(Link)
Не было.
(Reply) (Parent) (Thread)
[User Picture]
From:soloviewoff
Date:April 10th, 2015 02:08 am (UTC)
(Link)
Ссылка по теме - http://blog.llvm.org/2015/04/fuzz-all-clangs.html
(Reply) (Thread)
[User Picture]
From:spamsink
Date:April 10th, 2015 03:06 am (UTC)
(Link)
Я про него слышал, но спасибо, что напомнили. Если мне не изменяет память, фичи -x, позволяющей задавать ключевые слова, еще не было, когда я на него смотрел в прошлый раз. Интересно будет попробовать, хотя это скорее упражнение для лексеров/парсеров, нежели для генераторов кода. Замучается он фаззить объявление переменных, правильную расстановку скобок, и т.п. для получения легального кода.
(Reply) (Parent) (Thread)