aboutsummaryrefslogtreecommitdiffstats
path: root/util/string/printf_ut.cpp
blob: 1913966e7248092892a5e2037042daf7ea828eca (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include "printf.h" 
 
#include <library/cpp/testing/unittest/registar.h>

Y_UNIT_TEST_SUITE(TStringPrintf) {
    Y_UNIT_TEST(TestSprintf) {
        TString s;
        int len = sprintf(s, "Hello %s", "world");
        UNIT_ASSERT_EQUAL(s, TString("Hello world"));
        UNIT_ASSERT_EQUAL(len, 11); 
    }
 
    Y_UNIT_TEST(TestFcat) {
        TString s;
        int len = sprintf(s, "Hello %s", "world"); 
        UNIT_ASSERT_EQUAL(s, TString("Hello world"));
        UNIT_ASSERT_EQUAL(len, 11); 
        len = fcat(s, " qwqw%s", "as"); 
        UNIT_ASSERT_EQUAL(s, TString("Hello world qwqwas"));
        UNIT_ASSERT_EQUAL(len, 7); 
    } 
 
    Y_UNIT_TEST(TestSpecial) {
        UNIT_ASSERT_EQUAL("4294967295", Sprintf("%" PRIu32, (ui32)(-1)));
    } 

    Y_UNIT_TEST(TestExplicitPositions) {
        UNIT_ASSERT_EQUAL("abc xyz abc", Sprintf("%1$s %2$s %1$s", "abc", "xyz"));
    }
}