tests/acceptance: Add a test for the canon-a1100 machine
diff mbox series

Message ID 20200127144126.15515-1-thuth@redhat.com
State New
Headers show
Series
  • tests/acceptance: Add a test for the canon-a1100 machine
Related show

Commit Message

Thomas Huth Jan. 27, 2020, 2:41 p.m. UTC
The canon-a1100 machine can be used with the Barebox firmware. The
QEMU Advent Calendar 2018 features a pre-compiled image which we
can use for testing.

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 tests/acceptance/machine_arm_canon-a1100.py | 33 +++++++++++++++++++++
 1 file changed, 33 insertions(+)
 create mode 100644 tests/acceptance/machine_arm_canon-a1100.py

Comments

Philippe Mathieu-Daudé Jan. 27, 2020, 3:18 p.m. UTC | #1
On 1/27/20 3:41 PM, Thomas Huth wrote:
> The canon-a1100 machine can be used with the Barebox firmware. The
> QEMU Advent Calendar 2018 features a pre-compiled image which we
> can use for testing.
> 
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>   tests/acceptance/machine_arm_canon-a1100.py | 33 +++++++++++++++++++++
>   1 file changed, 33 insertions(+)
>   create mode 100644 tests/acceptance/machine_arm_canon-a1100.py
> 
> diff --git a/tests/acceptance/machine_arm_canon-a1100.py b/tests/acceptance/machine_arm_canon-a1100.py
> new file mode 100644
> index 0000000000..3888168451
> --- /dev/null
> +++ b/tests/acceptance/machine_arm_canon-a1100.py
> @@ -0,0 +1,33 @@
> +# Functional test that boots the canon-a1100 machine with firmware
> +#
> +# Copyright (c) 2020 Red Hat, Inc.
> +#
> +# Author:
> +#  Thomas Huth <thuth@redhat.com>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2 or
> +# later.  See the COPYING file in the top-level directory.
> +
> +from avocado_qemu import Test
> +from avocado_qemu import wait_for_console_pattern
> +from avocado.utils import archive
> +
> +class CanonA1100Machine(Test):
> +
> +    timeout = 90
> +
> +    def test_arm_canona1100(self):
> +        """
> +        :avocado: tags=arch:arm
> +        :avocado: tags=machine:canon-a1100

To the maintainer taking this, please add:

            :avocado: tags=pflash_cfi02

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

console: Switch to console [cs0]
console: barebox 2017.02.0 #2 Mon Nov 12 09:28:33 CET 2018
console: Board: Canon PowerShot A1100 IS
console: digic-gpio c0220000.gpio: probed gpiochip-1 with base 0
console: cfi_flash f8000000.flash: found cfi flash at 0xf8000000, size 4 MiB
console: malloc space: 0x00100000 -> 0x002fffff (size 2 MiB)
console: environment load /dev/env0: No such file or directory
console: Maybe you have to create the partition.
console: running /env/bin/init...
PASS (1.86 s)

Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> +        """
> +        tar_url = ('https://www.qemu-advent-calendar.org'
> +                   '/2018/download/day18.tar.xz')
> +        tar_hash = '068b5fc4242b29381acee94713509f8a876e9db6'
> +        file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
> +        archive.extract(file_path, self.workdir)
> +        self.vm.set_console()
> +        self.vm.add_args('-bios',
> +                         self.workdir + '/day18/barebox.canon-a1100.bin')
> +        self.vm.launch()
> +        wait_for_console_pattern(self, 'running /env/bin/init')
>
Thomas Huth Jan. 27, 2020, 3:39 p.m. UTC | #2
On 27/01/2020 16.18, Philippe Mathieu-Daudé wrote:
> On 1/27/20 3:41 PM, Thomas Huth wrote:
>> The canon-a1100 machine can be used with the Barebox firmware. The
>> QEMU Advent Calendar 2018 features a pre-compiled image which we
>> can use for testing.
>>
>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>> ---
>>   tests/acceptance/machine_arm_canon-a1100.py | 33 +++++++++++++++++++++
>>   1 file changed, 33 insertions(+)
>>   create mode 100644 tests/acceptance/machine_arm_canon-a1100.py
>>
>> diff --git a/tests/acceptance/machine_arm_canon-a1100.py
>> b/tests/acceptance/machine_arm_canon-a1100.py
>> new file mode 100644
>> index 0000000000..3888168451
>> --- /dev/null
>> +++ b/tests/acceptance/machine_arm_canon-a1100.py
>> @@ -0,0 +1,33 @@
>> +# Functional test that boots the canon-a1100 machine with firmware
>> +#
>> +# Copyright (c) 2020 Red Hat, Inc.
>> +#
>> +# Author:
>> +#  Thomas Huth <thuth@redhat.com>
>> +#
>> +# This work is licensed under the terms of the GNU GPL, version 2 or
>> +# later.  See the COPYING file in the top-level directory.
>> +
>> +from avocado_qemu import Test
>> +from avocado_qemu import wait_for_console_pattern
>> +from avocado.utils import archive
>> +
>> +class CanonA1100Machine(Test):
>> +
>> +    timeout = 90
>> +
>> +    def test_arm_canona1100(self):
>> +        """
>> +        :avocado: tags=arch:arm
>> +        :avocado: tags=machine:canon-a1100
> 
> To the maintainer taking this, please add:
> 
>            :avocado: tags=pflash_cfi02

Should there be a "device:" between the "=" and the device name? At
least I can see some other files using "device:" for similar tags...

 Thomas
Philippe Mathieu-Daudé Jan. 27, 2020, 3:41 p.m. UTC | #3
On 1/27/20 4:39 PM, Thomas Huth wrote:
> On 27/01/2020 16.18, Philippe Mathieu-Daudé wrote:
>> On 1/27/20 3:41 PM, Thomas Huth wrote:
>>> The canon-a1100 machine can be used with the Barebox firmware. The
>>> QEMU Advent Calendar 2018 features a pre-compiled image which we
>>> can use for testing.
>>>
>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>> ---
>>>    tests/acceptance/machine_arm_canon-a1100.py | 33 +++++++++++++++++++++
>>>    1 file changed, 33 insertions(+)
>>>    create mode 100644 tests/acceptance/machine_arm_canon-a1100.py
>>>
>>> diff --git a/tests/acceptance/machine_arm_canon-a1100.py
>>> b/tests/acceptance/machine_arm_canon-a1100.py
>>> new file mode 100644
>>> index 0000000000..3888168451
>>> --- /dev/null
>>> +++ b/tests/acceptance/machine_arm_canon-a1100.py
>>> @@ -0,0 +1,33 @@
>>> +# Functional test that boots the canon-a1100 machine with firmware
>>> +#
>>> +# Copyright (c) 2020 Red Hat, Inc.
>>> +#
>>> +# Author:
>>> +#  Thomas Huth <thuth@redhat.com>
>>> +#
>>> +# This work is licensed under the terms of the GNU GPL, version 2 or
>>> +# later.  See the COPYING file in the top-level directory.
>>> +
>>> +from avocado_qemu import Test
>>> +from avocado_qemu import wait_for_console_pattern
>>> +from avocado.utils import archive
>>> +
>>> +class CanonA1100Machine(Test):
>>> +
>>> +    timeout = 90
>>> +
>>> +    def test_arm_canona1100(self):
>>> +        """
>>> +        :avocado: tags=arch:arm
>>> +        :avocado: tags=machine:canon-a1100
>>
>> To the maintainer taking this, please add:
>>
>>             :avocado: tags=pflash_cfi02
> 
> Should there be a "device:" between the "=" and the device name? At
> least I can see some other files using "device:" for similar tags...

