All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: Ferruh Yigit <ferruh.yigit@amd.com>
Cc: "Mattias Rönnblom" <hofors@lysator.liu.se>,
	"Patrick Robb" <probb@iol.unh.edu>, "dev@dpdk.org" <dev@dpdk.org>,
	"Mattias Rönnblom" <mattias.ronnblom@ericsson.com>
Subject: Re: Run unit tests with C++ too
Date: Wed, 1 May 2024 15:45:51 +0100	[thread overview]
Message-ID: <ZjJVnybt62e-xpB3@bricha3-mobl1.ger.corp.intel.com> (raw)
In-Reply-To: <7f3b67df-ffc2-461a-9985-8b42282deb50@amd.com>

On Wed, May 01, 2024 at 03:38:10PM +0100, Ferruh Yigit wrote:
> On 5/1/2024 3:14 PM, Mattias Rönnblom wrote:
> > On 2024-05-01 11:10, Ferruh Yigit wrote:
> >> On 4/30/2024 9:57 PM, Patrick Robb wrote:
> >>>
> >>>
> >>> On Tue, Apr 30, 2024 at 4:13 PM Mattias Rönnblom <hofors@lysator.liu.se
> >>> <mailto:hofors@lysator.liu.se>> wrote:
> >>>
> >>>      On 2024-04-30 15:52, Patrick Robb wrote:
> >>>      >
> >>>      >
> >>>      > On Sun, Apr 28, 2024 at 3:46 AM Mattias Rönnblom
> >>>      <hofors@lysator.liu.se <mailto:hofors@lysator.liu.se>
> >>>      > <mailto:hofors@lysator.liu.se <mailto:hofors@lysator.liu.se>>>
> >>> wrote:
> >>>      >
> >>>      >     It would be great if the unit test suite (app/test/*) was
> >>>      compiled (and
> >>>      >     run) using a C++ (C++11) compiler as well. At least, if
> >>> such is
> >>>      >     available.
> >>>      >
> >>>      >
> >>>      > Sure, the UNH Lab can try this.
> >>>      >
> >>>      >
> >>>      >     With the current state of affairs, header file macros or
> >>>      functions are
> >>>      >     not verified to be functional (or even valid) C++.
> >>>      >
> >>>      >     "C is a subset of C++", which was never true, is becoming
> >>> less and
> >>>      >     less so.
> >>>      >
> >>>      >     If all unit tests aren't valid C++, maybe one could start
> >>> with
> >>>      an "opt
> >>>      >     in" model.
> >>>      >
> >>>      >
> >>>      > Okay, so basically run the fast-test suite, record all that don't
> >>>      pass,
> >>>      > submit a bugzilla ticket stating which unit tests are not
> >>> valid on a
> >>>      > certain c++ compiler, then bring CI Testing online using the
> >>> valid
> >>>      > subset of fast-tests. This should work.
> >>>      >
> >>>
> >>>      Sounds good.
> >>>
> >>>      Just to be clear: the above includes extending the DPDK build
> >>> system to
> >>>      build the app/test/dpdk-test binary in two versions: one C and
> >>> one C++,
> >>>      so that anyone can run the C++ tests locally as well. Correct?
> >>>
> >>>
> >>> Okay, so now I am understanding this is not yet available. When I
> >>> responded this morning I was figuring that c++ compiler support was
> >>> available and I simply wasn't aware, and that we could quite easily set
> >>> cc={some c++ compiler}, meson would pick it up, and we would be able to
> >>> build DPDK and then run unit tests in this manner in CI testing.
> >>>
> >>> I didn't mean to suggest we would submit patches extending the build
> >>> system to this end. That's probably a little out of scope for what we
> >>> try to accomplish at the Community Lab.
> >>>
> >>> But if the aforementioned build system support is added, of course we
> >>> are willing to add that as a build environment for unit tests and report
> >>> those respective results.
> >>>   
> >>
> >> Does it have to be 'app/test/dpdk-test', why not build examples with C++?
> >>
> > 
> > The unit tests have the ability to test DPDK, which is exactly what we
> > want to do here. Such testing isn't limited to "compiles yes/no", but to
> > detect run-time (behavioral) issues, and properly report them.
> > 
> > This is especially important for cases where there is code only
> > exercised in C++ translation units (i.e., in #ifdef __cplusplus).
> > 
> 
> And Bruce highlighted that compile check is already covered.
> 
> Than I guess this work needs to be done in two steps,
> 1. Enable building dpdk-test (or all applications) with C++ in build
> system. And fix possible issues.
> 
> 2. Enable in dpdk-test C++ build and run in CI.
> 
> We need a volunteer for 1. before asking CI lab for 2.
> 

For testing with C++ we only need to cover code contained in header files.
Code for functions built into the DPDK .so or .a libraries will behave the
same way when called from C, C++ or any other language. It's the inline
functions in headers that will be compiled differently in C++ so we should
only look to those tests rather than trying to make the whole unit test
suite buildable via C++ IMHO.

/Bruce

      reply	other threads:[~2024-05-01 14:46 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-04-28  7:46 Run unit tests with C++ too Mattias Rönnblom
2024-04-29  8:01 ` Ferruh Yigit
2024-04-29 22:49   ` Tyler Retzlaff
2024-04-30 13:52 ` Patrick Robb
2024-04-30 18:01   ` Tyler Retzlaff
2024-04-30 20:13   ` Mattias Rönnblom
2024-04-30 20:57     ` Patrick Robb
2024-05-01  9:10       ` Ferruh Yigit
2024-05-01 10:15         ` Bruce Richardson
2024-05-01 14:14         ` Mattias Rönnblom
2024-05-01 14:38           ` Ferruh Yigit
2024-05-01 14:45             ` Bruce Richardson [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=ZjJVnybt62e-xpB3@bricha3-mobl1.ger.corp.intel.com \
    --to=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@amd.com \
    --cc=hofors@lysator.liu.se \
    --cc=mattias.ronnblom@ericsson.com \
    --cc=probb@iol.unh.edu \
    /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 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.