about summary refs log tree commit diff
path: root/test/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'test/Makefile')
-rw-r--r--test/Makefile47
1 files changed, 47 insertions, 0 deletions
diff --git a/test/Makefile b/test/Makefile
new file mode 100644
index 0000000..fdc89e7
--- /dev/null
+++ b/test/Makefile
@@ -0,0 +1,47 @@
+# Copyright 2018 Google LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+COLLECTOR_TESTS := cpu
+
+COLLECTOR_TEST_PROGS := $(foreach c,$(COLLECTOR_TESTS),$(c)_test)
+COLLECTOR_TEST_OBJS := $(foreach p,$(COLLECTOR_TEST_PROGS),$(p).o)
+COLLECTOR_TEST_IMPLS := $(foreach p,$(COLLECTOR_TEST_PROGS),$(p).impl.o)
+
+CFLAGS = -std=c11 -Wall -Wextra -pedantic -Wno-format-truncation -Os
+
+# test execution
+
+run_all: $(COLLECTOR_TEST_PROGS) run_tests.sh
+	@./run_tests.sh $(COLLECTOR_TEST_PROGS)
+
+.PHONY: run_all
+
+$(COLLECTOR_TEST_OBJS): %.o: %.c harness.h mock_scrape.h
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
+
+$(COLLECTOR_TEST_IMPLS): %_test.impl.o: ../%.c stub.h
+	$(CC) $(CFLAGS) $(CPPFLAGS) -include stub.h -c -o $@ $<
+
+$(COLLECTOR_TEST_PROGS): %: %.o %.impl.o harness.o mock_scrape.o util.o
+	$(CC) -o $@ $^ $(LDFLAGS) $(LDLIBS)
+
+util.o: ../util.c
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
+
+# make clean
+
+.PHONY: clean
+clean:
+	$(RM) $(COLLECTOR_TEST_PROGS) $(COLLECTOR_TEST_OBJS) $(COLLECTOR_TEST_IMPLS)
+	$(RM) harness.o mock_scrape.o util.o