On 08/06/16 21:55, Emilio G. Cota wrote: > Signed-off-by: Emilio G. Cota <c...@braap.org>
Acked-by: Sergey Fedorov <sergey.fedo...@linaro.org> > --- > tests/.gitignore | 1 + > tests/Makefile | 5 ++++- > tests/test-qht-par.c | 56 > ++++++++++++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 61 insertions(+), 1 deletion(-) > create mode 100644 tests/test-qht-par.c > > diff --git a/tests/.gitignore b/tests/.gitignore > index d19023e..840ea39 100644 > --- a/tests/.gitignore > +++ b/tests/.gitignore > @@ -52,6 +52,7 @@ test-qemu-opts > test-qdist > test-qga > test-qht > +test-qht-par > test-qmp-commands > test-qmp-commands.h > test-qmp-event > diff --git a/tests/Makefile b/tests/Makefile > index 7b00301..7d63d16 100644 > --- a/tests/Makefile > +++ b/tests/Makefile > @@ -74,6 +74,8 @@ check-unit-y += tests/test-qdist$(EXESUF) > gcov-files-test-qdist-y = util/qdist.c > check-unit-y += tests/test-qht$(EXESUF) > gcov-files-test-qht-y = util/qht.c > +check-unit-y += tests/test-qht-par$(EXESUF) > +gcov-files-test-qht-par-y = util/qht.c > check-unit-y += tests/test-bitops$(EXESUF) > check-unit-$(CONFIG_HAS_GLIB_SUBPROCESS_TESTS) += > tests/test-qdev-global-props$(EXESUF) > check-unit-y += tests/check-qom-interface$(EXESUF) > @@ -400,7 +402,7 @@ test-obj-y = tests/check-qint.o tests/check-qstring.o > tests/check-qdict.o \ > tests/test-opts-visitor.o tests/test-qmp-event.o \ > tests/rcutorture.o tests/test-rcu-list.o \ > tests/test-qdist.o \ > - tests/test-qht.o tests/qht-bench.o > + tests/test-qht.o tests/qht-bench.o tests/test-qht-par.o > > $(test-obj-y): QEMU_INCLUDES += -Itests > QEMU_CFLAGS += -I$(SRC_PATH)/tests > @@ -441,6 +443,7 @@ tests/rcutorture$(EXESUF): tests/rcutorture.o > $(test-util-obj-y) > tests/test-rcu-list$(EXESUF): tests/test-rcu-list.o $(test-util-obj-y) > tests/test-qdist$(EXESUF): tests/test-qdist.o $(test-util-obj-y) > tests/test-qht$(EXESUF): tests/test-qht.o $(test-util-obj-y) > +tests/test-qht-par$(EXESUF): tests/test-qht-par.o tests/qht-bench$(EXESUF) > $(test-util-obj-y) > tests/qht-bench$(EXESUF): tests/qht-bench.o $(test-util-obj-y) > > tests/test-qdev-global-props$(EXESUF): tests/test-qdev-global-props.o \ > diff --git a/tests/test-qht-par.c b/tests/test-qht-par.c > new file mode 100644 > index 0000000..f09e004 > --- /dev/null > +++ b/tests/test-qht-par.c > @@ -0,0 +1,56 @@ > +/* > + * Copyright (C) 2016, Emilio G. Cota <c...@braap.org> > + * > + * License: GNU GPL, version 2 or later. > + * See the COPYING file in the top-level directory. > + */ > +#include "qemu/osdep.h" > +#include <glib.h> > + > +#define TEST_QHT_STRING "tests/qht-bench 1>/dev/null 2>&1 -R -S0.1 -D10000 > -N1 " > + > +static void test_qht(int n_threads, int update_rate, int duration) > +{ > + char *str; > + int rc; > + > + str = g_strdup_printf(TEST_QHT_STRING "-n %d -u %d -d %d", > + n_threads, update_rate, duration); > + rc = system(str); > + g_free(str); > + g_assert_cmpint(rc, ==, 0); > +} > + > +static void test_2th0u1s(void) > +{ > + test_qht(2, 0, 1); > +} > + > +static void test_2th20u1s(void) > +{ > + test_qht(2, 20, 1); > +} > + > +static void test_2th0u5s(void) > +{ > + test_qht(2, 0, 5); > +} > + > +static void test_2th20u5s(void) > +{ > + test_qht(2, 20, 5); > +} > + > +int main(int argc, char *argv[]) > +{ > + g_test_init(&argc, &argv, NULL); > + > + if (g_test_quick()) { > + g_test_add_func("/qht/parallel/2threads-0%updates-1s", test_2th0u1s); > + g_test_add_func("/qht/parallel/2threads-20%updates-1s", > test_2th20u1s); > + } else { > + g_test_add_func("/qht/parallel/2threads-0%updates-5s", test_2th0u5s); > + g_test_add_func("/qht/parallel/2threads-20%updates-5s", > test_2th20u5s); > + } > + return g_test_run(); > +}