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 */