Ah yes you are right, it is clearer.
Wainer dos Santos Moschetta Jan. 27, 2020, 5:45 p.m. UTC | #4
On 1/27/20 1:41 PM, Philippe Mathieu-Daudé wrote:
> On 1/27/20 4:39 PM, Thomas Huth wrote:
>> On 27/01/2020 16.18, Philippe Mathieu-Daudé wrote:
>>> On 1/27/20 3:41 PM, Thomas Huth wrote:
>>>> The canon-a1100 machine can be used with the Barebox firmware. The
>>>> QEMU Advent Calendar 2018 features a pre-compiled image which we
>>>> can use for testing.
>>>>
>>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>>> ---
>>>>    tests/acceptance/machine_arm_canon-a1100.py | 33 
>>>> +++++++++++++++++++++


What is the reason for not adding this case in boot_linux_console suite?


>>>>    1 file changed, 33 insertions(+)
>>>>    create mode 100644 tests/acceptance/machine_arm_canon-a1100.py
>>>>
>>>> diff --git a/tests/acceptance/machine_arm_canon-a1100.py
>>>> b/tests/acceptance/machine_arm_canon-a1100.py
>>>> new file mode 100644
>>>> index 0000000000..3888168451
>>>> --- /dev/null
>>>> +++ b/tests/acceptance/machine_arm_canon-a1100.py
>>>> @@ -0,0 +1,33 @@
>>>> +# Functional test that boots the canon-a1100 machine with firmware
>>>> +#
>>>> +# Copyright (c) 2020 Red Hat, Inc.
>>>> +#
>>>> +# Author:
>>>> +#  Thomas Huth <thuth@redhat.com>
>>>> +#
>>>> +# This work is licensed under the terms of the GNU GPL, version 2 or
>>>> +# later.  See the COPYING file in the top-level directory.
>>>> +
>>>> +from avocado_qemu import Test
>>>> +from avocado_qemu import wait_for_console_pattern
>>>> +from avocado.utils import archive
>>>> +
>>>> +class CanonA1100Machine(Test):
>>>> +
>>>> +    timeout = 90
>>>> +
>>>> +    def test_arm_canona1100(self):
>>>> +        """
>>>> +        :avocado: tags=arch:arm
>>>> +        :avocado: tags=machine:canon-a1100
>>>
>>> To the maintainer taking this, please add:
>>>
>>>             :avocado: tags=pflash_cfi02
>>
>> Should there be a "device:" between the "=" and the device name? At
>> least I can see some other files using "device:" for similar tags...
>
> Ah yes you are right, it is clearer.


Notice that avocado_qemu won't automatically convert that tag into 
QEMU's -device option, If that is the intention...

Thanks!

- Wainer


>
>
Philippe Mathieu-Daudé Jan. 27, 2020, 8:56 p.m. UTC | #5
Hey Wainer,

On 1/27/20 6:45 PM, Wainer dos Santos Moschetta wrote:
> On 1/27/20 1:41 PM, Philippe Mathieu-Daudé wrote:
>> On 1/27/20 4:39 PM, Thomas Huth wrote:
>>> On 27/01/2020 16.18, Philippe Mathieu-Daudé wrote:
>>>> On 1/27/20 3:41 PM, Thomas Huth wrote:
>>>>> The canon-a1100 machine can be used with the Barebox firmware. The
>>>>> QEMU Advent Calendar 2018 features a pre-compiled image which we
>>>>> can use for testing.
>>>>>
>>>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>>>> ---
>>>>>    tests/acceptance/machine_arm_canon-a1100.py | 33 
>>>>> +++++++++++++++++++++
> 
> 
> What is the reason for not adding this case in boot_linux_console suite?

Because there are too many tests in this file and it became hardly 
maintainable. Also it is easier to add a 'F:' entry in the MAINTAINERS 
file to each machine section.

>>>>>    1 file changed, 33 insertions(+)
>>>>>    create mode 100644 tests/acceptance/machine_arm_canon-a1100.py
>>>>>
>>>>> diff --git a/tests/acceptance/machine_arm_canon-a1100.py
>>>>> b/tests/acceptance/machine_arm_canon-a1100.py
>>>>> new file mode 100644
>>>>> index 0000000000..3888168451
>>>>> --- /dev/null
>>>>> +++ b/tests/acceptance/machine_arm_canon-a1100.py
>>>>> @@ -0,0 +1,33 @@
>>>>> +# Functional test that boots the canon-a1100 machine with firmware
>>>>> +#
>>>>> +# Copyright (c) 2020 Red Hat, Inc.
>>>>> +#
>>>>> +# Author:
>>>>> +#  Thomas Huth <thuth@redhat.com>
>>>>> +#
>>>>> +# This work is licensed under the terms of the GNU GPL, version 2 or
>>>>> +# later.  See the COPYING file in the top-level directory.
>>>>> +
>>>>> +from avocado_qemu import Test
>>>>> +from avocado_qemu import wait_for_console_pattern
>>>>> +from avocado.utils import archive
>>>>> +
>>>>> +class CanonA1100Machine(Test):
>>>>> +
>>>>> +    timeout = 90
>>>>> +
>>>>> +    def test_arm_canona1100(self):
>>>>> +        """
>>>>> +        :avocado: tags=arch:arm
>>>>> +        :avocado: tags=machine:canon-a1100
>>>>
>>>> To the maintainer taking this, please add:
>>>>
>>>>             :avocado: tags=pflash_cfi02
>>>
>>> Should there be a "device:" between the "=" and the device name? At
>>> least I can see some other files using "device:" for similar tags...
>>
>> Ah yes you are right, it is clearer.
> 
> 
> Notice that avocado_qemu won't automatically convert that tag into 
> QEMU's -device option, If that is the intention...

