LINUX.ORG.RU

Чем тестировать libc

 ,


0

2

Например, я хочу написать свою libc. Скажем, newlib мне не подходит (лицензия, nih, пох). Чем можно протестировать, реализованы ли все интерфейсы? Или хотя бы объявлены/заглушки (это важнее!).

Ну, т.е., я подозреваю что в природе существует уже тестовый набор, которым тестят тот же newlib, и всякие другие реализации libc. Но я его не нашел.

UPD. Чего-то я слепень. Есть newlib-cygwin/newlib/testsuite, может подойдет.

Если кто что-то еще посоветуют, буду благодарен.

UPD2. Маловато там в newlib-cygwin/newlib/testsuite тестовых данных, явно не вся либа, 17 файлов, 3000 строк в них. Вот оно, тестирование в опенсорсе ;)

UPD3. http://nsz.repo.hu/git/?p=libc-test - вот это мегавещь. Только очень прецизионная, у меня даже хостовый glibc на ней высыпал около 300 ошибок.

Deleted

Ну, взять все заголовочные файлы из любой libc и тупо заимплементить всё что там есть, тестирование простое, тупо вызов последовательно всех функций, причём тест наверное будет лучше написать до реализации, начать с заглушек. Хотя я не программист меня не слушай, ноя бы так и сделал, взял инклуды, вычистил их от специфики, написал вызов каждой функции, для каждой написал заглушку с сообщением что это заплатка, а потом планомерно, функция за функцией имплементил, попутно прогоняя тест единый где мне писалось бы это заглушка, а вот это готовое, а у этого готового фейл и всё.

Deleted ()
Ответ на: комментарий от Deleted

Ну, эт надо нырять в гитхаб и искать, хотя… может это как его автотулзу гнутую заюзать? Оно же проверяет наличие нужных функций.

UDP Я хз у меня в закладках есть это https://lvc.github.io/abi-compliance-checker/ не оно?

Deleted ()

Вот оно, тестирование в опенсорсе ;)

- Билли, твоя libc протестирована?
- Да Джонни автаритетно отвичаю, всюо протестировал своими руками
- А где тесты Билли?
- Ты намекаешь на мою непрофессиональность потому что я гей? АНТИХАРАСМЕНТ Я ПРИЗЫВАЮ ТЕБЯ!
- Всё в порядке Билли я тебе верю
- Гыгыгы
Deleted ()
Ответ на: комментарий от anonymous

К сожалению, этот кейз проверит только возможность запуска там фаерфокса, не более. Не особо полезен, с учетом пердолинга с этим кейзом и того, что фф на таргете просто не поместится

Deleted ()
Ответ на: комментарий от Deleted

Ну такого вроде пока еще нету, зато я вижу:

*Выходит nosystemd-straight-unixway-MEGA-Ъ-project*
- Где тесты? Где все?
- Ууу трансгендеры электронщики набежали, ты что не видишь что либа/программа на божественной сишечки да еще и под HURD? Это тебе не формошлепить, естественно она не имеет багов и изъянов!!! Это тебе не pulseaudio!!! Еще она коншольная и с вим-биндами, срочно забанить критикуна-хипстера.

vladimir_vist ()

Конпеляешь весь свободный софт с твоей либой, если сконпелялось, запускаешь, если работает так же, как с glibc, значит тест пройден :)

Harald ★★★★★ ()
Ответ на: комментарий от Deleted

Можно использовать свою libc как замену стандартной в Gentoo и пересобрать с ней все пакеты. Если ты что-то забыл, но ошибок сборки не будет - значит это никому не нужно (и тебе тоже).

anonymous ()
Ответ на: комментарий от Deleted

Да я её потроха вижу первый раз, хоть до этого приходилось её собирать, ну и использовать, ессно. Она кастомная у нас, под особый SoC собранная. Щас обвились, синкнулись с апстримом, допиливается тулчейн. Ну и возник вопрос в том, что в некоторых конфигурациях кривой libc интерфейс, и несколько итераций фиксов показали, что нужно взяться и обернуть все тестами, что бы не выскакивали undefined symbol в чем-то сложнее hello world

Deleted ()
Ответ на: комментарий от Deleted

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

Deleted ()