public inbox for buildbot@sourceware.org
 help / color / mirror / Atom feed
From: Mark Wielaard <mark@klomp.org>
To: Nick Alcock <nick.alcock@oracle.com>
Cc: binutils@sourceware.org, buildbot@sourceware.org
Subject: Re: adding make check-libctf to binutils trybot?
Date: Fri, 24 May 2024 16:28:53 +0200	[thread overview]
Message-ID: <5b2bc54b4ebe3617037d2e01b3774ea7ddf04e23.camel@klomp.org> (raw)
In-Reply-To: <87a5lqvdge.fsf@esperi.org.uk>

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

Hi Nick,

Sorry, I somehow missed this message.

On Thu, 2024-04-18 at 17:32 +0100, Nick Alcock wrote:
> I'm getting back to libctf development again (some fairly big things
> coming, I hope), so I've just tried the trybots for the first time.
> 
> First impressions: really useful to be able to test on piles of arches
> without needing to set up dead slow QEMU emulations of them myself;
> might be even more useful if FAILs/ERRORs were explicitly filtered into
> their own category rather than carefully filtering out warnings (which
> are usually useless junk from dejagnu), while you have to explicitly
> download the stdio output to figure out which testsuite any failures
> actually happened in...

Yeah, the logs and mails sent by the buildbot could use some work.
But the results are also stored in bunsen. Try looking there:
https://builder.sourceware.org/testruns/
https://builder.sourceware.org/testruns/?has_keyvalue_op=glob&has_keyvalue_k=testrun.git_describe&has_keyvalue_v=buildbot/binutils-%2A

> ... but the check-libctf tests are not run at all, which means the only
> testing I get of libctf is of its interoperation with ld, which is only
> about half the codebase and about as much of the API surface (counting
> uses internal to libctf itself).
> 
> So... could make check-libctf be added to the stuff routinely run when
> binutils try-builds are done? I'd write a patch but I'm not honestly
> sure where the repo is or anything :) it's pretty fast (much faster than
> make check-ld, about as fast as the gas tests) and doesn't have spurious
> failures anywhere that I know of. (And if there are failures, I'll fix
> them.)

The builder sources can be found here:
https://sourceware.org/cgit/builder
And there is a mailinglist (CCed):
https://sourceware.org/mailman/listinfo/buildbot

The attached patch (committed) makes it so that make check-libctf is
always run now. Lets see how that turns out.

Cheers,

Mark



