diff --git a/testsuite/slurm_unit/slurmctld/Makefile.am b/testsuite/slurm_unit/slurmctld/Makefile.am
index 331ec64d5741d2bfbf08aa6468b4da525858199d..7e85469445c0a14d482bb131002784dd664d88a4 100644
--- a/testsuite/slurm_unit/slurmctld/Makefile.am
+++ b/testsuite/slurm_unit/slurmctld/Makefile.am
@@ -1,8 +1,9 @@
 AUTOMAKE_OPTIONS = foreign
 
-noinst_PROGRAMS = job_mgr-test
+noinst_PROGRAMS = job_mgr-test job_step-test
 
 INCLUDES = -I$(top_srcdir)/src/common
+job_step_test_LDADD = $(top_srcdir)/src/common/libcommon.la
 LDADD   = $(top_srcdir)/src/common/libcommon.la \
 		$(top_srcdir)/src/slurmctld/job_scheduler.o \
 		$(top_srcdir)/src/slurmctld/node_scheduler.o \
@@ -13,3 +14,4 @@ LDADD   = $(top_srcdir)/src/common/libcommon.la \
 		$(top_srcdir)/src/slurmctld/parse_spec.o  \
 		$(top_srcdir)/src/slurmctld/read_config.o \
 		$(top_srcdir)/src/api/libslurm.la
+
diff --git a/testsuite/slurm_unit/slurmctld/job_step-test.c b/testsuite/slurm_unit/slurmctld/job_step-test.c
new file mode 100644
index 0000000000000000000000000000000000000000..6ee7e17e67f5a9cf2de567f611bed2fe51017348
--- /dev/null
+++ b/testsuite/slurm_unit/slurmctld/job_step-test.c
@@ -0,0 +1,54 @@
+
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <syslog.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <unistd.h>
+
+#include <src/common/slurm_protocol_api.h>
+
+#define DEBUG_MODULE
+int
+main( int argc, char* argv[])
+{
+
+	job_step_create_request_msg_t request = {   5, 5, 1, "lx[1-10]" }; 
+	slurm_msg_t request_msg ;
+	slurm_msg_t response_msg;
+
+	request_msg.msg_type = REQUEST_JOB_STEP_CREATE;
+	request_msg.data = &request;
+
+	slurm_send_recv_controller_msg ( &request_msg , &response_msg);	
+
+
+	if ( response_msg.msg_type != RESPONSE_JOB_STEP_CREATE )
+	{
+		printf("DAMN\n");
+	}
+	else 
+	{
+		job_step_create_response_msg_t* msg = (job_step_create_response_msg_t *) response_msg.data ;
+		printf("job_step_id = %u\n ", msg->	job_step_id );
+		printf("node_list = %s\n", msg->node_list );
+		printf("credentials:\n\tjob_id = %u\n\tuser_id = %u\n\tnode_list = %s\n\texperation_time = %u\n\tsignature = %u\n\n", 
+					msg->credentials->job_id, 
+					msg->credentials->user_id, 
+					msg->credentials->node_list, 
+					msg->credentials->experation_time, 
+					msg->credentials->signature);
+#ifdef HAVE_LIBELAN3
+    /* print the elan stuff */
+#endif
+
+
+	}
+}