Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2017
This session will present how to leverage C++'s diverse set of analysis tools with existing Continuous Integration services to increase a project's quality continuously over time. In additional, we will discuss the advantages and disadvantages of using these tools using real world open source examples. Those interested in Continuous Integration or learning new ways to increase the quality of their code will enjoy this presentation.
Continuous Integration (CI) is the act of continuously integrating small changes to a code base. The goal is to identify integration issues prior to making a change, ensuring a project's quality over time. Thanks to virtualization, today we have many services that provide automated continuous integration that support C++ including Travis CI and AppVeyor on Windows, Linux and MacOS. Typically CI is used to compile and sometimes execute automated tests to ensure a change to a project doesn't result in a compilation issue, or regression. C++ is however is a diverse, rich environment with numerous analysis tools available to C++ developers. These tools can be integrated into these CI services to provide automated analysis of any change being made to a project prior to it's acceptance to ensure the highest possible quality of the project.
During this session we will step through an open source project designed to demonstrate how to integrate different C++ analysis tools into your CI services. These tools include static analysis (Clang Tidy, Coverity Scan, Codeacy and CppCheck), dynamic analysis (Valgrind and Google's Sanitizers), source formatting (Astyle and Clang Format), documentation (Doxygen), code coverage (Codecov, Coveralls, and LLVM's Software-based Code Coverage), cross platform tests (Windows, Cygwin, Linux, and macOS), compiler tests (GCC, Clang, and Visual Studio) and finally C++ libraries designed to assist in reliability and automated testing (Catch, Hippomocks and the Guideline Support Library). In addition we will openly discuss the advantages and disadvantages of using various analysis tools, how to integrate these tools into existing projects (both large and small) as well as common problems encountered while using these tools autonomously in a CI environment.
Rian Quinn: AIS, Inc., Senior Engineer
Dr. Rian Quinn is a Senior Principal Investigator in the Trusted Information Systems Group at Assured Information Security, Inc. were he has focused on trusted computing and hypervisor related technologies for nearly 10 years. He holds a Ph.D. in Computer Engineering with specializations in Information Assurance and Computer Architectures from Binghamton University. He is a lead developer and co-founder of the Bareflank Hypervisor, and is an active member of several open source projects including OpenXT. Specialties: computer architectures, virtualization, operating systems, kernel programming, cyber security, and open source.
Videos Filmed & Edited by Bash Films: http://www.BashFilms.com