Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[MSVC][CTest] Folly encountered 4 errors while running CTest #2201

Closed
NEIL-smtg opened this issue May 14, 2024 · 3 comments
Closed

[MSVC][CTest] Folly encountered 4 errors while running CTest #2201

NEIL-smtg opened this issue May 14, 2024 · 3 comments

Comments

@NEIL-smtg
Copy link

NEIL-smtg commented May 14, 2024

We are utilizing Folly as a part of RWC testing to optimize MSVC compilers. Recently, Folly successfully built with MSVC but encountered 4 errors while running CTest.

The following tests FAILED:
	543 - fs_util_test.Simple.UniquePath (Failed)
	544 - fs_util_test.Simple.UniquePathDefaultModel (Failed)
	981 - ssl_session_test.SSLSessionTest.BasicTest (Failed)
	982 - ssl_session_test.SSLSessionTest.NullSessionResumptionTest (Failed)
Errors while running CTest

Step to reproduce:

  1. Open VS2022 x64 command prompt.
  2. set VSCMD_SKIP_SENDTELEMETRY=1 & "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\Tools\VsDevCmd.bat" -host_arch=amd64 -arch=amd64
  3. set _CL_=/DGLOG_NO_ABBREVIATED_SEVERITIES /DNOMINMAX /DGLOG_USE_GLOG_EXPORT
  4. mkdir C:\gitP\Mircosoft C:\gitP\facebook
  5. git -C "C:\gitP\Microsoft" clone https://github.com/microsoft/vcpkg.git
  6. cd /d C:\gitP\Microsoft\vcpkg
  7. bootstrap-vcpkg.bat 2>&1
  8. vcpkg.exe install --x-asset-sources=x-azurl,https://vcpkg.storage.devpackages.microsoft.io/artifacts/;x-block-origin --x-buildtrees-root=C:\vcpkgbt --keep-going --recurse boost-context boost-crc boost-filesystem boost-multi-index boost-program-options boost-random boost-regex boost-thread double-conversion fmt glog gtest libevent libsodium openssl snappy zlib zstd lz4 liblzma bzip2 --triplet x64-windows --clean-after-build 2>&1
  9. git -C "C:\gitP\facebook" clone https://github.com/facebook/folly.git
  10. mkdir C:\gitP\facebook\folly\build_amd64
  11. cd /d C:\gitP\facebook\folly\build_amd64
  12. cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=C:\gitP\Microsoft\vcpkg\scripts\buildsystems\vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DBUILD_SHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_TESTS=ON ..
  13. ninja
  14. ctest --build-config Release --output-on-failure -R "fs_util_test.*|ssl_session_*" 2>&1

Expected result:
They passed.

Actual result:

C:\gitP\facebook\folly\folly\experimental\io\test\FsUtilTest.cpp(107): error: Value of: res
Expected: matches regular expression "foo-[0-9a-f]{2}-bar-[0-9a-f]{2}-baz-[0-9a-f]{2}-cat-[0-9a-f]{2}-dog-[0-9a-f]{2}-bat-[0-9a-f]{2}-rat-[0-9a-f]{2}-tar-[0-9a-f]{2}-bar"
  Actual: "foo-b7-bar-8c-baz-53-cat-92-dog-bd-bat-c5-rat-7e-tar-ef-bar"

[  FAILED  ] Simple.UniquePath (32 ms)
[----------] 1 test from Simple (32 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (32 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] Simple.UniquePath

 1 FAILED TEST

C:\gitP\facebook\folly\folly\experimental\io\test\FsUtilTest.cpp(119): error: Value of: res
Expected: matches regular expression "([0-9a-f]{4}-){3}[0-9a-f]{4}"
  Actual: "3398-23e0-db02-e93d"

[  FAILED  ] Simple.UniquePathDefaultModel (19 ms)
[----------] 1 test from Simple (20 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (20 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] Simple.UniquePathDefaultModel

 1 FAILED TEST

    Start 981: ssl_session_test.SSLSessionTest.BasicTest
5/6 Test #981: ssl_session_test.SSLSessionTest.BasicTest ...................***Failed    0.02 sec
Note: Google Test filter = SSLSessionTest.BasicTest
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from SSLSessionTest
[ RUN      ] SSLSessionTest.BasicTest
unknown file: error: C++ exception with description "boost::filesystem::read_symlink: The system cannot find the path specified [system:3]: "/proc/self/exe"" thrown in SetUp().

[  FAILED  ] SSLSessionTest.BasicTest (6 ms)
[----------] 1 test from SSLSessionTest (6 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (6 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] SSLSessionTest.BasicTest

 1 FAILED TEST

    Start 982: ssl_session_test.SSLSessionTest.NullSessionResumptionTest
6/6 Test #982: ssl_session_test.SSLSessionTest.NullSessionResumptionTest ...***Failed    0.02 sec
Note: Google Test filter = SSLSessionTest.NullSessionResumptionTest
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from SSLSessionTest
[ RUN      ] SSLSessionTest.NullSessionResumptionTest
unknown file: error: C++ exception with description "boost::filesystem::read_symlink: The system cannot find the path specified [system:3]: "/proc/self/exe"" thrown in SetUp().

[  FAILED  ] SSLSessionTest.NullSessionResumptionTest (6 ms)
[----------] 1 test from SSLSessionTest (6 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (6 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] SSLSessionTest.NullSessionResumptionTest

 1 FAILED TEST

Logs:
ctest.log

OS:
Windows Server 2022 Datacenter

@Orvid
Copy link
Contributor

Orvid commented May 14, 2024

Simple.UniquePath and Simple.UniquePathDefaultModel feel like there's a compiler issue at play, as the Actual values do appear to match the regex they are supposed to be matching.

The SSLSessionTest is more interesting, as boost seems to believe it's running on linux? There's no reference in our side of the code to /proc/self/exe.

That said, we've caused some issues while working through the process of getting OSS Folly building with Buck2, and one of those issues caused our internal version of folly-config.h (which hard-codes a bunch of stuff) to be used rather than generating it properly via CMake, so it's possible something about that has confused boost or even gtest itself. We should hopefully have the repo back into a good state by the end of the week for the next release.

@NEIL-smtg
Copy link
Author

Thanks for the update, I noticed that if SSLSessionTest is using commit d2e577a, the test will pass on Windows.

@NEIL-smtg
Copy link
Author

Closing this issue as these tests no longer fail.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants