[alsa-devel] [PATCH] hda-emu: Add check for unnecessary indices of kcontrols to testsuite

Takashi Iwai tiwai at suse.de
Mon Oct 8 10:18:57 CEST 2012


At Wed,  3 Oct 2012 16:23:25 +0200,
David Henningsson wrote:
> 
> ---
>  tester/runner.py |   29 +++++++++++++++++++++++------
>  1 file changed, 23 insertions(+), 6 deletions(-)

Thanks, applied now.


Takashi

> 
> diff --git a/tester/runner.py b/tester/runner.py
> index 30118ce..1e7ecf9 100644
> --- a/tester/runner.py
> +++ b/tester/runner.py
> @@ -25,7 +25,9 @@ class ControlInfo():
>          self.runner = runner
>          carr = list_info.split(":")
>          self.numid = carr[1]
> -        self.name = carr[2]
> +        self.name = carr[2][1:]
> +        self.index, _ = tuple(carr[3].split(" "))
> +        self.index = int(self.index)
>  
>      def add_info(self, get_info):
>          minmax_regex = re.compile("MIN/MAX: (\d+)/(\d+),\s+VAL:(( \\[\d+\\])+)")
> @@ -222,13 +224,28 @@ class HdaEmuRunner():
>              if (int(a) != int(b)):
>                  self.add_error("Tried to set " + c.name + " to " + str([int(x) for x in values]) + ", but got " + str(c.values) + " instead", "Error")
>  
> -    def run_kcontrol_test(self):
> -        minmax_regex = re.compile("MIN/MAX: (\d+)/(\d+),\s+VAL:(( \\[\d+\\])+)")
> -        val_regex = re.compile(" \\[(\d+)\\]")
> +    def check_kcontrol_indices(self, cinfo):
> +        d = {}
> +        for c in cinfo:
> +            if not c.name in d:
> +                d[c.name] = []
> +            d[c.name].append(c.index)
> +
> +        for k, v in d.iteritems():
> +            j = 0
> +            for i in sorted(v):
> +                if i > j:
> +                    self.add_error("Unneccesary index on control '" + k + "' (" + str(i) + ")", "Error")
> +# Commented out - gives false positives for 'Playback Channel Map'
> +#                elif i < j:
> +#                    self.add_error("Duplicate control '" + k + "' (" + str(i) + ")", "Error")
> +                j = i+1
>  
> +    def run_kcontrol_test(self):
>          controls = self.run_command("list")
> -        for control in controls:
> -            c = ControlInfo(self, control)
> +        cinfo = [ControlInfo(self, control) for control in controls]
> +        self.check_kcontrol_indices(cinfo)
> +        for c in cinfo:
>              c.add_info(self.run_command("get " + c.numid))
>              if "minval" in c.__dict__:
>                  minval = c.minval
> -- 
> 1.7.9.5
> 


More information about the Alsa-devel mailing list