[-- Attachment #2: Type: text/x-patch, Size: 15880 bytes --]

From f806881493eabea877cb9e83bdfede8f70587025 Mon Sep 17 00:00:00 2001
From: Mark Wielaard <mark@klomp.org>
Date: Fri, 24 May 2024 16:24:26 +0200
Subject: [PATCH] binutils: Always build and check libctf

Remove the special case binutils_factory_libctf just always build and
check libctf. Rename the binutils_factory_gas_binutils to
binutils_factory_minimal and include libctf and libsframe building and
checking.
---
 builder/master.cfg | 149 ++++++++++++++++++---------------------------
 1 file changed, 59 insertions(+), 90 deletions(-)

diff --git a/builder/master.cfg b/builder/master.cfg
index 09f359ca736f..db82c8b4122f 100644
--- a/builder/master.cfg
+++ b/builder/master.cfg
@@ -2766,54 +2766,47 @@ binutils_step_configure = steps.Configure(
         command=['../binutils-gdb/configure',
                  '--enable-gold',
                  '--enable-shared',
-                 '--enable-targets=all'],
+                 '--enable-targets=all',
+                 '--enable-libctf'],
         name='configure',
         haltOnFailure=True,
         logfiles={"config.log": "config.log"})
 binutils_step_configure_minimal = steps.Configure(
         workdir='binutils-build',
-        command=['../binutils-gdb/configure'],
-        name='configure',
-        haltOnFailure=True,
-        logfiles={"config.log": "config.log"})
-binutils_step_configure_libctf = steps.Configure(
-        workdir='binutils-build',
-        command=['../binutils-gdb/configure',
-                 '--enable-gold',
-                 '--enable-shared',
-                 '--enable-targets=all',
-		 '--enable-libctf'],
+        command=['../binutils-gdb/configure', '--enable-libctf'],
         name='configure',
         haltOnFailure=True,
         logfiles={"config.log": "config.log"})
 binutils_step_compile = steps.Compile(
         workdir='binutils-build',
         command=addOutputSync.withArgs(['make',
-                 util.Interpolate('-j%(prop:ncpus)s'),
-                 'all-gas', 'all-ld', 'all-binutils', 'all-gold']),
+                                        util.Interpolate('-j%(prop:ncpus)s'),
+                                        'all-gas',
+                                        'all-ld',
+                                        'all-binutils',
+                                        'all-gold',
+                                        'all-libctf']),
         name='make',
         haltOnFailure=True)
 binutils_step_compile_minimal = steps.Compile(
         workdir='binutils-build',
         command=addOutputSync.withArgs(['make',
-                 util.Interpolate('-j%(prop:ncpus)s'),
-                 'all-gas', 'all-ld', 'all-binutils']),
-        name='make',
-        haltOnFailure=True)
-binutils_step_compile_libctf = steps.Compile(
-        workdir='binutils-build',
-        command=addOutputSync.withArgs(['make',
-                 util.Interpolate('-j%(prop:ncpus)s'),
-                 'all-gas', 'all-ld', 'all-binutils', 'all-gold',
-                 'all-libctf']),
+                                        util.Interpolate('-j%(prop:ncpus)s'),
+                                        'all-gas',
+                                        'all-ld',
+                                        'all-binutils',
+                                        'all-libctf']),
         name='make',
         haltOnFailure=True)
 binutils_step_check = steps.Test(
         workdir='binutils-build',
         command=addOutputSync.withArgs(['make',
-                 util.Interpolate('-j%(prop:ncpus)s'),
-                 'check-ld', 'check-gas', 'check-binutils',
-                 'check-libsframe']),
+                                        util.Interpolate('-j%(prop:ncpus)s'),
+                                        'check-ld',
+                                        'check-gas',
+                                        'check-binutils',
+                                        'check-libsframe',
+                                        'check-libctf']),
         name='make check',
         logfiles={ "ld.sum": "ld/ld.sum",
                    "ld.log": "ld/ld.log",
@@ -2822,22 +2815,24 @@ binutils_step_check = steps.Test(
                    "binutils.sum": "binutils/binutils.sum",
                    "binutils.log": "binutils/binutils.log",
                    "libsframe.sum": "libsframe/libsframe.sum",
-                   "libsframe.log": "libsframe/libsframe.log" },
+                   "libsframe.log": "libsframe/libsframe.log",
+                   "libctf.sum": "libctf/libctf.sum",
+                   "libctf.log": "libctf/libctf.log" },
         haltOnFailure=False, flunkOnFailure=True)
 binutils_steps_bunsen = bunsen_logfile_upload_cpio_steps(
         ["*.sum", "*.log"],
         workdir='binutils-build')
 
