diff --git a/.github/workflow/test.yml b/.github/workflow/test.yml new file mode 100644 index 0000000..ca318e3 --- /dev/null +++ b/.github/workflow/test.yml @@ -0,0 +1,31 @@ +name: test + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Install dependencies + run: | + sudo apt-get update + sudo apt-get install -y \ + gcc \ + make \ + pkg-config \ + libcjson-dev \ + libncurses-dev \ + git + + - name: Build + run: make + + - name: Run tests + run: make test diff --git a/makefile b/makefile index ca17233..8897536 100644 --- a/makefile +++ b/makefile @@ -23,3 +23,17 @@ run: $(TARGET) clean: rm -f $(TARGET) + +test: $(TARGET) + @timeout 5s ./$(TARGET); \ + status=$$?; \ + if [ $$status -eq 124 ]; then \ + echo "Program ran for 5 seconds without crashing ✅"; \ + exit 0; \ + elif [ $$status -ne 0 ]; then \ + echo "Program crashed ❌"; \ + exit 1; \ + else \ + echo "Program exited cleanly ✅"; \ + exit 0; \ + fi