That could be useful, but currently my usage is 'avocado run -t 
device:pcnet32' to run all tests using the pcnet32 network device.

I have pflash tests which I plan to use the same way.

This is a hint to other maintainers, who don't have to look at each test 
to find the set of tests that suits them.

IOW "As a maintainer of the device:pflash I'm interested to run all 
tests using this device, and while they pass I won't look at them".

(This is how I expect maintainers to use the acceptance tests when I add 
some).
Thomas Huth Jan. 28, 2020, 12:16 p.m. UTC | #6
On 27/01/2020 21.56, Philippe Mathieu-Daudé wrote:
> Hey Wainer,
> 
> On 1/27/20 6:45 PM, Wainer dos Santos Moschetta wrote:
>> On 1/27/20 1:41 PM, Philippe Mathieu-Daudé wrote:
>>> On 1/27/20 4:39 PM, Thomas Huth wrote:
>>>> On 27/01/2020 16.18, Philippe Mathieu-Daudé wrote:
>>>>> On 1/27/20 3:41 PM, Thomas Huth wrote:
>>>>>> The canon-a1100 machine can be used with the Barebox firmware. The
>>>>>> QEMU Advent Calendar 2018 features a pre-compiled image which we
>>>>>> can use for testing.
>>>>>>
>>>>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>>>>> ---
>>>>>>    tests/acceptance/machine_arm_canon-a1100.py | 33
>>>>>> +++++++++++++++++++++
>>
>>
>> What is the reason for not adding this case in boot_linux_console suite?
> 
> Because there are too many tests in this file and it became hardly
> maintainable. Also it is easier to add a 'F:' entry in the MAINTAINERS
> file to each machine section.

