LINUX.ORG.RU

Unittest for snprintf etc

 ,


1

1

Добрый день! А нет ли у кого набора юниттестов для snprintf? Желательно в формате gtest. пришлось писать свою реализацию, хотелсь бы получше покрыть тестами.

В какой-нибудь libc есть.

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

нету тега С

www.linux.org.ru/tag/c

Да и в плюсах snprintf никто не отменял.

Если под плюсы и велосипедить форматирование, то не в виде аналога snprintf.

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

Просто у кого-то руки не оттуда растут. Как вообще можно в наше время иметь ошибки с printf, когда любой адекватный компилятор умеет проверять соответствие аргументов форматной строке.

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

Как вообще можно в наше время иметь ошибки с printf

Конструируя формат-строку по условиям, например, а не хардкодя её. Компиляторы адекватные, это программисты некачественные.

ошибки с printf

Одна из основных ошибок - это само использование printf-like.

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

Вот из-за таких вот «девелоперов», возомнивших себя кулхацкерами (на самом деле c++-неосиляторов), потом приходится вычищать код от их «художеств».

invy ★★★★★
()
Последнее исправление: invy (всего исправлений: 1)
Ответ на: комментарий от utf8nowhere

Как вообще можно в наше время иметь ошибки с printf, когда любой адекватный компилятор умеет проверять соответствие аргументов форматной строке.

А насколько просто использовать printf внутри шаблонов?

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

С проблемами на работе и проекциями — к соответствующему специалисту, пожалуйста.

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

Элементарно. Например, твоя функция аналог printf(«%d»,10); будет выдавать «12»

vromanov ★★
() автор топика
Ответ на: комментарий от invy

Неосилятор это тот, кто в вопросе про С функцию не смог удержаться от холивара С vs C++

vromanov ★★
() автор топика

Можно пример? Что ты хочешь видеть на входе и получить в резултате? (если тема актуальна вообще)

Не совсем понятно как ты хочешь тестировать свой snprintf()

reprimand ★★★★★
()
Последнее исправление: reprimand (всего исправлений: 1)
Ответ на: комментарий от reprimand

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

TEST(oprintf, uint64s_hex) {
    char str[200];
    string_stream_t s = STRING_STREAM(str);
    uint64_t a1 = 1, a2 = 0xFFFFFFFFFFFFFFFF;
    oprintf(&s.s, "[%llx][%llx][%llX][%llX][%17llX][%17llX][%017llX][%017llX]", a1, a2, a1, a2, a1, a2, a1, a2);
    EXPECT_STREQ(
            "[1][ffffffffffffffff][1][FFFFFFFFFFFFFFFF][                1][ FFFFFFFFFFFFFFFF][00000000000000001][0FFFFFFFFFFFFFFFF]",
            str);
}

vromanov ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.