@@ -992,6 +992,38 @@ TEST_CASE("[String] sprintf") {
992992 REQUIRE (error == false );
993993 CHECK (output == String (" fish 143 frog" ));
994994
995+ // INT64_MIN
996+ format = " fish %d frog" ;
997+ args.clear ();
998+ args.push_back (INT64_MIN);
999+ output = format.sprintf (args, &error);
1000+ REQUIRE (error == false );
1001+ CHECK (output == String (" fish -9223372036854775808 frog" ));
1002+
1003+ // INT64_MIN hex (lower)
1004+ format = " fish %x frog" ;
1005+ args.clear ();
1006+ args.push_back (INT64_MIN);
1007+ output = format.sprintf (args, &error);
1008+ REQUIRE (error == false );
1009+ CHECK (output == String (" fish -8000000000000000 frog" ));
1010+
1011+ // INT64_MIN hex (upper)
1012+ format = " fish %X frog" ;
1013+ args.clear ();
1014+ args.push_back (INT64_MIN);
1015+ output = format.sprintf (args, &error);
1016+ REQUIRE (error == false );
1017+ CHECK (output == String (" fish -8000000000000000 frog" ));
1018+
1019+ // INT64_MIN octal
1020+ format = " fish %o frog" ;
1021+ args.clear ();
1022+ args.push_back (INT64_MIN);
1023+ output = format.sprintf (args, &error);
1024+ REQUIRE (error == false );
1025+ CHECK (output == String (" fish -1000000000000000000000 frog" ));
1026+
9951027 // /// Reals
9961028
9971029 // Real
0 commit comments