-binutils_step_check_libctf = steps.Test(
+binutils_step_check_minimal = steps.Test(
         workdir='binutils-build',
         command=addOutputSync.withArgs(['make',
-                 util.Interpolate('-j%(prop:ncpus)s'),
-                 'check-ld', 'check-gas', 'check-binutils', 'check-libctf',
-                 'check-libsframe']),
-        name='make check',
-        logfiles={ "ld.sum": "ld/ld.sum",
-                   "ld.log": "ld/ld.log",
-                   "gas.sum": "gas/testsuite/gas.sum",
+                                        util.Interpolate('-j%(prop:ncpus)s'),
+                                        'check-gas',
+                                        'check-binutils',
+                                        'check-libctf',
+                                        'check-libsframe']),
+        name='make check (no ld)',
+        logfiles={ "gas.sum": "gas/testsuite/gas.sum",
                    "gas.log": "gas/testsuite/gas.log",
                    "binutils.sum": "binutils/binutils.sum",
                    "binutils.log": "binutils/binutils.log",
@@ -2846,21 +2841,6 @@ binutils_step_check_libctf = steps.Test(
                    "libctf.sum": "libctf/libctf.sum",
                    "libctf.log": "libctf/libctf.log" },
         haltOnFailure=False, flunkOnFailure=True)
-binutils_steps_bunsen_libctf = bunsen_logfile_upload_cpio_steps(
-        ["*.sum", "*.log"],
-        workdir='binutils-build')
-
-binutils_step_check_gas_binutils = steps.Test(
-        workdir='binutils-build',
-        command=addOutputSync.withArgs(['make',
-                 util.Interpolate('-j%(prop:ncpus)s'),
-                 'check-gas', 'check-binutils']),
-        name='make check gas binutils',
-        logfiles={ "gas.sum": "gas/testsuite/gas.sum",
-                   "gas.log": "gas/testsuite/gas.log",
-                   "binutils.sum": "binutils/binutils.sum",
-                   "binutils.log": "binutils/binutils.log" },
-        haltOnFailure=False, flunkOnFailure=True)
 binutils_step_check_ld_warn = steps.Test(
         workdir='binutils-build',
         command=addOutputSync.withArgs(['make',
@@ -2870,9 +2850,6 @@ binutils_step_check_ld_warn = steps.Test(
         logfiles={ "ld.sum": "ld/ld.sum",
                    "ld.log": "ld/ld.log"},
         haltOnFailure=False, flunkOnFailure=False, warnOnFailure=True)
-binutils_steps_bunsen_gas_binutils = bunsen_logfile_upload_cpio_steps(
-        ["*.sum", "*.log"],
-        workdir='binutils-build')
 binutils_make_clean_step = steps.ShellCommand(
         workdir='binutils-build',
         command=["make", "clean"],
@@ -2904,25 +2881,17 @@ binutils_factory.addStep(binutils_step_check)
 binutils_factory.addSteps(binutils_steps_bunsen)
 binutils_factory.addStep(binutils_step_rm_build_dir)
 
-binutils_factory_libctf = util.BuildFactory()
-binutils_factory_libctf.addStep(binutils_step_git)
-binutils_factory_libctf.addStep(binutils_step_rm_build_dir)
-binutils_factory_libctf.addStep(binutils_step_configure_libctf)
-binutils_factory_libctf.addStep(binutils_step_compile_libctf)
-binutils_factory_libctf.addStep(binutils_step_check_libctf)
-binutils_factory_libctf.addSteps(binutils_steps_bunsen_libctf)
-binutils_factory_libctf.addStep(binutils_step_rm_build_dir)
-
-# Builds everything, but checks just gas and binutils, ld checks may fail.
-binutils_factory_gas_binutils = util.BuildFactory()
-binutils_factory_gas_binutils.addStep(binutils_step_git)
-binutils_factory_gas_binutils.addStep(binutils_step_rm_build_dir)
-binutils_factory_gas_binutils.addStep(binutils_step_configure_minimal)
-binutils_factory_gas_binutils.addStep(binutils_step_compile_minimal)
-binutils_factory_gas_binutils.addStep(binutils_step_check_gas_binutils)
-binutils_factory_gas_binutils.addStep(binutils_step_check_ld_warn)
-binutils_factory_gas_binutils.addSteps(binutils_steps_bunsen)
-binutils_factory_gas_binutils.addStep(binutils_step_rm_build_dir)
+# Builds without targets all and without gold and runs the ld checks
+# separately because they may fail.
+binutils_factory_minimal = util.BuildFactory()
+binutils_factory_minimal.addStep(binutils_step_git)
+binutils_factory_minimal.addStep(binutils_step_rm_build_dir)
+binutils_factory_minimal.addStep(binutils_step_configure_minimal)
+binutils_factory_minimal.addStep(binutils_step_compile_minimal)
+binutils_factory_minimal.addStep(binutils_step_check_minimal)
+binutils_factory_minimal.addStep(binutils_step_check_ld_warn)
+binutils_factory_minimal.addSteps(binutils_steps_bunsen)
+binutils_factory_minimal.addStep(binutils_step_rm_build_dir)
 
 binutils_gdb_autoregen_factory = util.BuildFactory()
 binutils_gdb_autoregen_factory.addStep(binutils_gdb_step_git)
@@ -2962,7 +2931,7 @@ binutils_fedora_x86_64_builder = util.BuilderConfig(
 		    readContainerFile('fedora-latest')},
 	workernames=vm_workers,
         tags=["binutils", "fedora", "x86_64"],
-        factory=binutils_factory_libctf)
+        factory=binutils_factory)
 c['builders'].append(binutils_fedora_x86_64_builder)
 
 binutils_try_fedora_x86_64_builder = util.BuilderConfig(
@@ -2972,7 +2941,7 @@ binutils_try_fedora_x86_64_builder = util.BuilderConfig(
 		    readContainerFile('fedora-latest')},
 	workernames=vm_workers,
         tags=["binutils-try", "fedora", "x86_64"],
-        factory=binutils_factory_libctf)
+        factory=binutils_factory)
 c['builders'].append(binutils_try_fedora_x86_64_builder)
 
 binutils_fedora_s390x_builder = util.BuilderConfig(
@@ -2980,7 +2949,7 @@ binutils_fedora_s390x_builder = util.BuilderConfig(
         workernames=["fedora-s390x"],
         tags=["binutils", "fedora", "s390x"],
         collapseRequests=True,
-        factory=binutils_factory_libctf)
+        factory=binutils_factory)
 c['builders'].append(binutils_fedora_s390x_builder)
 
 binutils_try_fedora_s390x_builder = util.BuilderConfig(
@@ -2988,7 +2957,7 @@ binutils_try_fedora_s390x_builder = util.BuilderConfig(
         workernames=["fedora-s390x"],
         tags=["binutils-try", "fedora", "s390x"],
         collapseRequests=True,
-        factory=binutils_factory_libctf)
+        factory=binutils_factory)
 c['builders'].append(binutils_try_fedora_s390x_builder)
 
 binutils_debian_ppc64_builder = util.BuilderConfig(
@@ -3004,35 +2973,35 @@ binutils_debian_armhf_builder = util.BuilderConfig(
         workernames=["debian-armhf"],
         tags=["binutils", "debian", "armhf"],
         collapseRequests=True,
-        factory=binutils_factory_gas_binutils)
+        factory=binutils_factory_minimal)
 c['builders'].append(binutils_debian_armhf_builder)
 
 binutils_fedora_arm64_builder = util.BuilderConfig(
 	name="binutils-fedora-arm64",
         workernames=["fedora-arm64"],
         tags=["binutils", "fedora", "arm64"],
-        factory=binutils_factory_libctf)
+        factory=binutils_factory)
 c['builders'].append(binutils_fedora_arm64_builder)
 
 binutils_try_fedora_arm64_builder = util.BuilderConfig(
 	name="binutils-try-fedora-arm64",
         workernames=["fedora-arm64"],
         tags=["binutils-try", "fedora", "arm64"],
-        factory=binutils_factory_libctf)
+        factory=binutils_factory)
 c['builders'].append(binutils_try_fedora_arm64_builder)
 
 binutils_gentoo_sparc_builder = util.BuilderConfig(
 	name="binutils-gentoo-sparc",
         workernames=sparc_workers,
         tags=["binutils-build", "gentoo", "sparc"],
-        factory=binutils_factory_libctf)
+        factory=binutils_factory)
 c['builders'].append(binutils_gentoo_sparc_builder)
 
 binutils_try_gentoo_sparc_builder = util.BuilderConfig(
 	name="binutils-try-gentoo-sparc",
         workernames=sparc_workers,
         tags=["binutils-try-build", "gentoo", "sparc"],
-        factory=binutils_factory_libctf)
+        factory=binutils_factory)
 c['builders'].append(binutils_try_gentoo_sparc_builder)
 
 binutils_debian_i386_builder = util.BuilderConfig(
@@ -3055,7 +3024,7 @@ binutils_fedora_ppc64le_builder = util.BuilderConfig(
         workernames=["fedora-ppc64le"],
         tags=["binutils", "fedora", "ppc64le"],
         collapseRequests=True,
-        factory=binutils_factory_libctf)
+        factory=binutils_factory)
 c['builders'].append(binutils_fedora_ppc64le_builder)
 
 binutils_try_fedora_ppc64le_builder = util.BuilderConfig(
@@ -3063,7 +3032,7 @@ binutils_try_fedora_ppc64le_builder = util.BuilderConfig(
         collapseRequests=True,
         workernames=["fedora-ppc64le"],
         tags=["binutils-try", "fedora", "ppc64le"],
-        factory=binutils_factory_libctf)
+        factory=binutils_factory)
 c['builders'].append(binutils_try_fedora_ppc64le_builder)
 
 binutils_ubuntu_riscv_builder = util.BuilderConfig(
@@ -3071,7 +3040,7 @@ binutils_ubuntu_riscv_builder = util.BuilderConfig(
         workernames=starfive_workers,
         tags=["binutils", "ubuntu", "riscv"],
         collapseRequests=True,
-        factory=binutils_factory_gas_binutils)
+        factory=binutils_factory_minimal)
 c['builders'].append(binutils_ubuntu_riscv_builder)
 
 binutils_try_ubuntu_riscv_builder = util.BuilderConfig(
@@ -3079,7 +3048,7 @@ binutils_try_ubuntu_riscv_builder = util.BuilderConfig(
         collapseRequests=True,
         workernames=starfive_workers,
         tags=["binutils-try", "ubuntu", "riscv"],
-        factory=binutils_factory_gas_binutils)
+        factory=binutils_factory_minimal)
 c['builders'].append(binutils_try_ubuntu_riscv_builder)
 
 binutils_rawhide_x86_64_builder = util.BuilderConfig(
@@ -3089,7 +3058,7 @@ binutils_rawhide_x86_64_builder = util.BuilderConfig(
         workernames=vm_workers,
         tags=["binutils", "fedora", "x86_64"],
         collapseRequests=True,
-        factory=binutils_factory_libctf)
+        factory=binutils_factory)
 c['builders'].append(binutils_rawhide_x86_64_builder)
 
 binutils_debian_testing_x86_64_builder = util.BuilderConfig(
@@ -3099,7 +3068,7 @@ binutils_debian_testing_x86_64_builder = util.BuilderConfig(
         workernames=vm_workers,
         tags=["binutils", "debian", "x86_64"],
         collapseRequests=True,
-        factory=binutils_factory_libctf)
+        factory=binutils_factory)
 c['builders'].append(binutils_debian_testing_x86_64_builder)
 
 binutils_try_rawhide_x86_64_builder = util.BuilderConfig(
@@ -3109,7 +3078,7 @@ binutils_try_rawhide_x86_64_builder = util.BuilderConfig(
 		    readContainerFile('fedora-rawhide')},
         workernames=vm_workers,
         tags=["binutils-try", "fedora", "x86_64"],
-        factory=binutils_factory_libctf)
+        factory=binutils_factory)
 c['builders'].append(binutils_try_rawhide_x86_64_builder)
 
 binutils_try_debian_testing_x86_64_builder = util.BuilderConfig(
@@ -3119,7 +3088,7 @@ binutils_try_debian_testing_x86_64_builder = util.BuilderConfig(
 		    readContainerFile('debian-testing')},
         workernames=vm_workers,
         tags=["binutils-try", "debian", "x86_64"],
-        factory=binutils_factory_libctf)
+        factory=binutils_factory)
 c['builders'].append(binutils_try_debian_testing_x86_64_builder)
 
 binutils_gdb_autoregen_builder = util.BuilderConfig(
-- 
2.45.1


      reply	other threads:[~2024-05-24 14:28 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-18 16:32 Nick Alcock
2024-05-24 14:28 ` Mark Wielaard [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5b2bc54b4ebe3617037d2e01b3774ea7ddf04e23.camel@klomp.org \
    --to=mark@klomp.org \
    --cc=binutils@sourceware.org \
    --cc=buildbot@sourceware.org \
    --cc=nick.alcock@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).