From 146cc82523347b02a93b7807828aa11037d7e92c Mon Sep 17 00:00:00 2001 From: Philipp Grabovoi Date: Mon, 9 Oct 2023 00:04:58 +0300 Subject: [PATCH 1/6] add test conf --- .github/classroom/autograding.json | 24 ++++++++++++++++++++++++ .github/workflows/classroom.yml | 16 ++++++++++++++++ CMakeLists.txt | 11 ++++++----- README.md | 18 +++++++++++------- 4 files changed, 57 insertions(+), 12 deletions(-) create mode 100644 .github/classroom/autograding.json create mode 100644 .github/workflows/classroom.yml diff --git a/.github/classroom/autograding.json b/.github/classroom/autograding.json new file mode 100644 index 0000000..c4d2f6a --- /dev/null +++ b/.github/classroom/autograding.json @@ -0,0 +1,24 @@ +{ + "tests": [ + { + "name": "just_simple_test", + "setup": "", + "run": "cmake . && make just_simple_test", + "input": "", + "output": "", + "comparison": "included", + "timeout": 1, + "points": null + }, + { + "name": "test_using_simple_test", + "setup": "", + "run": "cmake . && make test_using_simple_test", + "input": "", + "output": "", + "comparison": "included", + "timeout": 1, + "points": null + } + ] +} \ No newline at end of file diff --git a/.github/workflows/classroom.yml b/.github/workflows/classroom.yml new file mode 100644 index 0000000..8ce19cc --- /dev/null +++ b/.github/workflows/classroom.yml @@ -0,0 +1,16 @@ +name: GitHub Classroom Workflow + +on: [push] + +permissions: + checks: write + actions: read + contents: read + +jobs: + build: + name: Autograding + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: education/autograding@v1 diff --git a/CMakeLists.txt b/CMakeLists.txt index ecc610b..badcc81 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,13 +10,14 @@ else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wextra-semi -O1 -g -fsanitize=address -fno-omit-frame-pointer") endif() +if(NOT DEFINED ENVCI) + find_package(GTest REQUIRED) + include(GoogleTest) -find_package(GTest REQUIRED) -include(GoogleTest) + add_executable(test_using_gtest test_using_gtest.cpp gtest_compatible_test.h) + target_link_libraries(test_using_gtest GTest::gtest GTest::gtest_main) +endif() add_executable(just_simple_test just_simple_test.cpp simple_test.h) add_executable(test_using_simple_test test_using_simple_test.cpp gtest_compatible_test.h simple_test.h) - -add_executable(test_using_gtest test_using_gtest.cpp gtest_compatible_test.h) -target_link_libraries(test_using_gtest GTest::gtest GTest::gtest_main) diff --git a/README.md b/README.md index f9128bc..6a463f5 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,8 @@ Original repository: https://github.com/nickolaym/simple_test ## Macros ### TEST -``` + +```c++ TEST(suite, name, [enabled]) { test body goes here; } @@ -24,7 +25,8 @@ TEST(suite, name, [enabled]) { - `enabled` is optional bool expression (runtime constant, evaluated before main()) introduces auxillary object test_name and function -``` + +```c++ void func_name() { test body goes here; } @@ -36,7 +38,8 @@ Please don't catch(...) inside it without special need. GTest compatibility: if suite or name starts with `DISABLED`, the test will skip. ### ASSERT_..., EXPECT_... -``` + +```c++ ASSERT_CMP(a, op, b) EXPECT_CMP(a, op, b) ASSERT_EQ, ASSERT_LT, ASSERT_LE, ... as in GTest @@ -72,7 +75,7 @@ So, they should be printable. To print extra messages if an assetion fails, use following syntax: -``` +```c++ ASSERT_BLABLABLA() << common << C++ << stream << args; ASSERTION_FAULT(common, C++, stream, args); @@ -82,7 +85,7 @@ Note that if the assertion passes, nothing will evaluate. ### Show green assertions -``` +```c++ SHOW_GREEN_ASSERTIONS(flag) ``` where `flag` is boolean @@ -98,7 +101,8 @@ See examples in just_simple_test.cpp Just implementation of `int main()` Feel free to call a subsequent function from your `main()` with your fixtures: -``` + +```c++ int main(int argc, char** argv) { ... int result = simple_test::testing_main(argc, argv); @@ -109,7 +113,7 @@ int main(int argc, char** argv) { #### Arguments -``` +```c++ your_test_application [-h] [--help] [-l] [--list] {patterns} ``` From cc49823d4b12ac5b606cf0d3cca2684de2beeefe Mon Sep 17 00:00:00 2001 From: Philipp Grabovoi Date: Mon, 9 Oct 2023 00:10:34 +0300 Subject: [PATCH 2/6] try fix --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index badcc81..5fdb5fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wextra-semi -O1 -g -fsanitize=address -fno-omit-frame-pointer") endif() -if(NOT DEFINED ENVCI) +if(NOT DEFINED ENV{CI}) find_package(GTest REQUIRED) include(GoogleTest) From 97222dee63a3cf73d35671d5e7baf0a12a8229b3 Mon Sep 17 00:00:00 2001 From: Philipp Grabovoi Date: Mon, 9 Oct 2023 00:13:52 +0300 Subject: [PATCH 3/6] try if/else --- CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5fdb5fd..921897b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,9 @@ else() set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -Wextra-semi -O1 -g -fsanitize=address -fno-omit-frame-pointer") endif() -if(NOT DEFINED ENV{CI}) +if(DEFINED ENV{CI}) + message("Skipping gtest part") +else() find_package(GTest REQUIRED) include(GoogleTest) From e5e97b07078129e218f7011aa6b491a156f4ac5d Mon Sep 17 00:00:00 2001 From: Philipp Grabovoi Date: Mon, 9 Oct 2023 00:15:40 +0300 Subject: [PATCH 4/6] try manual CI env flag --- .github/workflows/classroom.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/classroom.yml b/.github/workflows/classroom.yml index 8ce19cc..caf1d98 100644 --- a/.github/workflows/classroom.yml +++ b/.github/workflows/classroom.yml @@ -7,6 +7,9 @@ permissions: actions: read contents: read +env: + CI: true + jobs: build: name: Autograding From b1db515efd98ca43894adcef8bd1b478f3f09e9f Mon Sep 17 00:00:00 2001 From: Philipp Grabovoi Date: Mon, 9 Oct 2023 00:22:14 +0300 Subject: [PATCH 5/6] add manual part --- .github/workflows/classroom.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/classroom.yml b/.github/workflows/classroom.yml index caf1d98..368fb70 100644 --- a/.github/workflows/classroom.yml +++ b/.github/workflows/classroom.yml @@ -17,3 +17,9 @@ jobs: steps: - uses: actions/checkout@v2 - uses: education/autograding@v1 + manual-run: + name: Run comp tests + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - run: cmake . && make all From a43253ef444d91c66958f27dad5c7bfbd225b899 Mon Sep 17 00:00:00 2001 From: Philipp Grabovoi Date: Mon, 9 Oct 2023 00:27:52 +0300 Subject: [PATCH 6/6] change in conf + try fix tests --- .github/classroom/autograding.json | 4 ++-- .github/workflows/classroom.yml | 7 ++----- just_simple_test.cpp | 4 ++-- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/.github/classroom/autograding.json b/.github/classroom/autograding.json index c4d2f6a..8202322 100644 --- a/.github/classroom/autograding.json +++ b/.github/classroom/autograding.json @@ -3,7 +3,7 @@ { "name": "just_simple_test", "setup": "", - "run": "cmake . && make just_simple_test", + "run": "CI=1 cmake . && make just_simple_test", "input": "", "output": "", "comparison": "included", @@ -13,7 +13,7 @@ { "name": "test_using_simple_test", "setup": "", - "run": "cmake . && make test_using_simple_test", + "run": "CI=1 cmake . && make test_using_simple_test", "input": "", "output": "", "comparison": "included", diff --git a/.github/workflows/classroom.yml b/.github/workflows/classroom.yml index 368fb70..bb86378 100644 --- a/.github/workflows/classroom.yml +++ b/.github/workflows/classroom.yml @@ -7,18 +7,15 @@ permissions: actions: read contents: read -env: - CI: true - jobs: build: - name: Autograding + name: Test in autograding env runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: education/autograding@v1 manual-run: - name: Run comp tests + name: Test in step env runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 diff --git a/just_simple_test.cpp b/just_simple_test.cpp index 0c6a37f..f7c17de 100644 --- a/just_simple_test.cpp +++ b/just_simple_test.cpp @@ -9,8 +9,8 @@ TEST(should_fail, vector_capacity) { std::vector xs; xs.reserve(100500); xs.clear(); - EXPECT_CMP(xs.capacity(), ==, 0) << " ahaha ? ahaha!"; - ASSERT_CMP(xs.size(), ==, 1) << " ahaha ? ahaha!"; + EXPECT_CMP(xs.capacity(), ==, 0ul) << " ahaha ? ahaha!"; + ASSERT_CMP(xs.size(), ==, 1ul) << " ahaha ? ahaha!"; } TEST(should_fail, lots_of_failed_expectations) {