diff --git a/test/flash_copy.c b/test/flash_copy.c
new file mode 100644
index 0000000..565bb0c
--- /dev/null
+++ b/test/flash_copy.c
@@ -0,0 +1,79 @@
+// SPDX-License-Identifier: Apache-2.0
+// Copyright (C) 2018 IBM Corp.
+
+#include <assert.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include "common.h"
+#include "mbox.h"
+#include "flash.h"
+
+#include "test/tmpf.h"
+
+#define TEST_SIZE 4096
+
+static struct tmpf tmp;
+
+void cleanup(void)
+{
+	tmpf_destroy(&tmp);
+}
+
+int main(void)
+{
+	struct mbox_context context;
+	ssize_t processed;
+	int rand_fd;
+	char *src;
+	char *dst;
+	int rc;
+
+	atexit(cleanup);
+
+	mbox_vlog = &mbox_log_console;
+
+	src = malloc(TEST_SIZE);
+	dst = malloc(TEST_SIZE);
+	if (!(src && dst)) {
+		rc = -1;
+		goto free;
+	}
+
+	rand_fd = open("/dev/urandom", O_RDONLY);
+	if (rand_fd < 0) {
+		rc = rand_fd;
+		goto free;
+	}
+
+	rc = tmpf_init(&tmp, "flash-store.XXXXXX");
+	if (rc < 0)
+		goto free;
+
+	processed = read(rand_fd, src, TEST_SIZE);
+	if (processed != TEST_SIZE) {
+		rc = -1;
+		goto free;
+	}
+
+	processed = write(tmp.fd, src, TEST_SIZE);
+	if (processed != TEST_SIZE) {
+		rc = -1;
+		goto free;
+	}
+
+	context.fds[MTD_FD].fd = tmp.fd;
+
+	flash_copy(&context, 0, dst, TEST_SIZE);
+	assert(0 == memcmp(src, dst, TEST_SIZE));
+
+free:
+	free(src);
+	free(dst);
+
+	return rc;
+}
