Hi Dean!

Thank you for your review!

On 13/11/2024 21:44, Dean Marx wrote:
I like the idea of mapping the suite to specific test cases, and for
the most part the custom configuration option as well. The only
thing that I feel should be different is the way the code generation
is documented, I think it might be worth providing an example within
conf.yaml through a comment near the suites section, rather than
just in the dts.rst file. It might be a little more clear where to
create the custom config class as well.

So... this is a weird one. I've integrated the code generation under dts-check-format.sh, so nobody should really worry about it, as that should be run before submitting. If it's not, then the CI will eventually pick it up when dts-check-format will be in place.

+class HelloWorldConfig(TestSuiteConfig):
+    """Example custom configuration for the `TestHelloWorld`
test suite."""
+
+    #: Timeout for the DPDK apps.
+    timeout: int = 50
--
2.43.0

Additionally, I was a bit confused by the custom config examples, do
these fields (timeout, my_custom_field) actually affect the suite in
any way as of this patch? Or is this just so that we can potentially
add configuration options through this method in the future?

The hello_world suite doesn't really need this, I've just added it as an example. But yes test suites are affected. If you see the hello_world suite, it calls `self.config.timeout` which is a reference to this field. This class specifically is now wholly integrated in the configuration:

  test_runs:
  - test_suites:
      hello_world:  # this is a mapping to HelloWorldConfig
        # like before the behavior of this field is:
        # - if unset or empty list, all test cases are run
        # - if individual test cases are listed, those are run
        test_cases: [single_core] # field inherited from TestSuiteConfig
        timeout: 20               # optional field from HelloWorldConfig

What I've added for the simplicity is to be able to represent any TestSuiteConfig as a string instead of a mapping:

  test_runs:
  - test_suites:
      hello_world: all # special keyword which enables all test cases
      # or
hello_world: single_core all_cores # a whitespace-delimited list of test suites

Mind that if the underlying test suite configuration has a mandatory field that has no default, then the string representation will fail and Pydantic will complain that the (required) field is missing.

Please let me know if I answered every query, and don't hesitate to ask for further clarifications.

Best,
Luca

Reply via email to