+lock_traits_test_SOURCES = LockTraitsTest.cpp
+lock_traits_test_LDADD = libfollytestmain.la
+TESTS += lock_traits_test
+
+concurrent_skiplist_test_SOURCES = ConcurrentSkipListTest.cpp
+concurrent_skiplist_test_LDADD = libfollytestmain.la
+TESTS += concurrent_skiplist_test
+
+concurrent_skiplist_benchmark_SOURCES = ConcurrentSkipListBenchmark.cpp
+concurrent_skiplist_benchmark_LDADD = libfollytestmain.la $(top_builddir)/libfollybenchmark.la
+check_PROGRAMS += concurrent_skiplist_benchmark
+
+conv_benchmark_SOURCES = ConvBenchmark.cpp
+conv_benchmark_LDADD = libfollytestmain.la $(top_builddir)/libfollybenchmark.la
+check_PROGRAMS += conv_benchmark
+
+histogram_test_SOURCES = HistogramTest.cpp
+histogram_test_LDADD = libfollytestmain.la
+TESTS += histogram_test
+
+group_varint_test_SOURCES = GroupVarintTest.cpp
+group_varint_test_LDADD = libfollytestmain.la
+TESTS += group_varint_test
+
+map_util_test_SOURCES = MapUtilTest.cpp
+map_util_test_LDADD = libfollytestmain.la
+TESTS += map_util_test
+
+string_test_SOURCES = StringTest.cpp
+string_test_LDADD = libfollytestmain.la
+TESTS += string_test
+
+conditionally_existent_test_SOURCES = ConditionallyExistentTest.cpp
+conditionally_existent_test_LDADD = libfollytestmain.la
+TESTS += conditionally_existent_test
+
+producer_consumer_queue_test_SOURCES = ProducerConsumerQueueTest.cpp
+producer_consumer_queue_test_LDADD = libfollytestmain.la
+TESTS += producer_consumer_queue_test
+
+atomic_hash_array_test_SOURCES = AtomicHashArrayTest.cpp
+atomic_hash_array_test_LDADD = libfollytestmain.la
+TESTS += atomic_hash_array_test
+
+atomic_hash_map_test_SOURCES = AtomicHashMapTest.cpp
+atomic_hash_map_test_LDADD = libfollytestmain.la $(top_builddir)/libfollybenchmark.la
+TESTS += atomic_hash_map_test
+
+format_test_SOURCES = FormatTest.cpp
+format_test_LDADD = libfollytestmain.la $(top_builddir)/libfollybenchmark.la
+TESTS += format_test
+
+fingerprint_test_SOURCES = FingerprintTest.cpp
+fingerprint_test_LDADD = libfollytestmain.la $(top_builddir)/libfollybenchmark.la
+TESTS += fingerprint_test
+
+portability_test_SOURCES = PortabilityTest.cpp
+portability_test_LDADD = libfollytestmain.la
+TESTS += portability_test
+
+spooky_hash_v1_test_SOURCES = SpookyHashV1Test.cpp
+spooky_hash_v1_test_LDADD = libfollytestmain.la $(top_builddir)/libfollybenchmark.la
+TESTS += spooky_hash_v1_test
+
+spooky_hash_v2_test_SOURCES = SpookyHashV2Test.cpp
+spooky_hash_v2_test_LDADD = libfollytestmain.la $(top_builddir)/libfollybenchmark.la
+TESTS += spooky_hash_v2_test
+
+token_bucket_test_SOURCES = TokenBucketTest.cpp
+token_bucket_test_LDADD = libfollytestmain.la $(top_builddir)/libfollybenchmark.la
+TESTS += token_bucket_test
+
+thread_name_test_SOURCES = ThreadNameTest.cpp
+thread_name_test_LDADD = libfollytestmain.la
+TESTS += thread_name_test
+
+indestructible_test_SOURCES = IndestructibleTest.cpp
+indestructible_test_LDADD = libfollytestmain.la
+TESTS += indestructible_test
+
+portability_time_test_SOURCES = ../portability/test/TimeTest.cpp
+portability_time_test_LDADD = libfollytestmain.la
+TESTS += portability_time_test
+
+try_test_SOURCES = TryTest.cpp
+try_test_LDADD = libfollytestmain.la
+TESTS += try_test
+
+unit_test_SOURCES = UnitTest.cpp
+unit_test_LDADD = libfollytestmain.la
+TESTS += unit_test
+
+futures_test_SOURCES = \
+ ../futures/test/CollectTest.cpp \
+ ../futures/test/ContextTest.cpp \
+ ../futures/test/ConversionTest.cpp \
+ ../futures/test/CoreTest.cpp \
+ ../futures/test/EnsureTest.cpp \
+ ../futures/test/ExecutorTest.cpp \
+ ../futures/test/FSMTest.cpp \
+ ../futures/test/FilterTest.cpp \
+ ../futures/test/FutureTest.cpp \
+ ../futures/test/HeaderCompileTest.cpp \
+ ../futures/test/InterruptTest.cpp \
+ ../futures/test/MapTest.cpp \
+ ../futures/test/NonCopyableLambdaTest.cpp \
+ ../futures/test/PollTest.cpp \
+ ../futures/test/PromiseTest.cpp \
+ ../futures/test/ReduceTest.cpp \
+ ../futures/test/RetryingTest.cpp \
+ ../futures/test/SelfDestructTest.cpp \
+ ../futures/test/SharedPromiseTest.cpp \
+ ../futures/test/ThenCompileTest.cpp \
+ ../futures/test/ThenTest.cpp \
+ ../futures/test/TimekeeperTest.cpp \
+ ../futures/test/TimesTest.cpp \
+ ../futures/test/UnwrapTest.cpp \
+ ../futures/test/ViaTest.cpp \
+ ../futures/test/WaitTest.cpp \
+ ../futures/test/WillEqualTest.cpp \
+ ../futures/test/WindowTest.cpp \
+ ../futures/test/WhenTest.cpp \
+ ../futures/test/WhileDoTest.cpp
+
+futures_test_LDADD = libfollytestmain.la
+TESTS += futures_test
+
+function_test_SOURCES = FunctionTest.cpp
+function_test_LDADD = libfollytestmain.la
+TESTS += function_test
+
+ssl_test_SOURCES = \
+ ../ssl/test/OpenSSLHashTest.cpp
+ssl_test_LDADD = libfollytestmain.la -lcrypto
+TESTS += ssl_test
+
+check_PROGRAMS += $(TESTS)