Define BitString and BitStringBuffer

BitString is a general purpose class providing the ability to manipulate
individual bits within an allocated section of contiguous memory. A
BitString does not allocate or maintain the memory that it manipulates.

BitStringBuffer is a BitString that allocates and maintains the memory
that it manipulates.

Signed-off-by: Ben Tyner <ben.tyner@ibm.com>
Change-Id: I64e691a169d571dc1fd435a30b666312854346ac
diff --git a/test/meson.build b/test/meson.build
index 6cc59ae..a4e13ea 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -1,3 +1,18 @@
 # build simulator
 subdir('simulator')
 
+# supporting files that need compiled/linked
+test_src = ['../src/util/hei_bit_string.cpp']
+
+# build g-test framework unit tests
+gtests = ['bit_string_test']
+
+gtest = dependency('gtest', main : true, required : false, method : 'system')
+
+if gtest.found()
+    foreach g : gtests
+        test(g, executable(g.underscorify(), g + '.cpp', test_src, \
+                            dependencies : gtest, \
+                            include_directories : incdir))
+  endforeach
+endif