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

Windows: enable tests and envoy-static.exe pdb file #13688

Merged
merged 30 commits into from
Dec 1, 2020
Merged

Windows: enable tests and envoy-static.exe pdb file #13688

merged 30 commits into from
Dec 1, 2020

Commits on Oct 29, 2020

  1. Workaround problematic googletests with clang-cl compilation

    Solve problematic missing override declarations of mocks by temporarilly
    adding -Wno-inconsistent-missing-override for clang. (It appears
    googletest on clang-cl isn't handling something that our gcc, clang and
    msvc-cl builds all ignore without the warning override.
    
    Workaround THROW tests which googletest with clang-cl are framing as
    as -Wdiscard errors.
    
    Workaround nodiscard next() method error
    
    Follow up about discarded results of singleton construction and other
    discarded odd or apparently irrelevant function call results.
    
    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe and sunjayBhatia committed Oct 29, 2020
    Configuration menu
    Copy the full SHA
    c26ed9c View commit details
    Browse the repository at this point in the history
  2. Activate the clang-cl pipeline with working opt build

    - Adds a second build clang-cl using the LLVM toolchain
    
    - Introduce debugging output for msvc-cl and clang-cl opt binaries in
      order to be able to unwind stack traces from windows core files.
      (required increasing the available heap on the RBE GCP workers)
    
    - Fix lld-link.exe errors caused by unexported destructors
    
    - Mark additional tests flaky/fails on windows based on clang-cl build
      observed test failures
    
    Potential additional changes for more efficient fastbuild linkage
    
    - Stop using alwayslink/whole_archive logic to link all //source/...
      libraries used by //test/... binaries, because this increases the .exe
      and .pdb output file sizes and computational time. This requires we
      identify the libraries which must be resolved at run-time such as
      singletons, filter configs, etc, vs. those libraries which do not need
      to be preserved in full, and then override any default alwayslink.
    
    - Simplify binary of the objects used. (-OPT:REF optimization) due to
      tremendous size of resulting .exe and .pdb files, one alwayslink is
      resolved.
    
    - Enable dynamic envoy libs and clib/stdlib for test fastbuild objects
      (this presumes the objects would always be invoked on the machine with
      the same compiler and dynamic runtime already installed.) Requires that
      we fix the luajit/moonjit patches to toggle the /MD or /MT flag based on
      bazel config (much like we vary their msvcbuild.bat file for debug vs.
      non-debug.)
    
    Potential changes to bazel rules_cc for better builds
    
    - Deduplicate `-ignore:4221` flag and system library names from link params.
    
    - Allow /DEBUG:FASTLINK to be replaced with /DEBUG:FULL or /DEBUG:NONE,
      and validate that FASTLINK results in faster linkage+invocation times
      for tests than /DEBUG:FULL. Also determine whether /DEBUG:NONE is in
      the spirit of "minimal debugging information" as documented by Bazel.
    
    Signed-off-by: Sunjay Bhatia <sunjayb@vmware.com>
    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe and sunjayBhatia committed Oct 29, 2020
    Configuration menu
    Copy the full SHA
    d74faff View commit details
    Browse the repository at this point in the history
  3. Tag tests broken due to missing dtor in -c opt --config=clang-cl

    Add the broken_clang_cl_dtor tag to tests which cannot compile due
    to some windows-specific clang scope or optimization issue.
    
    Issue is observed when the class used is based on a : public virtual foo,
    base class, that ~foo() = default; destructor declaration is ignored, and
    the linker reports that foo's dtor symbol cannot be resolved at link time.
    It appears that when the base is redefined as : public foo the defect goes
    away. (The virtual base class may be nested in a non-virtual base class).
    
    It isn't possible to solve this by dropping every virtual class inherited,
    due to diamond inheritance patterns.
    
    This may be a compiler bug, or an optimization toggled by /O2 in clang-cl
    which they do not enable in -O2 on linux. Tableing this for the time being.
    
    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    Signed-off-by: Sunjay Bhatia <sunjayb@vmware.com>
    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    sunjayBhatia and wrowe committed Oct 29, 2020
    Configuration menu
    Copy the full SHA
    96b8c29 View commit details
    Browse the repository at this point in the history
  4. Windows: re-disable tests identifed in #13133

    This restores commit 01c6aa7.
    
    This commit needs a finer grain of precision to avoid building on
    clang-cl but not avoid building on msvc-cl.
    
    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe and sunjayBhatia committed Oct 29, 2020
    Configuration menu
    Copy the full SHA
    a04cd1d View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2020

  1. Address test sequencing problems which cause windows flakes

    These fixes reflect that the timing on windows is often less
    synchronous than linux observations, due to the design of the
    underlying socket stack.
    
    - listener_impl_test
        TcpListenerImplTest.SetListenerRejectFractionIntermediate
    
    - Enable no-longer-failing tests (no failure observed in RBE or locally)
        //test/extensions/grpc_credentials/file_based_metadata:integration_test
        //test/extensions/transport_sockets/alts:tsi_handshaker_test
        //test/integration:http2_flood_integration_test
        //test/integration:http2_upstream_integration_test
        //test/integration:overload_integration_test
        //test/server:guarddog_impl_test
    
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    Signed-off-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>
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    wrowe and sunjayBhatia committed Oct 30, 2020
    Configuration menu
    Copy the full SHA
    d73e918 View commit details
    Browse the repository at this point in the history
  2. Demonstrate clang-cl build failures to share with maintainers

    - These skipped tests are all missing exported destructors of pure
      virtual classes. Enable the compilation to fail the clang-cl build
      and demonstrate what needs to be fixed (this may be a clang-cl
      compiler bug, or a gmocks bug, or buried elsewhere, but they do
      not appear to be envoy source code bugs.)
    
    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    Signed-off-by: Sunjay Bhatia <sunjayb@vmware.com>
    wrowe and sunjayBhatia committed Oct 30, 2020
    Configuration menu
    Copy the full SHA
    cdb8b44 View commit details
    Browse the repository at this point in the history
  3. Fix bazel syntax

    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Oct 30, 2020
    Configuration menu
    Copy the full SHA
    869b718 View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2020

  1. Merge remote-tracking branch 'origin/master' into add-clang-cl-build

    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 3, 2020
    Configuration menu
    Copy the full SHA
    5451544 View commit details
    Browse the repository at this point in the history

Commits on Nov 10, 2020

  1. Merge remote-tracking branch 'origin/master' into add-clang-cl-build

    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 10, 2020
    Configuration menu
    Copy the full SHA
    747e250 View commit details
    Browse the repository at this point in the history

Commits on Nov 11, 2020

  1. Drop corrections of EXPECT_ arguments for result values ignored

    - per htuch feedback keep these expectation simple
    - macros can be enhanced, but discard vs non-discard flavors would be required
    - work around the error messages for clang-cl only, and clean up c[xx]opt formatting
    
    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 11, 2020
    Configuration menu
    Copy the full SHA
    e4048af View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'origin/master' into add-clang-cl-build

    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 11, 2020
    Configuration menu
    Copy the full SHA
    db0120b View commit details
    Browse the repository at this point in the history
  3. The clang-cl 11.0.0 release resolves this issue

    We require Bazel > 3.7.0 to support clang-cl 11.0.0 due to faulty error detection
    
    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 11, 2020
    Configuration menu
    Copy the full SHA
    eaea783 View commit details
    Browse the repository at this point in the history
  4. Unmark tests now passing on clang-cl 11.0.0

    Still-failing tests specific to clang-cl 11.0.0 are;
    //test/common/network:dns_impl_test
    //test/extensions/filters/network/sni_dynamic_forward_proxy:proxy_filter_integration_test
    
    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 11, 2020
    Configuration menu
    Copy the full SHA
    bc3d3a4 View commit details
    Browse the repository at this point in the history
  5. Merge remote-tracking branch 'origin/master' into add-clang-cl-build

    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 11, 2020
    Configuration menu
    Copy the full SHA
    5c030e8 View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2020

  1. Merge remote-tracking branch 'origin/master' into add-clang-cl-build

    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    d4884e3 View commit details
    Browse the repository at this point in the history
  2. Anticipate release of bazel 4.0.0

    This does not work with simply updating rules_cc for the llvm 11.0.0 fix,
    the new envoy-build-tools and bazel bundled with the fix are requirements
    
    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 17, 2020
    Configuration menu
    Copy the full SHA
    27d54a7 View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2020

  1. Merge remote-tracking branch 'origin/master' into add-clang-cl-build

    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 19, 2020
    Configuration menu
    Copy the full SHA
    7468926 View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2020

  1. Merge remote-tracking branch 'origin/master' into add-clang-cl-build

    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    sunjayBhatia and wrowe committed Nov 20, 2020
    Configuration menu
    Copy the full SHA
    1a7523d View commit details
    Browse the repository at this point in the history
  2. Reidentify passing and failing/flaky tests for msvc-cl and clang-cl

    - Factors in the Level Triggger PR now on master
    - speed up bazel query by using startup option output_base
    
    Signed-off-by: Sunjay Bhatia <sunjayb@vmware.com>
    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    sunjayBhatia and wrowe committed Nov 20, 2020
    Configuration menu
    Copy the full SHA
    788a39e View commit details
    Browse the repository at this point in the history
  3. Defer clang-cl pipeline, fix format

    clang-cl pipeline is waiting for llvm 11.0.0 bazel 3.7.1 toolchain
    
    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    wrowe and sunjayBhatia committed Nov 20, 2020
    Configuration menu
    Copy the full SHA
    b49a982 View commit details
    Browse the repository at this point in the history
  4. Add ability to read text file in test helper

    Prevents issues when text file test fixtures are cloned with LF or CRLF
    endings
    
    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    wrowe and sunjayBhatia committed Nov 20, 2020
    Configuration menu
    Copy the full SHA
    d794063 View commit details
    Browse the repository at this point in the history
  5. Fix copy paste typo

    Signed-off-by: Sunjay Bhatia <sunjayb@vmware.com>
    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    sunjayBhatia and wrowe committed Nov 20, 2020
    Configuration menu
    Copy the full SHA
    840f6fd View commit details
    Browse the repository at this point in the history
  6. Enable additional tests

    - This activates a few tests observed to fail locally, to confirm
    behavior in the CI pipeline when the clang-cl pipeline is added next
    week.
    
    Co-authored-by: Sunjay Bhatia <sunjayb@vmware.com>
    Signed-off-by: Sunjay Bhatia <sunjayb@vmware.com>
    Co-authored-by: William A Rowe Jr <wrowe@vmware.com>
    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe and sunjayBhatia committed Nov 20, 2020
    Configuration menu
    Copy the full SHA
    3ffbeba View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2020

  1. Reintroduce flaky tag with detail based on CI observation

    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 21, 2020
    Configuration menu
    Copy the full SHA
    d575f73 View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'origin/master' into add-clang-cl-build

    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 21, 2020
    Configuration menu
    Copy the full SHA
    446f5f5 View commit details
    Browse the repository at this point in the history
  3. Re-flake a few tests observed in CI

    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 21, 2020
    Configuration menu
    Copy the full SHA
    f26c01a View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2020

  1. Quick doc fixes prompted by htuch

    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    294dd22 View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branch 'origin/master' into add-clang-cl-build

    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 24, 2020
    Configuration menu
    Copy the full SHA
    dc68e63 View commit details
    Browse the repository at this point in the history

Commits on Nov 25, 2020

  1. Merge remote-tracking branch 'origin/master' into add-clang-cl-build

    Signed-off-by: William A Rowe Jr <wrowe@vmware.com>
    wrowe committed Nov 25, 2020
    Configuration menu
    Copy the full SHA
    5a058de View commit details
    Browse the repository at this point in the history

Commits on Nov 30, 2020

  1. Merge remote-tracking branch 'origin/master' into add-clang-cl-build

    Signed-off-by: Sunjay Bhatia <sunjayb@vmware.com>
    sunjayBhatia committed Nov 30, 2020
    Configuration menu
    Copy the full SHA
    779a753 View commit details
    Browse the repository at this point in the history