All of lore.kernel.org
 help / color / mirror / Atom feed
* [OE-core][PATCH v3] libevent: mark util/monotonic_prc_fallback as retriable
@ 2021-09-29 15:02 Thomas Perrot
  2021-09-30  8:50 ` Alexander Kanavin
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Perrot @ 2021-09-29 15:02 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 | 28 +++++++
 ...ts-are-marked-failed-only-when-all-a.patch | 81 +++++++++++++++++++
 .../libevent/libevent/run-ptest               | 10 +--
 .../libevent/libevent_2.1.12.bb               |  4 +-
 4 files changed, 117 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..8a2c78983e1d
--- /dev/null
+++ b/meta/recipes-support/libevent/libevent/0003-test-mark-util-monotonic_prc_fallback-as-retriable.patch
@@ -0,0 +1,28 @@
+From d01a57a998798da977c470f3b8d6a457c1adb144 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
+
+Upstream-status: Backported
+---
+ 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 45caa2700a40..a9e80db20149 100644
+--- a/test/regress_util.c
++++ b/test/regress_util.c
+@@ -1672,7 +1672,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..ae7db0b7aa85
--- /dev/null
+++ b/meta/recipes-support/libevent/libevent/0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch
@@ -0,0 +1,81 @@
+From 36ebd92fa53c0097f1e2f9ec5aa5b5c6ec1b411d 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
+
+Upstream-status: Pending
+
+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..e26e8a9b5725 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] 3+ messages in thread

* Re: [OE-core][PATCH v3] libevent: mark util/monotonic_prc_fallback as retriable
  2021-09-29 15:02 [OE-core][PATCH v3] libevent: mark util/monotonic_prc_fallback as retriable Thomas Perrot
@ 2021-09-30  8:50 ` Alexander Kanavin
  2021-09-30 12:25   ` Thomas Perrot
  0 siblings, 1 reply; 3+ messages in thread
From: Alexander Kanavin @ 2021-09-30  8:50 UTC (permalink / raw)
  To: Thomas Perrot; +Cc: OE-core, Alexandre Belloni, Yu, Mingli

[-- Attachment #1: Type: text/plain, Size: 10355 bytes --]

Please submit the patch upstream first. Also note the syntax:

Upstream-Status: Pending
Upstream-Status: Backport [from where]

Alex

On Wed, 29 Sept 2021 at 17:02, Thomas Perrot <thomas.perrot@bootlin.com>
wrote:

> 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 | 28 +++++++
>  ...ts-are-marked-failed-only-when-all-a.patch | 81 +++++++++++++++++++
>  .../libevent/libevent/run-ptest               | 10 +--
>  .../libevent/libevent_2.1.12.bb               |  4 +-
>  4 files changed, 117 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..8a2c78983e1d
> --- /dev/null
> +++
> b/meta/recipes-support/libevent/libevent/0003-test-mark-util-monotonic_prc_fallback-as-retriable.patch
> @@ -0,0 +1,28 @@
> +From d01a57a998798da977c470f3b8d6a457c1adb144 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
> +
> +Upstream-status: Backported
> +---
> + 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 45caa2700a40..a9e80db20149 100644
> +--- a/test/regress_util.c
> ++++ b/test/regress_util.c
> +@@ -1672,7 +1672,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..ae7db0b7aa85
> --- /dev/null
> +++
> b/meta/recipes-support/libevent/libevent/0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch
> @@ -0,0 +1,81 @@
> +From 36ebd92fa53c0097f1e2f9ec5aa5b5c6ec1b411d 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
> +
> +Upstream-status: Pending
> +
> +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..e26e8a9b5725 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
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#156468):
> https://lists.openembedded.org/g/openembedded-core/message/156468
> Mute This Topic: https://lists.openembedded.org/mt/85950365/1686489
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>

[-- Attachment #2: Type: text/html, Size: 13725 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [OE-core][PATCH v3] libevent: mark util/monotonic_prc_fallback as retriable
  2021-09-30  8:50 ` Alexander Kanavin
@ 2021-09-30 12:25   ` Thomas Perrot
  0 siblings, 0 replies; 3+ messages in thread
From: Thomas Perrot @ 2021-09-30 12:25 UTC (permalink / raw)
  To: Alexander Kanavin; +Cc: OE-core, Alexandre Belloni, Yu, Mingli

[-- Attachment #1: Type: text/plain, Size: 12337 bytes --]

Hello,

On Thu, 2021-09-30 at 10:50 +0200, Alexander Kanavin wrote:
> Please submit the patch upstream first. Also note the syntax:
> 
> Upstream-Status: Pending
> Upstream-Status: Backport [from where]
> 

I'm currently submitting a reworked patch for the libevent master
branch, because since 2.1.12 there were some changes that required
reworking the patch 0004.

I will correct the syntax of upstream status, thank you.

Best regards,
Thomas

> Alex
> 
> On Wed, 29 Sept 2021 at 17:02, Thomas Perrot <
> thomas.perrot@bootlin.com> wrote:
> > 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 | 28 +++++++
> >  ...ts-are-marked-failed-only-when-all-a.patch | 81
> > +++++++++++++++++++
> >  .../libevent/libevent/run-ptest               | 10 +--
> >  .../libevent/libevent_2.1.12.bb               |  4 +-
> >  4 files changed, 117 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..8a2c78983e1d
> > --- /dev/null
> > +++ b/meta/recipes-support/libevent/libevent/0003-test-mark-util-
> > monotonic_prc_fallback-as-retriable.patch
> > @@ -0,0 +1,28 @@
> > +From d01a57a998798da977c470f3b8d6a457c1adb144 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
> > +
> > +Upstream-status: Backported
> > +---
> > + 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 45caa2700a40..a9e80db20149 100644
> > +--- a/test/regress_util.c
> > ++++ b/test/regress_util.c
> > +@@ -1672,7 +1672,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..ae7db0b7aa85
> > --- /dev/null
> > +++ b/meta/recipes-support/libevent/libevent/0004-test-retriable-
> > tests-are-marked-failed-only-when-all-a.patch
> > @@ -0,0 +1,81 @@
> > +From 36ebd92fa53c0097f1e2f9ec5aa5b5c6ec1b411d 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
> > +
> > +Upstream-status: Pending
> > +
> > +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..e26e8a9b5725 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
> >  }
> > 
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#156488): 
> > https://lists.openembedded.org/g/openembedded-core/message/156488
> > Mute This Topic: https://lists.openembedded.org/mt/85950365/5443093
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: 
> > https://lists.openembedded.org/g/openembedded-core/unsub [
> > thomas.perrot@bootlin.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> > 

-- 
Thomas Perrot, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-09-30 12:26 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-29 15:02 [OE-core][PATCH v3] libevent: mark util/monotonic_prc_fallback as retriable Thomas Perrot
2021-09-30  8:50 ` Alexander Kanavin
2021-09-30 12:25   ` 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.