From d323ca7b144b3c3d49eda02e72c4af9039df2927 Mon Sep 17 00:00:00 2001 From: TheodorDM Date: Fri, 7 Mar 2025 15:56:22 +0300 Subject: [PATCH 1/4] feat: general structure of project --- Makefile | 37 +++++++++++++++++++++++++++++++++++++ README.md | 8 +++++++- src/main.cpp | 7 +++++++ tests/tests.cpp | 11 +++++++++++ 4 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 Makefile create mode 100644 src/main.cpp create mode 100644 tests/tests.cpp diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c3db2a7 --- /dev/null +++ b/Makefile @@ -0,0 +1,37 @@ +PROJECT = Gwint + +TESTPROJECT = test-$(PROJECT) + +CXX = g++ + +CXXFLAGS = -I. -std=c++17 -Werror -Wall -Wpedantic -g -fPIC + +TESTCXXFLAGS = $(CXXFLAGS) -lgtest -lgtest_main -lpthread + +DEPS = $(wildcard *.h) + +TEST-OBJ = test.o + +.PHONY: default + +default: all + +%.o: %.cpp $(DEPS) + $(CXX) -c -o $@ $< $(CXXFLAGS) + +$(PROJECT): main.o + $(CXX) -o $@ main.o $(CXXFLAGS) + +$(TESTPROJECT): $(TEST-OBJ) + $(CXX) -o $@ $^ $(TESTCXXFLAGS) + +.PHONY: test + +test: $(TESTPROJECT) + +all: $(PROJECT) + +clean: + rm -f *.o + rm -f $(PROJECT) + rm -f $(TESTPROJECT) diff --git a/README.md b/README.md index 2af3cf3..481ce16 100644 --- a/README.md +++ b/README.md @@ -1 +1,7 @@ -# LabWork2 \ No newline at end of file +# LabWork2 +## Author +Мызников Федор Денисович, группа 24.Б82-мм + + +## Contacts +st129282@student.spbu.ru diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..ab18ca3 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,7 @@ +//Myznikov Fedor Denisovich +//st129282@student.spbu.ru +//LabWork2 + + + +int main(int argc, char **argv) {} diff --git a/tests/tests.cpp b/tests/tests.cpp new file mode 100644 index 0000000..4647797 --- /dev/null +++ b/tests/tests.cpp @@ -0,0 +1,11 @@ +//Myznikov Fedor Denisovich +//st129282@student.spbu.ru +//LabWork2 + +#include + +int main(int argc, char** argv) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} From 43f87b71f00bc4c95e06eea626e6a3d8afcd1507 Mon Sep 17 00:00:00 2001 From: TheodorDM Date: Fri, 7 Mar 2025 16:21:14 +0300 Subject: [PATCH 2/4] feat: yml-file for CI/CD --- .github/workflows/check.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/check.yml diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml new file mode 100644 index 0000000..80834f4 --- /dev/null +++ b/.github/workflows/check.yml @@ -0,0 +1,31 @@ +name: workflow CI + +on: + push: + branches: + - repoDesign + pull_request: + branches: + - main + +jobs: + build: + runs-on: ubuntu-22.04 + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install g++ libgtest-dev -y + + - name: Build project + run: make all + + - name: Build test + run: make test + + - name: Run tests + run: ./test-Gwint From 0d7c5b3d0ffc56d7c296c9b147c10c42adff0fac Mon Sep 17 00:00:00 2001 From: TheodorDM Date: Fri, 7 Mar 2025 19:31:16 +0300 Subject: [PATCH 3/4] fix: The Makefile's dependensies are made correct --- Makefile | 38 ++++++++++++++++++++++++++++++-------- 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index c3db2a7..97db4ca 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ PROJECT = Gwint -TESTPROJECT = test-$(PROJECT) +TESTPROJECT = test$(PROJECT) CXX = g++ @@ -8,23 +8,44 @@ CXXFLAGS = -I. -std=c++17 -Werror -Wall -Wpedantic -g -fPIC TESTCXXFLAGS = $(CXXFLAGS) -lgtest -lgtest_main -lpthread -DEPS = $(wildcard *.h) +DEPS = $(wildcard inlude/Gwint/*.h) + +SRC = $(wildcard src/*.cpp) +TEST_SRC = $(wildcard tests/*.cpp) + +OBJDIR = src/obj +TEST_OBJDIR = tests/obj + +OBJ = $(SRC:src/%.cpp=$(OBJDIR)/%.o) +TEST_OBJ = $(TEST_SRC:tests/%.cpp=$(TEST_OBJDIR)/%.o) -TEST-OBJ = test.o .PHONY: default default: all -%.o: %.cpp $(DEPS) +$(OBJDIR)/%.o: $(SRC) $(DEPS) | $(OBJDIR) $(CXX) -c -o $@ $< $(CXXFLAGS) + +$(TEST_OBJDIR)/%.o: $(TEST_SRC) | $(TEST_OBJDIR) + $(CXX) -c -o $@ $< $(CXXFLAGS) + -$(PROJECT): main.o - $(CXX) -o $@ main.o $(CXXFLAGS) +$(PROJECT): $(OBJ) + $(CXX) -o $@ $^ $(CXXFLAGS) -$(TESTPROJECT): $(TEST-OBJ) +$(TESTPROJECT): $(TEST_OBJ) $(CXX) -o $@ $^ $(TESTCXXFLAGS) + + +$(OBJDIR): + mkdir -p $(OBJDIR) +$(TEST_OBJDIR): + mkdir -p $(TEST_OBJDIR) + + + .PHONY: test test: $(TESTPROJECT) @@ -32,6 +53,7 @@ test: $(TESTPROJECT) all: $(PROJECT) clean: - rm -f *.o + rm -rf $(OBJDIR) + rm -rf $(TEST_OBJDIR) rm -f $(PROJECT) rm -f $(TESTPROJECT) From 4442ff24bec9eccec7fd600d9cb515fa19a75895 Mon Sep 17 00:00:00 2001 From: TheodorDM Date: Fri, 7 Mar 2025 19:40:03 +0300 Subject: [PATCH 4/4] fix: an mistake in Run tests' name in check.yml is corrected --- .github/workflows/check.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml index 80834f4..76f81c1 100644 --- a/.github/workflows/check.yml +++ b/.github/workflows/check.yml @@ -28,4 +28,4 @@ jobs: run: make test - name: Run tests - run: ./test-Gwint + run: ./testGwint