Additionally, this is not a test with a Linux kernel, it uses the
Barebox firmware instead. So boot_*linux*_console.py sounds like the
wrong place for this test.

 Thomas
Wainer dos Santos Moschetta Jan. 28, 2020, 1:44 p.m. UTC | #7
On 1/27/20 6:56 PM, Philippe Mathieu-Daudé wrote:
> Hey Wainer,
>
> On 1/27/20 6:45 PM, Wainer dos Santos Moschetta wrote:
>> On 1/27/20 1:41 PM, Philippe Mathieu-Daudé wrote:
>>> On 1/27/20 4:39 PM, Thomas Huth wrote:
>>>> On 27/01/2020 16.18, Philippe Mathieu-Daudé wrote:
>>>>> On 1/27/20 3:41 PM, Thomas Huth wrote:
>>>>>> The canon-a1100 machine can be used with the Barebox firmware. The
>>>>>> QEMU Advent Calendar 2018 features a pre-compiled image which we
>>>>>> can use for testing.
>>>>>>
>>>>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>>>>> ---
>>>>>>    tests/acceptance/machine_arm_canon-a1100.py | 33 
>>>>>> +++++++++++++++++++++
>>
>>
>> What is the reason for not adding this case in boot_linux_console suite?
>
> Because there are too many tests in this file and it became hardly 
> maintainable. Also it is easier to add a 'F:' entry in the MAINTAINERS 
> file to each machine section.
>
>>>>>>    1 file changed, 33 insertions(+)
>>>>>>    create mode 100644 tests/acceptance/machine_arm_canon-a1100.py
>>>>>>
>>>>>> diff --git a/tests/acceptance/machine_arm_canon-a1100.py
>>>>>> b/tests/acceptance/machine_arm_canon-a1100.py
>>>>>> new file mode 100644
>>>>>> index 0000000000..3888168451
>>>>>> --- /dev/null
>>>>>> +++ b/tests/acceptance/machine_arm_canon-a1100.py
>>>>>> @@ -0,0 +1,33 @@
>>>>>> +# Functional test that boots the canon-a1100 machine with firmware
>>>>>> +#
>>>>>> +# Copyright (c) 2020 Red Hat, Inc.
>>>>>> +#
>>>>>> +# Author:
>>>>>> +#  Thomas Huth <thuth@redhat.com>
>>>>>> +#
>>>>>> +# This work is licensed under the terms of the GNU GPL, version 
>>>>>> 2 or
>>>>>> +# later.  See the COPYING file in the top-level directory.
>>>>>> +
>>>>>> +from avocado_qemu import Test
>>>>>> +from avocado_qemu import wait_for_console_pattern
>>>>>> +from avocado.utils import archive
>>>>>> +
>>>>>> +class CanonA1100Machine(Test):
>>>>>> +
>>>>>> +    timeout = 90
>>>>>> +
>>>>>> +    def test_arm_canona1100(self):
>>>>>> +        """
>>>>>> +        :avocado: tags=arch:arm
>>>>>> +        :avocado: tags=machine:canon-a1100
>>>>>
>>>>> To the maintainer taking this, please add:
>>>>>
>>>>>             :avocado: tags=pflash_cfi02
>>>>
>>>> Should there be a "device:" between the "=" and the device name? At
>>>> least I can see some other files using "device:" for similar tags...
>>>
>>> Ah yes you are right, it is clearer.
>>
>>
>> Notice that avocado_qemu won't automatically convert that tag into 
>> QEMU's -device option, If that is the intention...
>
> That could be useful, but currently my usage is 'avocado run -t 
> device:pcnet32' to run all tests using the pcnet32 network device.
>
> I have pflash tests which I plan to use the same way.
>
> This is a hint to other maintainers, who don't have to look at each 
> test to find the set of tests that suits them.
>
> IOW "As a maintainer of the device:pflash I'm interested to run all 
> tests using this device, and while they pass I won't look at them".
>
> (This is how I expect maintainers to use the acceptance tests when I 
> add some).


OK, understood. Thanks for sharing your usage of acceptance tests!

- Wainer
Wainer dos Santos Moschetta Jan. 28, 2020, 2:01 p.m. UTC | #8
On 1/28/20 10:16 AM, Thomas Huth wrote:
> On 27/01/2020 21.56, Philippe Mathieu-Daudé wrote:
>> Hey Wainer,
>>
>> On 1/27/20 6:45 PM, Wainer dos Santos Moschetta wrote:
>>> On 1/27/20 1:41 PM, Philippe Mathieu-Daudé wrote:
>>>> On 1/27/20 4:39 PM, Thomas Huth wrote:
>>>>> On 27/01/2020 16.18, Philippe Mathieu-Daudé wrote:
>>>>>> On 1/27/20 3:41 PM, Thomas Huth wrote:
>>>>>>> The canon-a1100 machine can be used with the Barebox firmware. The
>>>>>>> QEMU Advent Calendar 2018 features a pre-compiled image which we
>>>>>>> can use for testing.
>>>>>>>
>>>>>>> Signed-off-by: Thomas Huth <thuth@redhat.com>
>>>>>>> ---
>>>>>>>     tests/acceptance/machine_arm_canon-a1100.py | 33
>>>>>>> +++++++++++++++++++++
>>>
>>> What is the reason for not adding this case in boot_linux_console suite?
>> Because there are too many tests in this file and it became hardly
>> maintainable. Also it is easier to add a 'F:' entry in the MAINTAINERS
>> file to each machine section.


Maybe it reached an inflection point and deserves to be split among 
files and directories...


> Additionally, this is not a test with a Linux kernel, it uses the
> Barebox firmware instead. So boot_*linux*_console.py sounds like the
> wrong place for this test.

OK, makes complete sense.

One last comment about this new file. To not look like boring I let 
pylint say that for me :) :

[wainersm@localhost qemu]$ pylint-3 
tests/acceptance/machine_arm_canon-a1100.py
************* Module machine_arm_canon-a1100
tests/acceptance/machine_arm_canon-a1100.py:1:0: C0103: Module name 
"machine_arm_canon-a1100" doesn't conform to snake_case naming style 
(invalid-name)

With that fix:

Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>

Tested-by: Wainer dos Santos Moschetta <wainersm@redhat.com>

Thanks,

Wainer


>
>   Thomas

Patch
diff mbox series

diff --git a/tests/acceptance/machine_arm_canon-a1100.py b/tests/acceptance/machine_arm_canon-a1100.py
new file mode 100644
index 0000000000..3888168451
--- /dev/null
+++ b/tests/acceptance/machine_arm_canon-a1100.py
@@ -0,0 +1,33 @@ 
+# Functional test that boots the canon-a1100 machine with firmware
+#
+# Copyright (c) 2020 Red Hat, Inc.
+#
+# Author:
+#  Thomas Huth <thuth@redhat.com>
+#
+# This work is licensed under the terms of the GNU GPL, version 2 or
+# later.  See the COPYING file in the top-level directory.
+
+from avocado_qemu import Test
+from avocado_qemu import wait_for_console_pattern
+from avocado.utils import archive
+
+class CanonA1100Machine(Test):
+
+    timeout = 90
+
+    def test_arm_canona1100(self):
+        """
+        :avocado: tags=arch:arm
+        :avocado: tags=machine:canon-a1100
+        """
+        tar_url = ('https://www.qemu-advent-calendar.org'
+                   '/2018/download/day18.tar.xz')
+        tar_hash = '068b5fc4242b29381acee94713509f8a876e9db6'
+        file_path = self.fetch_asset(tar_url, asset_hash=tar_hash)
+        archive.extract(file_path, self.workdir)
+        self.vm.set_console()
+        self.vm.add_args('-bios',
+                         self.workdir + '/day18/barebox.canon-a1100.bin')
+        self.vm.launch()
+        wait_for_console_pattern(self, 'running /env/bin/init')