Windows: test compilation refresh#11719
Merged
asraa merged 2 commits intoenvoyproxy:masterfrom Jun 25, 2020
greenhouse-org:windows-test-compilation-refresh
Merged
Windows: test compilation refresh#11719asraa merged 2 commits intoenvoyproxy:masterfrom greenhouse-org:windows-test-compilation-refresh
asraa merged 2 commits intoenvoyproxy:masterfrom
greenhouse-org:windows-test-compilation-refresh
Conversation
- Remove TestHeaderMapImplBase constructor that takes a list of std::pair<LowerCaseString, std::string> - MSVC erroneously treats this as ambiguous. It appears the explicit attribute of the LowerCaseString constructor is incorrectly discarded. We are able to reproduce this in a minimal example and see that MSVC is wrong here: https://godbolt.org/z/VjgsAi - To mitigate, remove LowerCaseString based constructor since it is only used in tests, tests always use std::string - Correct use of long in envoy_quic_alarm.cc, explicitly cast to int64_t (long on Windows is 32 bits) - `using std::string_literal::operator""s` is erroneously rejected by MSVC, throwing error C4455. - Instead, simply utilize the namespace and continue to use the operator as is - operator usage could be replaced by `std::string (const char* s, size_t n)` constructor - See https://developercommunity.visualstudio.com/content/problem/270349/warning-c4455-issued-when-using-standardized-liter.html and other related duplicate issues that have not yet been resolved. Signed-off-by: Sunjay Bhatia <sunjayb@vmware.com> Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com> Signed-off-by: William A Rowe Jr <wrowe@vmware.com> Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
sunjayBhatia
commented
Jun 23, 2020
| } | ||
| header_map_->verifyByteSizeInternalForTest(); | ||
| } | ||
| TestHeaderMapImplBase( |
Member
Author
There was a problem hiding this comment.
This was introduced by #11546 cc @mattklein123 in case you have more context/if we should not remove this, the PR description has a godbolt.org link that shows the same issue we see on Windows
Member
Author
|
Blocks PR #11107 |
Member
Author
- yaml-cpp parser should be treating cr+lf as newline per spec Signed-off-by: Sunjay Bhatia <sunjayb@vmware.com> Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com> Signed-off-by: William A Rowe Jr <wrowe@vmware.com> Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
Contributor
|
Local testing indicates this passes on Windows for //test/... addressing all regressions over the past week. So this is ready for review, and in combination with #11107 the CI for windows will incorporate RBE including testing. |
lizan
approved these changes
Jun 25, 2020
chaoqin-li1123
pushed a commit
to chaoqin-li1123/envoy
that referenced
this pull request
Jun 25, 2020
* Windows: test compilation refresh - Remove TestHeaderMapImplBase constructor that takes a list of std::pair<LowerCaseString, std::string> - MSVC erroneously treats this as ambiguous. It appears the explicit attribute of the LowerCaseString constructor is incorrectly discarded. We are able to reproduce this in a minimal example and see that MSVC is wrong here: https://godbolt.org/z/VjgsAi - To mitigate, remove LowerCaseString based constructor since it is only used in tests, tests always use std::string - Correct use of long in envoy_quic_alarm.cc, explicitly cast to int64_t (long on Windows is 32 bits) - `using std::string_literal::operator""s` is erroneously rejected by MSVC, throwing error C4455. - Instead, simply utilize the namespace and continue to use the operator as is - operator usage could be replaced by `std::string (const char* s, size_t n)` constructor - See https://developercommunity.visualstudio.com/content/problem/270349/warning-c4455-issued-when-using-standardized-liter.html and other related duplicate issues that have not yet been resolved. Signed-off-by: Sunjay Bhatia <sunjayb@vmware.com> Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com> Signed-off-by: William A Rowe Jr <wrowe@vmware.com> Co-authored-by: William A Rowe Jr <wrowe@vmware.com> Signed-off-by: chaoqinli <chaoqinli@google.com>
songhu
pushed a commit
to songhu/envoy
that referenced
this pull request
Jun 25, 2020
* Windows: test compilation refresh - Remove TestHeaderMapImplBase constructor that takes a list of std::pair<LowerCaseString, std::string> - MSVC erroneously treats this as ambiguous. It appears the explicit attribute of the LowerCaseString constructor is incorrectly discarded. We are able to reproduce this in a minimal example and see that MSVC is wrong here: https://godbolt.org/z/VjgsAi - To mitigate, remove LowerCaseString based constructor since it is only used in tests, tests always use std::string - Correct use of long in envoy_quic_alarm.cc, explicitly cast to int64_t (long on Windows is 32 bits) - `using std::string_literal::operator""s` is erroneously rejected by MSVC, throwing error C4455. - Instead, simply utilize the namespace and continue to use the operator as is - operator usage could be replaced by `std::string (const char* s, size_t n)` constructor - See https://developercommunity.visualstudio.com/content/problem/270349/warning-c4455-issued-when-using-standardized-liter.html and other related duplicate issues that have not yet been resolved. Signed-off-by: Sunjay Bhatia <sunjayb@vmware.com> Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com> Signed-off-by: William A Rowe Jr <wrowe@vmware.com> Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
yashwant121
pushed a commit
to yashwant121/envoy
that referenced
this pull request
Jul 24, 2020
* Windows: test compilation refresh - Remove TestHeaderMapImplBase constructor that takes a list of std::pair<LowerCaseString, std::string> - MSVC erroneously treats this as ambiguous. It appears the explicit attribute of the LowerCaseString constructor is incorrectly discarded. We are able to reproduce this in a minimal example and see that MSVC is wrong here: https://godbolt.org/z/VjgsAi - To mitigate, remove LowerCaseString based constructor since it is only used in tests, tests always use std::string - Correct use of long in envoy_quic_alarm.cc, explicitly cast to int64_t (long on Windows is 32 bits) - `using std::string_literal::operator""s` is erroneously rejected by MSVC, throwing error C4455. - Instead, simply utilize the namespace and continue to use the operator as is - operator usage could be replaced by `std::string (const char* s, size_t n)` constructor - See https://developercommunity.visualstudio.com/content/problem/270349/warning-c4455-issued-when-using-standardized-liter.html and other related duplicate issues that have not yet been resolved. Signed-off-by: Sunjay Bhatia <sunjayb@vmware.com> Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com> Signed-off-by: William A Rowe Jr <wrowe@vmware.com> Co-authored-by: William A Rowe Jr <wrowe@vmware.com> Signed-off-by: yashwant121 <yadavyashwant36@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Commit Message:
Windows: test compilation refresh
std::pair<LowerCaseString, std::string>
attribute of the LowerCaseString constructor is incorrectly discarded.
We are able to reproduce this in a minimal example and see that MSVC is wrong
here: https://godbolt.org/z/VjgsAi
only used in tests, tests always use std::string
(long on Windows is 32 bits)
using std::string_literal::operator""sis erroneously rejected byMSVC, throwing error C4455.
operator as is
std::string (const char* s, size_t n)constructorand other related duplicate issues that have not yet been resolved.
Additional Description: N/A
Risk Level: Low
Testing: Fixes test compilation on Windows, should be a no-op for other platforms
Docs Changes: N/A
Release Notes: N/A