build-unit-test-docker: Add catch2 unit-test framework

This test framework is similar to googletest, but much more c++11
friendly and supports sectioned test semantics that are much more ugly
to implement in googletest.

https://github.com/catchorg/Catch2/blob/master/docs/why-catch.md

Change-Id: Icd547ba54e372e1656df58418c0dd1c661ca5a8d
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/build-unit-test-docker.sh b/build-unit-test-docker.sh
index 8651888..497f540 100755
--- a/build-unit-test-docker.sh
+++ b/build-unit-test-docker.sh
@@ -92,6 +92,7 @@
 declare -A PKG_REV=(
   [boost]=1.69.0
   [cereal]=v1.2.2
+  [catch2]=v2.10.0
   [CLI11]=v1.8.0
   [fmt]=5.3.0
   # Snapshot from 2019-03-10
@@ -265,6 +266,15 @@
 make -j$(nproc) && \
 make install
 
+FROM openbmc-base as openbmc-catch2
+RUN curl -L https://github.com/catchorg/Catch2/archive/${PKG_REV['catch2']}.tar.gz | tar -xz && \
+cd Catch2-* && \
+mkdir build && \
+cd build && \
+cmake ${CMAKE_FLAGS[@]} -DCATCH_BUILD_TESTING=OFF -DCATCH_INSTALL_DOCS=OFF .. && \
+make -j$(nproc) && \
+make install
+
 FROM openbmc-base as openbmc-cereal
 RUN curl -L https://github.com/USCiLab/cereal/archive/${PKG_REV['cereal']}.tar.gz | tar -xz && \
 cp -a cereal-*/include/cereal/ ${PREFIX}/include/