Skip to content

Commit 69a5afc

Browse files
committed
Regards #38: No longer running all of the %f `CHECK()'s when decimal (float) specifiers are disabled.
1 parent 4123dc0 commit 69a5afc

File tree

1 file changed

+21
-4
lines changed

1 file changed

+21
-4
lines changed

test/test_suite.cpp

+21-4
Original file line numberDiff line numberDiff line change
@@ -253,8 +253,10 @@ TEST_CASE("space flag", "[]" ) {
253253
PRINTING_CHECK(" 42", ==, test::sprintf_, buffer, "% 15d", 42);
254254
PRINTING_CHECK(" -42", ==, test::sprintf_, buffer, "% 15d", -42);
255255
PRINTING_CHECK(" -42", ==, test::sprintf_, buffer, "% 15d", -42);
256+
#ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
256257
PRINTING_CHECK(" -42.987", ==, test::sprintf_, buffer, "% 15.3f", -42.987);
257258
PRINTING_CHECK(" 42.987", ==, test::sprintf_, buffer, "% 15.3f", 42.987);
259+
#endif
258260
PRINTING_CHECK(" 1024", ==, test::sprintf_, buffer, "% d", 1024);
259261
PRINTING_CHECK("-1024", ==, test::sprintf_, buffer, "% d", -1024);
260262
PRINTING_CHECK(" 1024", ==, test::sprintf_, buffer, "% i", 1024);
@@ -319,9 +321,11 @@ TEST_CASE("0 flag", "[]" ) {
319321
PRINTING_CHECK("-0042", ==, test::sprintf_, buffer, "%05d", -42);
320322
PRINTING_CHECK("000000000000042", ==, test::sprintf_, buffer, "%015d", 42);
321323
PRINTING_CHECK("-00000000000042", ==, test::sprintf_, buffer, "%015d", -42);
324+
#ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
322325
PRINTING_CHECK("000000000042.12", ==, test::sprintf_, buffer, "%015.2f", 42.1234);
323326
PRINTING_CHECK("00000000042.988", ==, test::sprintf_, buffer, "%015.3f", 42.9876);
324327
PRINTING_CHECK("-00000042.98760", ==, test::sprintf_, buffer, "%015.5f", -42.9876);
328+
#endif
325329
}
326330

327331

@@ -515,7 +519,9 @@ TEST_CASE("width -20", "[]" ) {
515519
PRINTING_CHECK("1024 ", ==, test::sprintf_, buffer, "%-20i", 1024);
516520
PRINTING_CHECK("-1024 ", ==, test::sprintf_, buffer, "%-20i", -1024);
517521
PRINTING_CHECK("1024 ", ==, test::sprintf_, buffer, "%-20u", 1024);
522+
#ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
518523
PRINTING_CHECK("1024.1234 ", ==, test::sprintf_, buffer, "%-20.4f", 1024.1234);
524+
#endif
519525
PRINTING_CHECK("4294966272 ", ==, test::sprintf_, buffer, "%-20u", 4294966272U);
520526
PRINTING_CHECK("777 ", ==, test::sprintf_, buffer, "%-20o", 511);
521527
PRINTING_CHECK("37777777001 ", ==, test::sprintf_, buffer, "%-20o", 4294966785U);
@@ -667,9 +673,11 @@ TEST_CASE("float padding neg numbers", "[]" ) {
667673
char buffer[100];
668674

669675
// space padding
676+
#ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
670677
PRINTING_CHECK("-5.0", ==, test::sprintf_, buffer, "% 3.1f", -5.);
671678
PRINTING_CHECK("-5.0", ==, test::sprintf_, buffer, "% 4.1f", -5.);
672679
PRINTING_CHECK(" -5.0", ==, test::sprintf_, buffer, "% 5.1f", -5.);
680+
#endif
673681

674682
#if PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
675683
PRINTING_CHECK(" -5", ==, test::sprintf_, buffer, "% 6.1g", -5.);
@@ -678,6 +686,7 @@ TEST_CASE("float padding neg numbers", "[]" ) {
678686
#endif
679687

680688
// zero padding
689+
#ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
681690
PRINTING_CHECK("-5.0", ==, test::sprintf_, buffer, "%03.1f", -5.);
682691
PRINTING_CHECK("-5.0", ==, test::sprintf_, buffer, "%04.1f", -5.);
683692
PRINTING_CHECK("-05.0", ==, test::sprintf_, buffer, "%05.1f", -5.);
@@ -686,6 +695,7 @@ TEST_CASE("float padding neg numbers", "[]" ) {
686695
PRINTING_CHECK("-5", ==, test::sprintf_, buffer, "%01.0f", -5.);
687696
PRINTING_CHECK("-5", ==, test::sprintf_, buffer, "%02.0f", -5.);
688697
PRINTING_CHECK("-05", ==, test::sprintf_, buffer, "%03.0f", -5.);
698+
#endif
689699

690700
#if PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
691701
PRINTING_CHECK("-005.0e+00", ==, test::sprintf_, buffer, "%010.1e", -5.);
@@ -735,13 +745,15 @@ TEST_CASE("float", "[]" ) {
735745
char buffer[100];
736746

737747
// test special-case floats using math.h macros
748+
#ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
738749
PRINTING_CHECK(" nan", ==, test::sprintf_, buffer, "%8f", (double) NAN);
739750
PRINTING_CHECK(" inf", ==, test::sprintf_, buffer, "%8f", (double) INFINITY);
740751
PRINTING_CHECK("-inf ", ==, test::sprintf_, buffer, "%-8f", (double) -INFINITY);
741-
752+
#endif
742753
#if PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
743754
PRINTING_CHECK(" +inf", ==, test::sprintf_, buffer, "%+8e", (double) INFINITY);
744755
#endif
756+
#ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
745757
PRINTING_CHECK("3.1415", ==, test::sprintf_, buffer, "%.4f", 3.1415354);
746758
PRINTING_CHECK("30343.142", ==, test::sprintf_, buffer, "%.3f", 30343.1415354);
747759

@@ -752,6 +764,7 @@ TEST_CASE("float", "[]" ) {
752764
CHECK(!strcmp(buffer, "10e+2"));
753765
}
754766
else {
767+
755768
CHECK(!strcmp(buffer, "1000"));
756769
}
757770

@@ -810,7 +823,7 @@ TEST_CASE("float", "[]" ) {
810823
PRINTING_CHECK("3.5", ==, test::sprintf_, buffer, "%.1f", 3.49);
811824
PRINTING_CHECK("a0.5 ", ==, test::sprintf_, buffer, "a%-5.1f", 0.5);
812825
PRINTING_CHECK("a0.5 end", ==, test::sprintf_, buffer, "a%-5.1fend", 0.5);
813-
826+
#endif
814827
#if PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
815828
PRINTING_CHECK("0.5", ==, test::sprintf_, buffer, "%.4g", 0.5);
816829
PRINTING_CHECK("1", ==, test::sprintf_, buffer, "%.4g", 1.0);
@@ -839,13 +852,16 @@ TEST_CASE("float", "[]" ) {
839852
#endif
840853

841854
// out of range for float: should switch to exp notation if supported, else empty
855+
#ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
842856
CAPTURE_AND_PRINT(test::sprintf_, buffer, "%.1f", 1E20);
857+
#endif
843858
#if PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
844859
CHECK(!strcmp(buffer, "1.0e+20"));
845860
#else
846861
CHECK(!strcmp(buffer, ""));
847862
#endif
848863

864+
#ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
849865
// brute force float
850866
bool fail = false;
851867
std::stringstream str;
@@ -857,7 +873,7 @@ TEST_CASE("float", "[]" ) {
857873
fail = fail || !!strcmp(buffer, str.str().c_str());
858874
}
859875
CHECK(!fail);
860-
876+
#endif
861877

862878
#if PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
863879
// brute force exp
@@ -1050,6 +1066,7 @@ DISABLE_WARNING_POP
10501066
TEST_CASE("misc", "[]" ) {
10511067
char buffer[100];
10521068
PRINTING_CHECK("53000atest-20 bit", ==, test::sprintf_, buffer, "%u%u%ctest%d %s", 5, 3000, 'a', -20, "bit");
1069+
#ifdef PRINTF_SUPPORT_FLOAT_SPECIFIERS
10531070
PRINTING_CHECK("0.33", ==, test::sprintf_, buffer, "%.*f", 2, 0.33333333);
10541071
PRINTING_CHECK("1", ==, test::sprintf_, buffer, "%.*d", -1, 1);
10551072
PRINTING_CHECK("foo", ==, test::sprintf_, buffer, "%.3s", "foobar");
@@ -1058,7 +1075,7 @@ TEST_CASE("misc", "[]" ) {
10581075
PRINTING_CHECK("hi x", ==, test::sprintf_, buffer, "%*sx", -3, "hi");
10591076
PRINTING_CHECK("00123 ", ==, test::sprintf_, buffer, "%-20.5i", 123);
10601077
PRINTING_CHECK("-67224.546875000000000000", ==, test::sprintf_, buffer, "%.18f", -67224.546875);
1061-
1078+
#endif
10621079
#if PRINTF_SUPPORT_EXPONENTIAL_SPECIFIERS
10631080
PRINTING_CHECK("0.33", ==, test::sprintf_, buffer, "%.*g", 2, 0.33333333);
10641081
PRINTING_CHECK("3.33e-01", ==, test::sprintf_, buffer, "%.*e", 2, 0.33333333);

0 commit comments

Comments
 (0)