cpr icon indicating copy to clipboard operation
cpr copied to clipboard

Fix 32bit Unittest Builds

Open COM8 opened this issue 1 year ago • 2 comments

Something like time_t expires_time = 3905119080; // Expires=Wed, 30 Sep 2093 03:18:00 GMT is not easily possible on older 32 bit systems. But this is what we are using in our unit tests.

A solution was to skip converting time_t to a string and providing the string directly.

Changes

  • Replaced time_t with std::chrono where ever possible.

COM8 avatar Aug 17 '24 05:08 COM8

I think this still fails:

/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/head_tests.cpp: In member function 'virtual void HeadTests_CookieHeadTest_Test::TestBody()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/head_tests.cpp:57:111: error: overflow in conversion from 'long long int' to 'time_t' {aka 'long int'} changes value from '3905119080' to '-389848216' [-Werror=overflow]
   57 |             {"SID", "31d4d96e407aad42", "127.0.0.1", false, "/", true, std::chrono::system_clock::from_time_t(3905119080)},
      |                                                                                                               ^~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/head_tests.cpp:58:101: error: overflow in conversion from 'long long int' to 'time_t' {aka 'long int'} changes value from '3905119080' to '-389848216' [-Werror=overflow]
   58 |             {"lang", "en-US", "127.0.0.1", false, "/", true, std::chrono::system_clock::from_time_t(3905119080)},
      |                                                                                                     ^~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [test/CMakeFiles/head_tests.dir/head_tests.cpp.o] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/build'
make[1]: *** [test/CMakeFiles/head_tests.dir/all] Error 2
. . .
[ 50%] Linking CXX executable ../bin/delete_tests
cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/build/test && /opt/local/bin/cmake -E cmake_link_script CMakeFiles/delete_tests.dir/link.txt --verbose=ON
/opt/local/bin/g++-mp-14 -pipe -I/opt/local/libexec/openssl3/include -Os -DNDEBUG -I/opt/local/libexec/openssl3/include -isystem/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -Wall -Wextra -Wpedantic -Werror -arch ppc -mmacosx-version-min=10.6 -Wl,-search_paths_first -Wl,-headerpad_max_install_names -L/opt/local/libexec/openssl3/lib -L/opt/local/lib -Wl,-headerpad_max_install_names CMakeFiles/delete_tests.dir/delete_tests.cpp.o -o ../bin/delete_tests  -Wl,-rpath,/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/build/lib ../lib/libtest_server.a ../lib/libcpr.1.11.0.dylib /opt/local/lib/libcurl.dylib /opt/local/lib/libgtest.a ../lib/libmongoose.a /opt/local/libexec/openssl3/lib/libssl.dylib /opt/local/libexec/openssl3/lib/libcrypto.dylib
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/build'
[ 50%] Built target delete_tests
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/get_tests.cpp: In member function 'virtual void CookiesTests_BasicCookiesTest_Test::TestBody()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/get_tests.cpp:116:111: error: overflow in conversion from 'long long int' to 'time_t' {aka 'long int'} changes value from '3905119080' to '-389848216' [-Werror=overflow]
  116 |             {"SID", "31d4d96e407aad42", "127.0.0.1", false, "/", true, std::chrono::system_clock::from_time_t(3905119080)},
      |                                                                                                               ^~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/get_tests.cpp:117:101: error: overflow in conversion from 'long long int' to 'time_t' {aka 'long int'} changes value from '3905119080' to '-389848216' [-Werror=overflow]
  117 |             {"lang", "en-US", "127.0.0.1", false, "/", true, std::chrono::system_clock::from_time_t(3905119080)},
      |                                                                                                     ^~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/get_tests.cpp: In member function 'virtual void CookiesTests_EmptyCookieTest_Test::TestBody()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/get_tests.cpp:141:95: error: overflow in conversion from 'long long int' to 'time_t' {aka 'long int'} changes value from '3905119080' to '-389848216' [-Werror=overflow]
  141 |             {"SID", "", "127.0.0.1", false, "/", true, std::chrono::system_clock::from_time_t(3905119080)},
      |                                                                                               ^~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/get_tests.cpp:142:96: error: overflow in conversion from 'long long int' to 'time_t' {aka 'long int'} changes value from '3905119080' to '-389848216' [-Werror=overflow]
  142 |             {"lang", "", "127.0.0.1", false, "/", true, std::chrono::system_clock::from_time_t(3905119080)},
      |                                                                                                ^~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/get_tests.cpp: In member function 'virtual void CookiesTests_ClientSetCookiesTest_Test::TestBody()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/get_tests.cpp:163:111: error: overflow in conversion from 'long long int' to 'time_t' {aka 'long int'} changes value from '3905119080' to '-389848216' [-Werror=overflow]
  163 |             {"SID", "31d4d96e407aad42", "127.0.0.1", false, "/", true, std::chrono::system_clock::from_time_t(3905119080)},
      |                                                                                                               ^~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/get_tests.cpp:164:101: error: overflow in conversion from 'long long int' to 'time_t' {aka 'long int'} changes value from '3905119080' to '-389848216' [-Werror=overflow]
  164 |             {"lang", "en-US", "127.0.0.1", false, "/", true, std::chrono::system_clock::from_time_t(3905119080)},
      |                                                                                                     ^~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/get_tests.cpp: In member function 'virtual void CookiesTests_UnencodedCookiesTest_Test::TestBody()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/get_tests.cpp:178:117: error: overflow in conversion from 'long long int' to 'time_t' {aka 'long int'} changes value from '3905119080' to '-389848216' [-Werror=overflow]
  178 |             {"SID", "31d4d  %$  96e407aad42", "127.0.0.1", false, "/", true, std::chrono::system_clock::from_time_t(3905119080)},
      |                                                                                                                     ^~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/get_tests.cpp:179:101: error: overflow in conversion from 'long long int' to 'time_t' {aka 'long int'} changes value from '3905119080' to '-389848216' [-Werror=overflow]
  179 |             {"lang", "en-US", "127.0.0.1", false, "/", true, std::chrono::system_clock::from_time_t(3905119080)},
      |                                                                                                     ^~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [test/CMakeFiles/get_tests.dir/get_tests.cpp.o] Error 1
