All of lore.kernel.org
 help / color / mirror / Atom feed
* Run unit tests with C++ too
@ 2024-04-28  7:46 Mattias Rönnblom
  2024-04-29  8:01 ` Ferruh Yigit
  2024-04-30 13:52 ` Patrick Robb
  0 siblings, 2 replies; 12+ messages in thread
From: Mattias Rönnblom @ 2024-04-28  7:46 UTC (permalink / raw)
  To: dev; +Cc: Mattias Rönnblom, Richardson, Bruce

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.

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.

A drawback of this is that the unit tests need to be both valid C and 
valid C++.

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

* Re: Run unit tests with C++ too
  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
  1 sibling, 1 reply; 12+ messages in thread
From: Ferruh Yigit @ 2024-04-29  8:01 UTC (permalink / raw)
  To: Mattias Rönnblom, dev, ci, dpdklab
  Cc: Mattias Rönnblom, Richardson, Bruce, Aaron Conole

On 4/28/2024 8:46 AM, Mattias Rönnblom 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.
> 
> 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.
> 
> A drawback of this is that the unit tests need to be both valid C and
> valid C++.
>

+1

cc'ing CI mailing list and CI lab.

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

* Re: Run unit tests with C++ too
  2024-04-29  8:01 ` Ferruh Yigit
@ 2024-04-29 22:49   ` Tyler Retzlaff
  0 siblings, 0 replies; 12+ messages in thread
From: Tyler Retzlaff @ 2024-04-29 22:49 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: Mattias Rönnblom, dev, ci, dpdklab, Mattias Rönnblom,
	Richardson, Bruce, Aaron Conole

On Mon, Apr 29, 2024 at 09:01:08AM +0100, Ferruh Yigit wrote:
> On 4/28/2024 8:46 AM, Mattias Rönnblom 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.
> > 
> > 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.
> > 
> > A drawback of this is that the unit tests need to be both valid C and
> > valid C++.
> >
> 
> +1
> 
> cc'ing CI mailing list and CI lab.

+1 too


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

* Re: Run unit tests with C++ too
  2024-04-28  7:46 Run unit tests with C++ too Mattias Rönnblom
  2024-04-29  8:01 ` Ferruh Yigit
@ 2024-04-30 13:52 ` Patrick Robb
  2024-04-30 18:01   ` Tyler Retzlaff
  2024-04-30 20:13   ` Mattias Rönnblom
  1 sibling, 2 replies; 12+ messages in thread
From: Patrick Robb @ 2024-04-30 13:52 UTC (permalink / raw)
  To: Mattias Rönnblom; +Cc: dev, Mattias Rönnblom, Richardson, Bruce

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

On Sun, Apr 28, 2024 at 3:46 AM Mattias Rönnblom <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.


>
> A drawback of this is that the unit tests need to be both valid C and
> valid C++.
>

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

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

* Re: Run unit tests with C++ too
  2024-04-30 13:52 ` Patrick Robb
@ 2024-04-30 18:01   ` Tyler Retzlaff
  2024-04-30 20:13   ` Mattias Rönnblom
  1 sibling, 0 replies; 12+ messages in thread
From: Tyler Retzlaff @ 2024-04-30 18:01 UTC (permalink / raw)
  To: Patrick Robb
  Cc: Mattias Rönnblom, dev, Mattias Rönnblom, Richardson, Bruce

On Tue, Apr 30, 2024 at 09:52:05AM -0400, Patrick Robb wrote:
> On Sun, Apr 28, 2024 at 3:46 AM Mattias Rönnblom <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.

this seems like a reasonable approach.

> 
> 
> >
> > A drawback of this is that the unit tests need to be both valid C and
> > valid C++.
> >

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

* Re: Run unit tests with C++ too
  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
  1 sibling, 1 reply; 12+ messages in thread
From: Mattias Rönnblom @ 2024-04-30 20:13 UTC (permalink / raw)
  To: Patrick Robb; +Cc: dev, Mattias Rönnblom, Richardson, Bruce

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


> 
>     A drawback of this is that the unit tests need to be both valid C and
>     valid C++.
> 

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

* Re: Run unit tests with C++ too
  2024-04-30 20:13   ` Mattias Rönnblom
@ 2024-04-30 20:57     ` Patrick Robb
  2024-05-01  9:10       ` Ferruh Yigit
  0 siblings, 1 reply; 12+ messages in thread
From: Patrick Robb @ 2024-04-30 20:57 UTC (permalink / raw)
  To: Mattias Rönnblom; +Cc: dev, Mattias Rönnblom, Richardson, Bruce

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

On Tue, Apr 30, 2024 at 4:13 PM Mattias Rönnblom <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>> 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.

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

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

* Re: Run unit tests with C++ too
  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
  0 siblings, 2 replies; 12+ messages in thread
From: Ferruh Yigit @ 2024-05-01  9:10 UTC (permalink / raw)
  To: Patrick Robb, Mattias Rönnblom
  Cc: dev, Mattias Rönnblom, Richardson, Bruce

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++?

Examples source codes can be installed with existing build support.
Later we can build these examples with C++, this doesn't require any
update in build system.


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

* Re: Run unit tests with C++ too
  2024-05-01  9:10       ` Ferruh Yigit
@ 2024-05-01 10:15         ` Bruce Richardson
  2024-05-01 14:14         ` Mattias Rönnblom
  1 sibling, 0 replies; 12+ messages in thread
From: Bruce Richardson @ 2024-05-01 10:15 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: Patrick Robb, Mattias Rönnblom, dev, Mattias Rönnblom

On Wed, May 01, 2024 at 10:10:57AM +0100, 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++?
> 
> Examples source codes can be installed with existing build support.
> Later we can build these examples with C++, this doesn't require any
> update in build system.
>
Reading through the history, I believe the ask here is to have the headers
validated for C++ compatibility. We previously added support to "chkincs"
for this - we can build chkincs-cpp with g++ as well as a regular
C-compiled chkincs binary.

/Bruce

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

* Re: Run unit tests with C++ too
  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
  1 sibling, 1 reply; 12+ messages in thread
From: Mattias Rönnblom @ 2024-05-01 14:14 UTC (permalink / raw)
  To: Ferruh Yigit, Patrick Robb; +Cc: dev, Mattias Rönnblom, Richardson, Bruce

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

> Examples source codes can be installed with existing build support.
> Later we can build these examples with C++, this doesn't require any
> update in build system.
> 

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

* Re: Run unit tests with C++ too
  2024-05-01 14:14         ` Mattias Rönnblom
@ 2024-05-01 14:38           ` Ferruh Yigit
  2024-05-01 14:45             ` Bruce Richardson
  0 siblings, 1 reply; 12+ messages in thread
From: Ferruh Yigit @ 2024-05-01 14:38 UTC (permalink / raw)
  To: Mattias Rönnblom, Patrick Robb
  Cc: dev, Mattias Rönnblom, Richardson, Bruce

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.


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

* Re: Run unit tests with C++ too
  2024-05-01 14:38           ` Ferruh Yigit
@ 2024-05-01 14:45             ` Bruce Richardson
  0 siblings, 0 replies; 12+ messages in thread
From: Bruce Richardson @ 2024-05-01 14:45 UTC (permalink / raw)
  To: Ferruh Yigit
  Cc: Mattias Rönnblom, Patrick Robb, dev, Mattias Rönnblom

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

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

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

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 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.