This repository contains a sample C++ project demonstrating the capabilities of integrating GitHub with an continuous integration system TravisCI and AppVeyor.
Automatic build status:
- TravisCI: (intentional failing tests for demonstration, click the image)
- AppVeyor: (intentional failing tests for demonstration, click the image)
The only supported functionality is the computation of a factorial.
It uses CATCH, a modern, C++-native, header-only, framework for unit-tests, TDD and BDD, for unit testing the code.
Furthermore, this project illustrates the repository guidelines for projects at CRoCS laboratory. The full guidelines can be found at CRoCS wiki.
The project uses GNU Make for building. To build, run 'make' in the root directory. The following targets are available:
- all (automatic) build both main and testing binary
- main build the main binary
- main-test build the binary running tests
- clean remove all intermediate object files
Another option is to load a MS Visual Studio solution file ci-demo (or use it for MSBuild). The solution defines 2 projects ci-demo and ci-demo-testing corresponding to main and main-test targets of GNU Make respectably.
The main binary is not configurable.
The testing binary responds to standard CATCH arguments, see the documentation.
This project is developed at the Centre for Research on Cryptography and Security, Masaryk University, Brno, Czech Republic. The initial version was authored by Martin Ukrop in autumn 2014 for the purposes of CRoCS OpenLab.
It's licensed under MIT licence, see the file in the repository root. CATCH (src/catch.hpp) is licenced under Boost Software License.