public inbox for buildbot@sourceware.org
 help / color / mirror / Atom feed
* adding make check-libctf to binutils trybot?
@ 2024-04-18 16:32 Nick Alcock
  2024-05-24 14:28 ` Mark Wielaard
  0 siblings, 1 reply; 2+ messages in thread
From: Nick Alcock @ 2024-04-18 16:32 UTC (permalink / raw)
  To: buildbot; +Cc: binutils

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...

... 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.)

Thanks!

-- 
NULL && (void)

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

* Re: adding make check-libctf to binutils trybot?
  2024-04-18 16:32 adding make check-libctf to binutils trybot? Nick Alcock
@ 2024-05-24 14:28 ` Mark Wielaard
  0 siblings, 0 replies; 2+ messages in thread
From: Mark Wielaard @ 2024-05-24 14:28 UTC (permalink / raw)
  To: Nick Alcock; +Cc: binutils, buildbot

[-- 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


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

end of thread, other threads:[~2024-05-24 14:28 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-18 16:32 adding make check-libctf to binutils trybot? Nick Alcock
2024-05-24 14:28 ` Mark Wielaard

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).