make[2]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/build'
make[1]: *** [test/CMakeFiles/get_tests.dir/all] Error 2
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/session_tests.cpp: In member function 'virtual void CookiesTests_BasicCookiesTest_Test::TestBody()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/session_tests.cpp:768:111: error: overflow in conversion from 'long long int' to 'time_t' {aka 'long int'} changes value from '3905119080' to '-389848216' [-Werror=overflow]
  768 |             {"SID", "31d4d96e407aad42", "127.0.0.1", false, "/", true, std::chrono::system_clock::from_time_t(3905119080)},
      |                                                                                                               ^~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_devel_cpr/cpr/work/cpr-aa581c9d8060b2502707ad96a04f4829cc524fcb/test/session_tests.cpp:769:101: error: overflow in conversion from 'long long int' to 'time_t' {aka 'long int'} changes value from '3905119080' to '-389848216' [-Werror=overflow]
  769 |             {"lang", "en-US", "127.0.0.1", false, "/", true, std::chrono::system_clock::from_time_t(3905119080)},
      |                                                                                                     ^~~~~~~~~~
cc1plus: all warnings being treated as errors
make[2]: *** [test/CMakeFiles/session_tests.dir/session_tests.cpp.o] Error 1

This is building from master aa581c9d8060b2502707ad96a04f4829cc524fcb with three patches applied: ee964957e646a4ba5701735e29502b77b1022d37, 42d2804574f0eb716210e1df2152994e0698f906 and 6cc140599eb14992f20d5d7153d57a75ef1f9ae4

barracuda156 avatar Aug 17 '24 15:08 barracuda156

Ah, ok. One last try please. Else I will setup a 32bit OS and debug there further.

COM8 avatar Aug 18 '24 05:08 COM8

@COM8 Sorry, I missed your reply. I will try to return to this soon.

barracuda156 avatar Sep 20 '24 15:09 barracuda156