diff --git a/Makefile b/Makefile
index 86b6c2f..bdfe6a0 100644
--- a/Makefile
+++ b/Makefile
@@ -16,6 +16,22 @@
 utils/%: utils/%.o libmctp.a
 	$(LINK.o) -o $@ $^
 
+test_util_objs = tests/test-utils.o
+
+tests =
+
+test_targets = $(tests:%=tests/%)
+
+$(test_targets): $(test_util_objs) libmctp.a
+
+$(test_targets): %: %.o
+	$(LINK.o) -o $@ $^
+
+check: $(test_targets)
+	for t in $(test_targets); do echo $$t; $$t || exit 1; done
+
+.PHONY: check
+
 clean:
 	rm -f $(LIBMCTP)
 	rm -f $(LIBMCTP_OBJS)
diff --git a/tests/test-utils.c b/tests/test-utils.c
new file mode 100644
index 0000000..205393c
--- /dev/null
+++ b/tests/test-utils.c
@@ -0,0 +1,61 @@
+
+#include <string.h>
+#include <assert.h>
+
+#include <libmctp.h>
+#include <libmctp-alloc.h>
+
+#include "test-utils.h"
+
+struct mctp_binding_test {
+	struct mctp_binding	binding;
+};
+
+static int mctp_binding_test_tx(struct mctp_binding *b __attribute__((unused)),
+		struct mctp_pktbuf *pkt __attribute__((unused)))
+{
+	/* we are not expecting TX packets */
+	assert(0);
+}
+
+struct mctp_binding_test *mctp_binding_test_init(void)
+{
+	struct mctp_binding_test *test;
+
+	test = __mctp_alloc(sizeof(*test));
+	test->binding.name = "test";
+	test->binding.version = 1;
+	test->binding.tx = mctp_binding_test_tx;
+	return test;
+}
+
+void mctp_binding_test_rx_raw(struct mctp_binding_test *test,
+		void *buf, size_t len)
+{
+	struct mctp_pktbuf *pkt;
+
+	pkt = mctp_pktbuf_alloc(len);
+	assert(pkt);
+	memcpy(mctp_pktbuf_hdr(pkt), buf, len);
+	mctp_bus_rx(&test->binding, pkt);
+	mctp_pktbuf_free(pkt);
+}
+
+void mctp_binding_test_register_bus(struct mctp_binding_test *binding,
+		struct mctp *mctp, mctp_eid_t eid)
+{
+	mctp_register_bus(mctp, &binding->binding, eid);
+}
+
+void mctp_test_stack_init(struct mctp **mctp,
+		struct mctp_binding_test **binding,
+		mctp_eid_t eid)
+{
+	*mctp = mctp_init();
+	assert(*mctp);
+
+	*binding = mctp_binding_test_init();
+	assert(*binding);
+
+	mctp_binding_test_register_bus(*binding, *mctp, eid);
+}
diff --git a/tests/test-utils.h b/tests/test-utils.h
new file mode 100644
index 0000000..b565876
--- /dev/null
+++ b/tests/test-utils.h
@@ -0,0 +1,24 @@
+#ifndef _MCTP_TESTS_TEST_UTILS_H
+#define _MCTP_TESTS_TEST_UTILS_H
+
+#include <libmctp.h>
+
+/* test binding implementation */
+
+/* standard binding interface */
+struct mctp_binding_test *mctp_binding_test_init(void);
+void mctp_binding_test_register_bus(struct mctp_binding_test *binding,
+		struct mctp *mctp, mctp_eid_t eid);
+
+/* internal test binding interface */
+void mctp_binding_test_rx_raw(struct mctp_binding_test *test,
+		void *buf, size_t len);
+
+/* gerneral utility functions */
+
+/* create a MCTP stack, and add a test binding, using the specified EID */
+void mctp_test_stack_init(struct mctp **mctp,
+		struct mctp_binding_test **binding,
+		mctp_eid_t eid);
+
+#endif /* _MCTP_TESTS_TEST_UTILS_H */
