diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e0d38d2b1..d7fc58c1f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -27,13 +27,34 @@ jobs: submodules: true - name: Add wget run: apt-get update && apt-get install -y wget - - name: Setup cmake + - name: Get cmake uses: jwlawson/actions-setup-cmake@v1.11 - name: Configure run: cmake -S . -B build -DCLI11_CUDA_TESTS=ON - name: Build run: cmake --build build -j2 + + boost-build: + name: Boost build + runs-on: ubuntu-latest + container: zouzias/boost:1.76.0 + steps: + - uses: actions/checkout@v1 + with: + submodules: true + - name: Add deps + run: apt-get update && apt-get install make + - name: Get CMake + uses: jwlawson/actions-setup-cmake@v1.11 + - name: Configure + run: cmake -S . -B build -DCLI11_BOOST=ON + - name: Build + run: cmake --build build -j2 + - name: Run tests + run: ctest --output-on-failure + working-directory: build + cmake-config: name: CMake config check runs-on: ubuntu-latest diff --git a/tests/OptionalTest.cpp b/tests/OptionalTest.cpp index 6b07f01c7..5ea20be9d 100644 --- a/tests/OptionalTest.cpp +++ b/tests/OptionalTest.cpp @@ -258,11 +258,13 @@ TEST_CASE_METHOD(TApp, "BoostOptionalVector", "[optional]") { "-v,--vec", [&opt](const std::vector &v) { opt = v; }, "some vector") ->expected(3); run(); - CHECK(!opt); + bool checkOpt = static_cast(opt); + CHECK(!checkOpt); args = {"-v", "1", "4", "5"}; run(); - CHECK(opt); + checkOpt = static_cast(opt); + CHECK(checkOpt); std::vector expV{1, 4, 5}; CHECK(expV == *opt); } @@ -272,14 +274,17 @@ TEST_CASE_METHOD(TApp, "BoostOptionalVectorEmpty", "[optional]") { app.add_option>("-v,--vec", opt)->expected(0, 3)->allow_extra_args(); // app.add_option("-v,--vec", opt)->expected(0, 3)->allow_extra_args(); run(); - CHECK(!opt); + bool checkOpt = static_cast(opt); + CHECK(!checkOpt); args = {"-v"}; opt = std::vector{4, 3}; run(); - CHECK(!opt); + checkOpt = static_cast(opt); + CHECK(!checkOpt); args = {"-v", "1", "4", "5"}; run(); - CHECK(opt); + checkOpt = static_cast(opt); + CHECK(checkOpt); std::vector expV{1, 4, 5}; CHECK(expV == *opt); } @@ -289,14 +294,17 @@ TEST_CASE_METHOD(TApp, "BoostOptionalVectorEmptyDirect", "[optional]") { app.add_option_no_stream("-v,--vec", opt)->expected(0, 3)->allow_extra_args(); // app.add_option("-v,--vec", opt)->expected(0, 3)->allow_extra_args(); run(); - CHECK(!opt); + bool checkOpt = static_cast(opt); + CHECK(!checkOpt); args = {"-v"}; opt = std::vector{4, 3}; run(); - CHECK(!opt); + checkOpt = static_cast(opt); + CHECK(!checkOpt); args = {"-v", "1", "4", "5"}; run(); - CHECK(opt); + checkOpt = static_cast(opt); + CHECK(checkOpt); std::vector expV{1, 4, 5}; CHECK(expV == *opt); }