All of lore.kernel.org
 help / color / mirror / Atom feed
* [OE-core][PATCH v2] libevent: mark util/monotonic_prc_fallback as retriable
@ 2021-09-29 14:22 Thomas Perrot
  0 siblings, 0 replies; only message in thread
From: Thomas Perrot @ 2021-09-29 14:22 UTC (permalink / raw)
  To: openembedded-core; +Cc: alexandre.belloni, mingli.yu, Thomas Perrot

Backport a patch to fix the below ptest failure:
 # ./run-ptest
 Running tests:
 EVPORT
 Skipping test
 KQUEUE
 Skipping test
 EPOLL
 test-eof: OKAY
 test-dumpevents: OKAY (output not checked)
 regress:
  FAIL ../libevent-2.1.12-stable/test/regress_util.c:1478: assert(diff.tv_sec == 0): 1 vs 0 util/monotonic_prc_fallback:
  [monotonic_prc_fallback FAILED]
 1/312 TESTS FAILED. (33 skipped)
 FAILED
 regress_debug:
  FAIL ../libevent-2.1.12-stable/test/regress_util.c:1478: assert(diff.tv_sec == 0): 1 vs 0 util/monotonic_prc_fallback:
  [monotonic_prc_fallback FAILED]
 1/312 TESTS FAILED. (33 skipped)
 FAILED
 [snip]

(From OE-Core rev: edecbbdacab5227c75e4a199e124389f8036b421)

