From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59808) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bAlPy-0007aF-4C for qemu-devel@nongnu.org; Wed, 08 Jun 2016 17:53:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bAlPt-0000k1-VA for qemu-devel@nongnu.org; Wed, 08 Jun 2016 17:53:41 -0400 Received: from mail-lf0-x242.google.com ([2a00:1450:4010:c07::242]:33768) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bAlPt-0000jx-IF for qemu-devel@nongnu.org; Wed, 08 Jun 2016 17:53:37 -0400 Received: by mail-lf0-x242.google.com with SMTP id u74so1930746lff.0 for ; Wed, 08 Jun 2016 14:53:37 -0700 (PDT) References: <1465412133-3029-1-git-send-email-cota@braap.org> <1465412133-3029-14-git-send-email-cota@braap.org> From: Sergey Fedorov Message-ID: <575893DF.3020300@gmail.com> Date: Thu, 9 Jun 2016 00:53:35 +0300 MIME-Version: 1.0 In-Reply-To: <1465412133-3029-14-git-send-email-cota@braap.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH v7 13/15] qht: add test-qht-par to invoke qht-bench from 'check' target List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "Emilio G. Cota" , QEMU Developers , MTTCG Devel Cc: =?UTF-8?Q?Alex_Benn=c3=a9e?= , Paolo Bonzini , Richard Henderson On 08/06/16 21:55, Emilio G. Cota wrote: > Signed-off-by: Emilio G. Cota Acked-by: Sergey Fedorov > --- > 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 > + * > + * License: GNU GPL, version 2 or later. > + * See the COPYING file in the top-level directory. > + */ > +#include "qemu/osdep.h" > +#include > + > +#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(); > +}