diff --git a/.github/workflows/linux-clang-build.yml b/.github/workflows/linux-clang-build.yml index 9f26095e7..80d999697 100644 --- a/.github/workflows/linux-clang-build.yml +++ b/.github/workflows/linux-clang-build.yml @@ -28,7 +28,7 @@ jobs: && sudo add-apt-repository 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main' \ && sudo launchpad-getkeys \ && sudo apt-get update -y \ - && sudo apt-get install -y lld-16 ninja-build build-essential libstdc++-13-dev \ + && sudo apt-get install -y lld-16 ninja-build build-essential libstdc++-13-dev \ clang-16 clang-tools-16 llvm-16 lcov - name: Initialize submodules diff --git a/.github/workflows/linux-gxx-build.yml b/.github/workflows/linux-gxx-build.yml new file mode 100644 index 000000000..1383b9335 --- /dev/null +++ b/.github/workflows/linux-gxx-build.yml @@ -0,0 +1,26 @@ +name: g++ + +on: + push: + branches: + - 'main' + pull_request: + +env: + BUILD_TYPE: Debug + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Build docker image + run: docker build -t test . + + - name: Run docker container + run: docker run test diff --git a/.gitignore b/.gitignore index c3f248440..f35a4c39a 100644 --- a/.gitignore +++ b/.gitignore @@ -47,4 +47,6 @@ latex/ CMakeSettings.json .vs/ - out/ \ No newline at end of file + out/ + build-linux-gxx + build-linux-clang diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..fee1115d1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM ubuntu:23.10 + +RUN apt update -y +RUN apt install -y cmake ninja-build g++-13 libstdc++-13-dev + +COPY include/ faker-cxx/include/ +COPY src/ faker-cxx/src/ +COPY externals/ faker-cxx/externals/ +COPY cmake/ faker-cxx/cmake/ +COPY CMakeLists.txt faker-cxx/CMakeLists.txt +COPY run_linux_gxx_tests.sh faker-cxx/run_linux_gxx_tests.sh + +RUN chmod 777 ./faker-cxx/run_linux_gxx_tests.sh + +ENTRYPOINT cd faker-cxx && ./run_linux_gxx_tests.sh diff --git a/run_linux_gxx_tests.sh b/run_linux_gxx_tests.sh new file mode 100644 index 000000000..407dac886 --- /dev/null +++ b/run_linux_gxx_tests.sh @@ -0,0 +1,11 @@ +mkdir build-linux-gxx + +cd build-linux-gxx || exit 1 + +cmake .. -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_CXX_COMPILER=/usr/bin/g++-13 \ + -GNinja + +cmake --build . + +ctest -C Debug --output-on-failure diff --git a/src/NumberTest.cpp b/src/NumberTest.cpp index 42719d553..4b7a2b213 100644 --- a/src/NumberTest.cpp +++ b/src/NumberTest.cpp @@ -1,8 +1,9 @@ #include "faker-cxx/Number.h" -#include "gtest/gtest.h" #include +#include "gtest/gtest.h" + using namespace ::testing; using namespace faker; @@ -41,7 +42,7 @@ TEST_F(NumberTest, givenSingleArgument_shouldCorrectlyResolveToTwoArgsOverload) TEST_F(NumberTest, givenValidRangeArguments_shouldGenerateDecimalNumberThatIsInGivenRange) { - const float actualRandomNumber = Number::decimal(2.f, 10.f); + const std::floating_point auto actualRandomNumber = Number::decimal(2.f, 10.f); ASSERT_TRUE(actualRandomNumber >= 2.f); ASSERT_TRUE(actualRandomNumber <= 10.f); @@ -49,12 +50,11 @@ TEST_F(NumberTest, givenValidRangeArguments_shouldGenerateDecimalNumberThatIsInG TEST_F(NumberTest, givenRangeWithSameNumberSection_shouldGenerateThisNumberForDecimal) { - const float actualRandomNumber = Number::decimal(2.f, 2.f); + const std::floating_point auto actualRandomNumber = Number::decimal(2.f, 2.f); ASSERT_EQ(actualRandomNumber, 2.f); } - TEST_F(NumberTest, givenDiscreteDistribution_shouldGenerateNumberThatIsInGivenRange) { auto dist = std::binomial_distribution(10, 0.5); @@ -69,7 +69,8 @@ TEST_F(NumberTest, givenRealDistribution_shouldGenerateNumberThatIsInGivenRange) { auto dist = std::normal_distribution(5.f, 2.f); - const float actualRandomNumber = Number::decimal>(dist, 2.f, 10.f); + const std::floating_point auto actualRandomNumber = + Number::decimal>(dist, 2.f, 10.f); ASSERT_TRUE(actualRandomNumber >= 2.f); ASSERT_TRUE(actualRandomNumber <= 10.f);