Skip to content

Fix Windows hang in testing #417

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

Merged
merged 47 commits into from
Dec 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
8d7bfbb
Move bytes library to Catch2
bifurcation Dec 14, 2023
dc34c56
Convert tls_syntax to Catch2
bifurcation Dec 14, 2023
49b775c
Convert hpke to Catch2
bifurcation Dec 14, 2023
e7c75c8
Convert mls_vectors to Catch2
bifurcation Dec 14, 2023
dbca5d2
Convert main test directory to Catch2
bifurcation Dec 14, 2023
2080e36
Make remaining vcpkg changes
bifurcation Dec 14, 2023
7693e93
Re-enable unit tests on Windows
bifurcation Dec 14, 2023
a700ffb
Align vcpkg files on the same baseline
bifurcation Dec 14, 2023
60b54a4
Upgrade to Catch2 version 3
bifurcation Dec 14, 2023
f722f0c
Re-enable sanitizers to see if they fix Windows hangs
bifurcation Dec 14, 2023
e559182
Revert changes to CI
bifurcation Dec 14, 2023
ff7fdbe
Re-enable tests and disable message protection test
bifurcation Dec 14, 2023
b9284ee
Disable tree hashes test
bifurcation Dec 14, 2023
10eb58f
Turn off more tests
bifurcation Dec 14, 2023
9754206
Turn off yet more tests
bifurcation Dec 14, 2023
a282d8f
Turn off still more tests
bifurcation Dec 14, 2023
2de208d
Turn off one more test
bifurcation Dec 14, 2023
c354632
Add tmate debugging
bifurcation Dec 14, 2023
286b5de
Run tmate on Windows
bifurcation Dec 14, 2023
02118b6
Re-enable tests
bifurcation Dec 14, 2023
0d1c2a9
Update CI workflow
bifurcation Dec 15, 2023
7262d12
Merge branch 'main' into windows-hang
bifurcation Dec 15, 2023
1ca5f71
Profile down and instrument test vector test
bifurcation Dec 15, 2023
3dbeda7
Remove verify lines
bifurcation Dec 15, 2023
4847fb4
More printf debugging!
bifurcation Dec 15, 2023
ee32d86
Destructure return
bifurcation Dec 15, 2023
6c9d51a
Minimize more
bifurcation Dec 15, 2023
78129e0
Go ahead and build/run in the runner
bifurcation Dec 15, 2023
3186f9a
Quote arguments?
bifurcation Dec 15, 2023
9c86168
Simplify return value
bifurcation Dec 15, 2023
108f7b4
Remove all the logic
bifurcation Dec 15, 2023
2feeeb9
Silence error
bifurcation Dec 15, 2023
42dc7eb
Invoke var::visit
bifurcation Dec 15, 2023
2dcd61f
Really remove *all* the logic
bifurcation Dec 15, 2023
939dfe4
Silence compiler error
bifurcation Dec 15, 2023
0e0ef76
Everything but the var::visit
bifurcation Dec 15, 2023
1558ff0
Merely define the variant function
bifurcation Dec 15, 2023
d130650
Add __declspec work-around
bifurcation Dec 15, 2023
63c71da
Shift to dummy member work-around
bifurcation Dec 15, 2023
83c7cae
Take the brakes off
bifurcation Dec 15, 2023
0ba7a32
Take the brakes all the way off
bifurcation Dec 15, 2023
d87f329
Turn tmate back on
bifurcation Dec 15, 2023
a3218a9
Take the brakes all the way off
bifurcation Dec 15, 2023
b7cc914
Expand comment on work-around
bifurcation Dec 15, 2023
38f07c5
Merge branch 'main' into windows-hang
bifurcation Dec 15, 2023
5e5b91d
Merge branch 'main' into windows-hang
bifurcation Dec 15, 2023
e594f19
Re-enable Windows unit tests
bifurcation Dec 15, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 4 additions & 10 deletions .github/workflows/main_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,16 +63,10 @@ jobs:
run: |
cmake --build "${{ env.BUILD_DIR }}" --target test

## XXX(RLB): Unit tests are currently disabled on Windows because of two
## conflicting bugs. On the one hand, doctest has a bug that causes
## doctest_discover_tests to fail when tests are built with sanitizers. On the
## other hand, if tests are not built with sanitizers, then the unit tests hang
## in the middle of the test run.
##
## - name: Unit Test (Windows)
## if: matrix.os == 'windows-latest'
## run: |
## cmake --build "${{ env.BUILD_DIR }}" --target RUN_TESTS
- name: Unit Test (Windows)
if: matrix.os == 'windows-latest'
run: |
cmake --build "${{ env.BUILD_DIR }}" --target RUN_TESTS

interop-test:
if: github.event.pull_request.draft == false
Expand Down
8 changes: 8 additions & 0 deletions include/mls/common.h
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,14 @@ template<class... Ts>
struct overloaded : Ts...
{
using Ts::operator()...;

// XXX(RLB) MSVC has a bug where it incorrectly computes the size of this
// type. Microsoft claims they have fixed it in the latest MSVC, and GitHub
// claims they are running a version with the fix. But in practice, we still
// hit it. Including this dummy variable is a work-around.
//
// https://developercommunity.visualstudio.com/t/runtime-stack-corruption-using-stdvisit/346200
int dummy = 0;
};

// clang-format off
Expand Down