public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Michael D Kinney" <michael.d.kinney@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"bret.barkelew@microsoft.com" <bret.barkelew@microsoft.com>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>
Subject: Re: VariablePolicy: Final Changes Thread 2 - ECC & UnitTest
Date: Wed, 7 Oct 2020 01:46:34 +0000	[thread overview]
Message-ID: <DM6PR11MB4458D5368DF4BD9F267C7784D20A0@DM6PR11MB4458.namprd11.prod.outlook.com> (raw)
In-Reply-To: <PH0PR21MB1864408DA9492E0C0F77B5A0EF0A0@PH0PR21MB1864.namprd21.prod.outlook.com>

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


Bret,

Initializing variable in declaration for structures and arrays introduces use of intrinsics.  Since it is possible for unit test sources to be used for both host and target tests, I recommend we continue to follow the EDK II coding style for unit tests to support maximum compatibility and code reuse.

Using a module global variable with initializers instead of initializing a local declaration is the same amount of work, so I do not believe that will result in fewer tests.

I agree it is useful to have the test data next to the test code.  This can be accomplished by breaking up into more files so the test data is immediately above the test function the test data is used.  Does ECC raise an error if a module global is placed between 2 functions?  A 2nd approach to put the module global immediately above the test function the test data is used.

Best regards,

Mike

From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Bret Barkelew via groups.io
Sent: Tuesday, October 6, 2020 5:28 PM
To: devel@edk2.groups.io
Subject: [edk2-devel] VariablePolicy: Final Changes Thread 2 - ECC & UnitTest

I’ve worked through all the ECC issues with Variable Policy (AND the UnitTests) on this branch:
Commits · corthon/edk2 (github.com)<https://github.com/corthon/edk2/commits/var_policy_dev_submission_v8>

I even wrote the Main() entry point lib that Laszlo suggested (it works rather nicely):
TEMP: Staging for HostTest entry point · corthon/edk2@4ce5210 (github.com)<https://github.com/corthon/edk2/commit/4ce52108b3e1bcb2ba78995be94c3949fe647eda>

However, there’s one that I just can’t get past and I would like to take it up with the community. I don’t think that UnitTests should have to deal with the “can’t initialize variables in declaration” check. Almost none of the solutions that I tested worked, and the ones that did were too cumbersome. They failed on two key points that are important for test writing:

  *   They were annoying to write ===> fewer tests.
  *   They moved even more of the test case data away from the test ===> harder to read tests.

I would like to move for an exception for unit tests (or at least host-based unit tests), but I don’t know how to accomplish that from a technical standpoint.

Thoughts?

- Bret



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

  reply	other threads:[~2020-10-07  1:46 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-07  0:28 VariablePolicy: Final Changes Thread 2 - ECC & UnitTest Bret Barkelew
2020-10-07  1:46 ` Michael D Kinney [this message]
2020-10-07 13:42   ` [edk2-devel] " Laszlo Ersek
2020-10-07 14:27     ` Andrew Fish
2020-10-07 15:50       ` Laszlo Ersek
2020-10-07 16:44         ` [EXTERNAL] " Bret Barkelew
2020-10-07 18:19           ` Michael D Kinney
2020-10-08 13:10           ` Laszlo Ersek
2020-10-07 16:24     ` Michael D Kinney

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-list 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=DM6PR11MB4458D5368DF4BD9F267C7784D20A0@DM6PR11MB4458.namprd11.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /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