NAK/cmnt: [PATCH 1/1] UBUNTU: SAUCE: ubuntu_kernel_selftests: check kernel config against net seltests requirements

Po-Hsu Lin po-hsu.lin at canonical.com
Wed Jul 1 11:32:10 UTC 2020


Apology for the late reply. My filter for autotest-client-tests didn't
catch this.

Please see inline comments for some nitpicking reviews.

On Thu, Apr 2, 2020 at 5:11 PM Paolo Pisati <paolo.pisati at canonical.com> wrote:
> BugLink: https://bugs.launchpad.net/bugs/1870299
Can you add some comments here for this commit. It will be easier for
people to read the git log.

> 
> Signed-off-by: Paolo Pisati <paolo.pisati at canonical.com>
> ---
>  .../ubuntu_kernel_selftests.py                | 72 +++++++++++++++++++
>  1 file changed, 72 insertions(+)
> 
> diff --git a/ubuntu_kernel_selftests/ubuntu_kernel_selftests.py b/ubuntu_kernel_selftests/ubuntu_kernel_selftests.py
> index bd754f6d..4916e786 100644
> --- a/ubuntu_kernel_selftests/ubuntu_kernel_selftests.py
> +++ b/ubuntu_kernel_selftests/ubuntu_kernel_selftests.py
> @@ -41,6 +41,7 @@ class ubuntu_kernel_selftests(test.test):
>      def initialize(self):
>          self.flavour = platform.uname()[2].split('-')[-1]
>          self.series = platform.dist()[2]
> +        self.kernel_config = None
>          pass
>  
>      def download(self):
> @@ -61,6 +62,28 @@ class ubuntu_kernel_selftests(test.test):
>              return True
>          return False
>  
> +    def kconfig_load(self):
> +        fn = '/boot/config-%s' % platform.release()
> +        if os.path.exists(fn):
> +            configfile = open(fn, 'r')
I would suggest to use "with open" recommended here:
https://docs.python.org/3/tutorial/inputoutput.html

> +            self.kernel_config = configfile.read()
> +            configfile.close()
> +        else:
> +            print "W: can't access %s, kernel config check disabled" % fn
> +
> +    def kconfig_check(self, options, tests):
> +            makefile = 'linux/tools/testing/selftests/net/Makefile'
> +            if not self.kernel_config:
> +                return
> +            for option in options:
> +                matches = re.findall(option, self.kernel_config)
> +                if not matches:
> +                    for test in tests:
> +                        print 'W: %s missing, skipping %s' % (option, test)
> +                        cmd = 'sed -i "s/%s//" %s' % (test, makefile)
> +                        utils.system(cmd)
> +                    break
> +
>      def setup(self):
>          self.install_required_pkgs()
>          self.job.require_gcc()
> @@ -130,6 +153,55 @@ class ubuntu_kernel_selftests(test.test):
>                  cmd = 'chmod -x ' + fn
>                  utils.system(cmd)
>  
> +            #
> +            # kernel .config check
> +            #
> +            self.kconfig_load()
> +            self.kconfig_check(
> +                    [ 'CONFIG_DUMMY=[y|m]' ],
> +                    [
> +                      'fib_rule_tests.sh',
> +                      'rtnetlink.sh'
> +                    ]
> +                )
> +            self.kconfig_check(
> +                    [
> +                      'CONFIG_DUMMY=[y|m]',
> +                      'CONFIG_IP_ROUTE_MULTIPATH=y',
This config was not listed as a requirement in the
tools/testing/selftests/net/config file from the source tree, how can
you tell this is needed?

I guess it's from reading the test script? If that's the case maybe we
can add this to the config file upstream.

> +                      'CONFIG_NET_ACT_MIRRED=[y|m]',
Same as CONFIG_IP_ROUTE_MULTIPATH.

> +                      'CONFIG_NET_CLS_BASIC=[y|m]',
Same as CONFIG_IP_ROUTE_MULTIPATH.

> +                      'CONFIG_NET_SCH_FQ_CODEL=[y|m]',
Same as CONFIG_IP_ROUTE_MULTIPATH.

> +                      'CONFIG_NET_VRF=[y|m]'
> +                    ],
> +                    [
> +                      'fib_tests.sh'
> +                    ]
> +                )
> +            self.kconfig_check(
> +                    ['CONFIG_NET_VRF=[y|m]' ],
> +                    [
> +                      'fib-onlink-tests.sh',
> +                      'test_vxlan_under_vrf.sh'
> +                    ]
> +                )
> +            self.kconfig_check(
> +                    [
> +                      'CONFIG_NET_SCH_ETF=[y|m]',
> +                      'CONFIG_NET_SCH_FQ=[y|m]',
> +                      'CONFIG_NET_VRF=[y|m]'
> +                    ],
> +                    [ 'so_txtime.sh' ]
> +                )
> +            self.kconfig_check(
> +                    [
> +                      'CONFIG_DUMMY=[y|m]'
Missing coma here.
This will make it to check for CONFIG_DUMMY=[y|m]CONFIG_IPV6=y

> +                      'CONFIG_IPV6=y',
> +                      'CONFIG_IPV6_VTI=[y|m]',
> +                      'CONFIG_NET_IPVTI=[y|m]'
> +                    ],
> +                    [ 'pmtu.sh' ]
> +                )
> +
>              #
>              # update fix CPU hotplug test, new and old versions
>              #
> -- 
> 2.25.1
> 
> 
> -- 
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team



More information about the kernel-team mailing list