[libgens/tests] EEPRomI2CTest: Cast the result of time() to unsigned int.
authorDavid Korth <gerbilsoft@gerbilsoft.com>
Wed, 2 Sep 2015 00:36:18 +0000 (20:36 -0400)
committerDavid Korth <gerbilsoft@gerbilsoft.com>
Wed, 2 Sep 2015 00:36:18 +0000 (20:36 -0400)
time() returns time_t, which is 64-bit on most 64-bit OSes and some
compilers on 32-bit OSes, including Mac OS X, MinGW-w64, and MSVC 2010.

This fixes a compiler warning on MSVC 2010:

src\libgens\tests\EEPRomI2CTest\EEPRomI2CTest.cpp(252) : warning C4244: 'initializing' : conversion from 'time_t' to 'unsigned int', possible loss of data

Interestingly, neither 64-bit Linux gcc nor MinGW-w64 complained about this.

Prefix the random number seed fprintf() with "0x" to make it more obvious
that it's a hexadecimal number, just in case the number happens to only
have digits between 0 and 9.

src/libgens/tests/EEPRomI2CTest/EEPRomI2CTest.cpp

index 968ba60..50964f1 100644 (file)
@@ -249,9 +249,9 @@ int main(int argc, char *argv[])
        fprintf(stderr, "LibGens test suite: EEPRomI2C tests.\n");
        LibGens::Init();
        // Initialize the random number seed.
-       unsigned int seed = time(nullptr);
+       unsigned int seed = (unsigned int)time(nullptr);
        srand(seed);
-       fprintf(stderr, "Random number seed is: %08X\n\n", seed);
+       fprintf(stderr, "Random number seed is: 0x%08X\n\n", seed);
        fflush(nullptr);
 
        ::testing::InitGoogleTest(&argc, argv);