Build matching test cases where there is no initial element in the
queue.
TESTNAME = mpmc-queue
TESTS = mpmc-queue mpmc-1r2w mpmc-2r1w
TESTNAME = mpmc-queue
TESTS = mpmc-queue mpmc-1r2w mpmc-2r1w
+TESTS += mpmc-queue-noinit mpmc-1r2w-noinit mpmc-2r1w-noinit
all: $(TESTS)
mpmc-queue: CPPFLAGS += -DCONFIG_MPMC_READERS=2 -DCONFIG_MPMC_WRITERS=2
mpmc-1r2w: CPPFLAGS += -DCONFIG_MPMC_READERS=1 -DCONFIG_MPMC_WRITERS=2
mpmc-2r1w: CPPFLAGS += -DCONFIG_MPMC_READERS=2 -DCONFIG_MPMC_WRITERS=1
all: $(TESTS)
mpmc-queue: CPPFLAGS += -DCONFIG_MPMC_READERS=2 -DCONFIG_MPMC_WRITERS=2
mpmc-1r2w: CPPFLAGS += -DCONFIG_MPMC_READERS=1 -DCONFIG_MPMC_WRITERS=2
mpmc-2r1w: CPPFLAGS += -DCONFIG_MPMC_READERS=2 -DCONFIG_MPMC_WRITERS=1
+mpmc-queue-noinit: CPPFLAGS += -DCONFIG_MPMC_READERS=2 -DCONFIG_MPMC_WRITERS=2 -DCONFIG_MPMC_NO_INITIAL_ELEMENT
+mpmc-1r2w-noinit: CPPFLAGS += -DCONFIG_MPMC_READERS=1 -DCONFIG_MPMC_WRITERS=2 -DCONFIG_MPMC_NO_INITIAL_ELEMENT
+mpmc-2r1w-noinit: CPPFLAGS += -DCONFIG_MPMC_READERS=2 -DCONFIG_MPMC_WRITERS=1 -DCONFIG_MPMC_NO_INITIAL_ELEMENT
$(TESTS): $(TESTNAME).cc $(TESTNAME).h
$(CXX) -o $@ $< $(CPPFLAGS) $(LDFLAGS)
$(TESTS): $(TESTNAME).cc $(TESTNAME).h
$(CXX) -o $@ $< $(CPPFLAGS) $(LDFLAGS)
//process_params(argc, argv);
printf("%d reader(s), %d writer(s)\n", readers, writers);
//process_params(argc, argv);
printf("%d reader(s), %d writer(s)\n", readers, writers);
+#ifndef CONFIG_MPMC_NO_INITIAL_ELEMENT
+ printf("Adding initial element\n");
int32_t *bin = queue.write_prepare();
store_32(bin, 17);
queue.write_publish();
int32_t *bin = queue.write_prepare();
store_32(bin, 17);
queue.write_publish();
printf("Start threads\n");
printf("Start threads\n");