[YOCTO #14507]

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com>
---
 ...-monotonic_prc_fallback-as-retriable.patch | 26 ++++++
 ...ts-are-marked-failed-only-when-all-a.patch | 79 +++++++++++++++++++
 .../libevent/libevent/run-ptest               | 10 +--
 .../libevent/libevent_2.1.12.bb               |  4 +-
 4 files changed, 113 insertions(+), 6 deletions(-)
 create mode 100644 meta/recipes-support/libevent/libevent/0003-test-mark-util-monotonic_prc_fallback-as-retriable.patch
 create mode 100644 meta/recipes-support/libevent/libevent/0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch

diff --git a/meta/recipes-support/libevent/libevent/0003-test-mark-util-monotonic_prc_fallback-as-retriable.patch b/meta/recipes-support/libevent/libevent/0003-test-mark-util-monotonic_prc_fallback-as-retriable.patch
new file mode 100644
index 000000000000..2c96a24c985c
--- /dev/null
+++ b/meta/recipes-support/libevent/libevent/0003-test-mark-util-monotonic_prc_fallback-as-retriable.patch
@@ -0,0 +1,26 @@
+From 04fcd7c6df158bb65261867de4b9ec8439696934 Mon Sep 17 00:00:00 2001
+From: Azat Khuzhin <azat@libevent.org>
+Date: Sun, 19 Sep 2021 00:57:31 +0300
+Subject: [PATCH] test: mark util/monotonic_prc_fallback as retriable
+
+Refs: #1193
+---
+ test/regress_util.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/regress_util.c b/test/regress_util.c
+index 0f33ea0ea11c..eb362b32301f 100644
+--- a/test/regress_util.c
++++ b/test/regress_util.c
+@@ -1848,7 +1848,7 @@ struct testcase_t util_testcases[] = {
+ 	{ "monotonic_res_fallback", test_evutil_monotonic_res, TT_OFF_BY_DEFAULT, &basic_setup, (void*)"fallback" },
+ 	{ "monotonic_prc", test_evutil_monotonic_prc, 0, &basic_setup, (void*)"" },
+ 	{ "monotonic_prc_precise", test_evutil_monotonic_prc, TT_RETRIABLE, &basic_setup, (void*)"precise" },
+-	{ "monotonic_prc_fallback", test_evutil_monotonic_prc, 0, &basic_setup, (void*)"fallback" },
++	{ "monotonic_prc_fallback", test_evutil_monotonic_prc, TT_RETRIABLE, &basic_setup, (void*)"fallback" },
+ 	{ "date_rfc1123", test_evutil_date_rfc1123, 0, NULL, NULL },
+ 	{ "evutil_v4addr_is_local", test_evutil_v4addr_is_local, 0, NULL, NULL },
+ 	{ "evutil_v6addr_is_local", test_evutil_v6addr_is_local, 0, NULL, NULL },
+-- 
+2.31.1
+
diff --git a/meta/recipes-support/libevent/libevent/0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch b/meta/recipes-support/libevent/libevent/0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch
new file mode 100644
index 000000000000..1d16fb9276fe
--- /dev/null
+++ b/meta/recipes-support/libevent/libevent/0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch
@@ -0,0 +1,79 @@
+From f554c75209038c3f2cd81c4271306fe53d3adfe8 Mon Sep 17 00:00:00 2001
+From: Thomas Perrot <thomas.perrot@bootlin.com>
+Date: Wed, 29 Sep 2021 13:50:35 +0200
+Subject: [PATCH] test: retriable tests are marked failed only when all
+ attempts have failed
+
+Fixes: #1193
+
+Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com>
+---
+ test/tinytest.c | 13 ++++++-------
+ test/tinytest.h |  2 +-
+ 2 files changed, 7 insertions(+), 8 deletions(-)
+
+diff --git a/test/tinytest.c b/test/tinytest.c
+index 85dfe74a720e..bf2882418eb6 100644
+--- a/test/tinytest.c
++++ b/test/tinytest.c
+@@ -310,7 +310,8 @@ testcase_run_forked_(const struct testgroup_t *group,
+ 
+ int
+ testcase_run_one(const struct testgroup_t *group,
+-		 const struct testcase_t *testcase)
++		 const struct testcase_t *testcase,
++		 const int test_attempts)
+ {
+ 	enum outcome outcome;
+ 
+@@ -348,7 +349,7 @@ testcase_run_one(const struct testgroup_t *group,
+ 		if (opt_verbosity>0 && !opt_forked)
+ 			puts("SKIPPED");
+ 	} else {
+-		if (!opt_forked)
++		if (!opt_forked && (testcase->flags & TT_RETRIABLE) && !test_attempts)
+ 			printf("\n  [%s FAILED]\n", testcase->name);
+ 	}
+ 
+@@ -525,22 +526,20 @@ tinytest_main(int c, const char **v, struct testgroup_t *groups)
+ 		struct testgroup_t *group = &groups[i];
+ 		for (j = 0; group->cases[j].name; ++j) {
+ 			struct testcase_t *testcase = &group->cases[j];
+-			int test_attempts = 3;
++			int test_attempts = (testcase->flags & TT_RETRIABLE) ? 3: 1;
+ 			int test_ret_err;
+ 
+ 			if (!(testcase->flags & TT_ENABLED_))
+ 				continue;
+ 
+ 			for (;;) {
+-				test_ret_err = testcase_run_one(group, testcase);
++				test_ret_err = testcase_run_one(group, testcase, test_attempts);
+ 
+ 				if (test_ret_err == OK)
+ 					break;
+-				if (!(testcase->flags & TT_RETRIABLE))
++				if (!--test_attempts)
+ 					break;
+ 				printf("\n  [RETRYING %s (%i)]\n", testcase->name, test_attempts);
+-				if (!test_attempts--)
+-					break;
+ 			}
+ 
+ 			switch (test_ret_err) {
+diff --git a/test/tinytest.h b/test/tinytest.h
+index d321dd467542..c276b5339331 100644
+--- a/test/tinytest.h
++++ b/test/tinytest.h
+@@ -92,7 +92,7 @@ char *tinytest_format_hex_(const void *, unsigned long);
+ 	tinytest_set_flag_(groups, named, 1, TT_SKIP)
+ 
+ /** Run a single testcase in a single group. */
+-int testcase_run_one(const struct testgroup_t *,const struct testcase_t *);
++int testcase_run_one(const struct testgroup_t *,const struct testcase_t *, const int test_attempts);
+ 
+ void tinytest_set_aliases(const struct testlist_alias_t *aliases);
+ 
+-- 
+2.31.1
+
diff --git a/meta/recipes-support/libevent/libevent/run-ptest b/meta/recipes-support/libevent/libevent/run-ptest
index d3b5e793c3c5..ef4260d1c413 100644
--- a/meta/recipes-support/libevent/libevent/run-ptest
+++ b/meta/recipes-support/libevent/libevent/run-ptest
@@ -1,14 +1,14 @@
 #!/bin/sh
 
 # run-ptest - 'ptest' test infrastructure shell script that
-#   wraps the libevent test scripts 
+#   wraps the libevent test scripts
 #
 # Trevor Gamblin <trevor.gamblin@windriver.com>
 ###############################################################
 LIBEVENTLIB=@libdir@/libevent
 LOG="${LIBEVENTLIB}/ptest/libevent_ptest_$(date +%Y%m%d-%H%M%S).log"
 
-cd ${LIBEVENTLIB}/ptest 
+cd ${LIBEVENTLIB}/ptest
 
 # Run only the libevent "regress" test. All other test scripts in the
 # libevent "test" folder are related to performance, e.g. read/write
@@ -16,9 +16,9 @@ cd ${LIBEVENTLIB}/ptest
 # in the ptest log.
 ./test/regress 2>&1| sed -e '/TESTS/d' -e '/tests/d' -e '/OK/ s/^/PASS: / ; /FAILED/ s/^/FAIL: / ; /SKIPPED/ s/^/SKIP: / ; /DISABLED/ s/^/SKIP: /' | cut -f1,2 -d ':' | tee -a ${LOG}
 
-passed=`grep PASS ${LOG}|wc -l`
-failed=`grep FAIL ${LOG}|wc -l`
-skipped=`grep -E SKIP ${LOG}|wc -l`
+passed=`grep PASS: ${LOG}|wc -l`
+failed=`grep FAIL: ${LOG}|wc -l`
+skipped=`grep -E SKIP: ${LOG}|wc -l`
 all=$((passed + failed + skipped))
 
 (   echo "=== Test Summary ==="
diff --git a/meta/recipes-support/libevent/libevent_2.1.12.bb b/meta/recipes-support/libevent/libevent_2.1.12.bb
index 4b419eab226d..65770cb0d691 100644
--- a/meta/recipes-support/libevent/libevent_2.1.12.bb
+++ b/meta/recipes-support/libevent/libevent_2.1.12.bb
@@ -16,6 +16,8 @@ SRC_URI = "https://github.com/libevent/libevent/releases/download/release-${PV}-
            file://run-ptest \
            file://0001-test-regress_dns.c-patch-out-tests-that-require-a-wo.patch \
            file://0002-test-regress.h-Increase-default-timeval-tolerance-50.patch \
+           file://0003-test-mark-util-monotonic_prc_fallback-as-retriable.patch \
+	   file://0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch \
            "
 
 SRC_URI[sha256sum] = "92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb"
@@ -56,7 +58,7 @@ do_install_ptest() {
 	do
 		install -m 0755 $file ${D}${PTEST_PATH}/test
 	done
-        
+
         # handle multilib
         sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
 }
-- 
2.31.1



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2021-09-29 14:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-29 14:22 [OE-core][PATCH v2] libevent: mark util/monotonic_prc_fallback as retriable Thomas Perrot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.