facebook / wdt

Warp speed Data Transfer (WDT) is an embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths.
https://www.facebook.com/WdtOpenSource
Other
2.86k stars 392 forks source link

build wdt_url_test failed #212

Closed bolunfeng closed 3 years ago

bolunfeng commented 3 years ago

[ 87%] Building CXX object CMakeFiles/wdt_url_test.dir/test/WdtUrlTest.cpp.o In file included from /home/fbl/workspace/wdt/gtest/src/gtest/googletest/include/gtest/gtest.h:387, from /home/fbl/workspace/wdt/test/EncryptionTest.cpp:4: /home/fbl/workspace/wdt/test/EncryptionTest.cpp: In function ‘void facebook::wdt::testEncryption(facebook::wdt::EncryptionType, const string&)’: /home/fbl/workspace/wdt/test/EncryptionTest.cpp:76:57: error: no matching function for call to ‘find(std::vector<std::__cxx11::basic_string >::iterator, std::vector<std::__cxx11::basic_string >::iterator, std::string&)’ 76 | EXPECT_EQ(std::find(tags.begin(), tags.end(), curTag), tags.end()); | ^ /home/fbl/workspace/wdt/gtest/src/gtest/googletest/include/gtest/gtest_pred_impl.h:77:52: note: in definition of macro ‘GTESTASSERT’ 77 | if (const ::testing::AssertionResult gtest_ar = (expression)) \ | ^~~~~~ /home/fbl/workspace/wdt/gtest/src/gtest/googletest/include/gtest/gtest_pred_impl.h:164:3: note: in expansion of macro ‘GTEST_PREDFORMAT2’ 164 | GTEST_PREDFORMAT2(pred_format, v1, v2, GTEST_NONFATALFAILURE) | ^~~~~~~ /home/fbl/workspace/wdt/gtest/src/gtest/googletest/include/gtest/gtest.h:2040:3: note: in expansion of macro ‘EXPECT_PRED_FORMAT2’ 2040 | EXPECT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2) | ^~~~~~~ /home/fbl/workspace/wdt/test/EncryptionTest.cpp:76:5: note: in expansion of macro ‘EXPECT_EQ’ 76 | EXPECT_EQ(std::find(tags.begin(), tags.end(), curTag), tags.end()); | ^~~~~ In file included from /usr/include/c++/9/bits/locale_facets.h:48, from /usr/include/c++/9/bits/basic_ios.h:37, from /usr/include/c++/9/ios:44, from /usr/include/c++/9/ostream:38, from /usr/include/glog/logging.h:43, from /home/fbl/workspace/wdt/../wdt/ErrorCodes.h:12, from /home/fbl/workspace/wdt/../wdt/util/EncryptionUtils.h:13, from /home/fbl/workspace/wdt/test/EncryptionTest.cpp:1: /usr/include/c++/9/bits/streambuf_iterator.h:373:5: note: candidate: ‘template typename gnu_cxx::__enable_if<std::is_char<_CharT2>::value, std::istreambuf_iterator<_CharT> >::type std::find(std::istreambuf_iterator<_CharT>, std::istreambuf_iterator<_CharT>, const _CharT2&)’ 373 | find(istreambuf_iterator<_CharT> first, | ^~~~ /usr/include/c++/9/bits/streambuf_iterator.h:373:5: note: template argument deduction/substitution failed: In file included from /home/fbl/workspace/wdt/gtest/src/gtest/googletest/include/gtest/gtest.h:387, from /home/fbl/workspace/wdt/test/EncryptionTest.cpp:4: /home/fbl/workspace/wdt/test/EncryptionTest.cpp:76:57: note: ‘__gnu_cxx::normal_iterator<std::__cxx11::basic_string*, std::vector<std::__cxx11::basic_string > >’ is not derived from ‘std::istreambuf_iterator<_CharT>’ 76 | EXPECT_EQ(std::find(tags.begin(), tags.end(), curTag), tags.end()); | ^ /home/fbl/workspace/wdt/gtest/src/gtest/googletest/include/gtest/gtest_pred_impl.h:77:52: note: in definition of macro ‘GTESTASSERT’ 77 | if (const ::testing::AssertionResult gtest_ar = (expression)) \ | ^~~~~~ /home/fbl/workspace/wdt/gtest/src/gtest/googletest/include/gtest/gtest_pred_impl.h:164:3: note: in expansion of macro ‘GTEST_PREDFORMAT2’ 164 | GTEST_PREDFORMAT2(pred_format, v1, v2, GTEST_NONFATALFAILURE) | ^~~~~~~ /home/fbl/workspace/wdt/gtest/src/gtest/googletest/include/gtest/gtest.h:2040:3: note: in expansion of macro ‘EXPECT_PRED_FORMAT2’ 2040 | EXPECT_PRED_FORMAT2(::testing::internal::EqHelper::Compare, val1, val2) | ^~~~~~~ /home/fbl/workspace/wdt/test/EncryptionTest.cpp:76:5: note: in expansion of macro ‘EXPECT_EQ’ 76 | EXPECT_EQ(std::find(tags.begin(), tags.end(), curTag), tags.end()); | ^~~~~ make[2]: *** [CMakeFiles/encryption_test.dir/build.make:63:CMakeFiles/encryption_test.dir/test/EncryptionTest.cpp.o]

JustinTimperio commented 3 years ago

Sadly Facebook has basically abandoned community support for this. I wrote a tool called warp-cli which also includes a shell install script that uses a locked version of FOLLY and WDT.

You can install it with curl https://raw.githubusercontent.com/JustinTimperio/warp-cli/master/build/install.sh | sudo bash

davide125 commented 3 years ago

@bolunfeng, can you share a few more details on your environment so I can try to repro the failure you're seeing here?

@JustinTimperio, Facebook employee here; I'm trying to get this back in better shape and will triage open issues and PRs as time allows in the coming weeks.

JustinTimperio commented 3 years ago

@davide125 Glad to hear that this may repo may actually get some love. I have been considering abandoning and archiving my project because of how bad this repo has become. I opened #199 over a year ago and the community was able to patch it, yet I still need to hackly patch the cmake list during every install because no one has bothered to merge this change.

bolunfeng commented 3 years ago

@davide125 I updated the latest version of the code and the problem has been resolved. Thank you very much. I have questions in the future, can I ask you directly by email or other means?

davide125 commented 3 years ago

Feel free to file issues here for bugs, or to ask in the gitter chat linked in the README for questions.

To set expectations: wdt is widely used at Facebook, but it's mostly "done" and is not being actively developed beyond the occasional bug fix; my goal here is to get pending PRs merged, triage the issues, sort out the build so it works (hopefully) reliably, and ideally get the CI moved over to github actions so we don't regress it in the future. The main catalyst for this an ongoing effort to get wdt packaged in Fedora that I'm trying to help with.