File: rewrite_vsnprintf_test.cpp

package info (click to toggle)
cataclysm-dda 0.C%2Bgit20190228.faafa3a-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 181,636 kB
  • sloc: cpp: 256,609; python: 2,621; makefile: 862; sh: 495; perl: 37; xml: 33
file content (40 lines) | stat: -rw-r--r-- 2,037 bytes parent folder | download
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
31
32
33
34
35
36
37
38
39
40
#if !defined(_MSC_VER)
// the rewrite_vsnprintf function is explicitly defined for non-MS compilers in output.cpp

#include "catch/catch.hpp"

std::string rewrite_vsnprintf( const char *msg );

TEST_CASE( "Test vsnprintf_rewrite" )
{
    CHECK( rewrite_vsnprintf( "%%hello%%" ) == "%%hello%%" );
    CHECK( rewrite_vsnprintf( "hello" ) == "hello" );
    CHECK( rewrite_vsnprintf( "%%" ) == "%%" );
    CHECK( rewrite_vsnprintf( "" ) == "" );
    CHECK( rewrite_vsnprintf( "%s" ) == "%s" );
    CHECK( rewrite_vsnprintf( "%1s" ) == "%1s" );
    CHECK( rewrite_vsnprintf( "%27s" ) == "%27s" );
    CHECK( rewrite_vsnprintf( "%1$s" ) == "%s" );
    CHECK( rewrite_vsnprintf( "%2$s" ) == "%2$s" );
    CHECK( rewrite_vsnprintf( "%1$0.4f" ) == "%0.4f" );
    CHECK( rewrite_vsnprintf( "%1$0.4f %2f" ) == "%1$0.4f %2f" );
    CHECK( rewrite_vsnprintf( "%1$0.4f %2$f" ) == "%0.4f %f" );
    CHECK( rewrite_vsnprintf( "%" ) == "%" );
    CHECK( rewrite_vsnprintf( "%1$s %1$s" ) == "%1$s %1$s" );
    CHECK( rewrite_vsnprintf( "%2$s %1$s %3$s %4$s %5$s %6$s %7$s %8$s %9$4s %10$40s %11$40s" ) ==
           "%2$s %1$s %3$s %4$s %5$s %6$s %7$s %8$s %9$4s <formatting error> <formatting error>" );

    CHECK( rewrite_vsnprintf( "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$4s %10$40s %11$40s" ) ==
           "%s %s %s %s %s %s %s %s %4s %40s %40s" );

    CHECK( rewrite_vsnprintf( "Needs <color_%1$s>%2$s</color>, a <color_%3$s>wrench</color>, "
                              "either a <color_%4$s>powered welder</color> "
                              "(and <color_%5$s>welding goggles</color>) or "
                              "<color_%6$s>duct tape</color>, and level <color_%7$s>%8$d</color> "
                              "skill in mechanics.%9$s%10$s" )  ==
           "Needs <color_%s>%s</color>, a <color_%s>wrench</color>, either a "
           "<color_%s>powered welder</color> (and <color_%s>welding goggles</color>) or "
           "<color_%s>duct tape</color>, and level <color_%s>%d</color> skill in mechanics.%s%s" );
}

#endif