diff mbox series

[v2,8/8] automation: add RISC-V smoke test

Message ID 494c2fd1e046de20c2fa24be3989cc6adde8fdbe.1673278109.git.oleksii.kurochko@gmail.com (mailing list archive)
State Superseded
Headers show
Series Basic early_printk and smoke test implementation | expand

Commit Message

Oleksii Kurochko Jan. 9, 2023, 3:46 p.m. UTC
Add check if there is a message 'Hello from C env' presents
in log file to be sure that stack is set and C part of early printk
is working.

Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
---
Changes in V2:
    - Move changes in the dockerfile to separate patch and  send it to
      mailing list separately:
        [PATCH] automation: add qemu-system-riscv to riscv64.dockerfile
    - Update test.yaml to wire up smoke test
---
 automation/gitlab-ci/test.yaml           | 20 ++++++++++++++++++++
 automation/scripts/qemu-smoke-riscv64.sh | 20 ++++++++++++++++++++
 2 files changed, 40 insertions(+)
 create mode 100755 automation/scripts/qemu-smoke-riscv64.sh

Comments

Stefano Stabellini Jan. 10, 2023, 2:21 a.m. UTC | #1
On Mon, 9 Jan 2023, Oleksii Kurochko wrote:
> Add check if there is a message 'Hello from C env' presents
> in log file to be sure that stack is set and C part of early printk
> is working.
> 
> Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> ---
> Changes in V2:
>     - Move changes in the dockerfile to separate patch and  send it to
>       mailing list separately:
>         [PATCH] automation: add qemu-system-riscv to riscv64.dockerfile
>     - Update test.yaml to wire up smoke test
> ---
>  automation/gitlab-ci/test.yaml           | 20 ++++++++++++++++++++
>  automation/scripts/qemu-smoke-riscv64.sh | 20 ++++++++++++++++++++
>  2 files changed, 40 insertions(+)
>  create mode 100755 automation/scripts/qemu-smoke-riscv64.sh
> 
> diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
> index afd80adfe1..64f47a0ab9 100644
> --- a/automation/gitlab-ci/test.yaml
> +++ b/automation/gitlab-ci/test.yaml
> @@ -54,6 +54,19 @@
>    tags:
>      - x86_64
>  
> +.qemu-riscv64:
> +  extends: .test-jobs-common
> +  variables:
> +    CONTAINER: archlinux:riscv64

I realize that it is committed now, but following the arm32 convention
the name of the arch container (currently archlinux:riscv64) would be:

CONTAINER: archlinux:current-riscv64

I know this is not related to this patch, but I am taking the
opportunity to mention it now in case we get an opportunity to fix it in
the future for consistency.


> +    LOGFILE: qemu-smoke-riscv64.log
> +  artifacts:
> +    paths:
> +      - smoke.serial
> +      - '*.log'
> +    when: always
> +  tags:
> +    - x86_64
> +
>  .yocto-test:
>    extends: .test-jobs-common
>    script:
> @@ -234,6 +247,13 @@ qemu-smoke-x86-64-clang-pvh:
>    needs:
>      - debian-unstable-clang-debug
>  
> +qemu-smoke-riscv64-gcc:
> +  extends: .qemu-riscv64
> +  script:
> +    - ./automation/scripts/qemu-smoke-riscv64.sh 2>&1 | tee ${LOGFILE}
> +  needs:
> +    - riscv64-cross-gcc

Similarly here the "needs" dependency should be called
arch-current-gcc-riscv for consistency with arm32.

Basically we already have a crossbuild and crosstest environment up and
running in gitlab-ci and it is the one for arm32. You can just base all
the naming convention on that.

I realize that riscv64-cross-gcc is also already exported by build.yaml,
but I am mentioning it in case we get an opportunity to fix it in the
future.

Nonetheless this patch on its own is OK so

Acked-by: Stefano Stabellini <sstabellini@kernel.org>



>  # Yocto test jobs
>  yocto-qemuarm64:
>    extends: .yocto-test-arm64
> diff --git a/automation/scripts/qemu-smoke-riscv64.sh b/automation/scripts/qemu-smoke-riscv64.sh
> new file mode 100755
> index 0000000000..e0f06360bc
> --- /dev/null
> +++ b/automation/scripts/qemu-smoke-riscv64.sh
> @@ -0,0 +1,20 @@
> +#!/bin/bash
> +
> +set -ex
> +
> +# Run the test
> +rm -f smoke.serial
> +set +e
> +
> +timeout -k 1 2 \
> +qemu-system-riscv64 \
> +    -M virt \
> +    -smp 1 \
> +    -nographic \
> +    -m 2g \
> +    -kernel binaries/xen \
> +    |& tee smoke.serial
> +
> +set -e
> +(grep -q "Hello from C env" smoke.serial) || exit 1
> +exit 0
> -- 
> 2.38.1
>
Oleksii Kurochko Jan. 10, 2023, 8:09 a.m. UTC | #2
On Mon, 2023-01-09 at 18:21 -0800, Stefano Stabellini wrote:
> On Mon, 9 Jan 2023, Oleksii Kurochko wrote:
> > Add check if there is a message 'Hello from C env' presents
> > in log file to be sure that stack is set and C part of early printk
> > is working.
> > 
> > Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
> > ---
> > Changes in V2:
> >     - Move changes in the dockerfile to separate patch and  send it
> > to
> >       mailing list separately:
> >         [PATCH] automation: add qemu-system-riscv to
> > riscv64.dockerfile
> >     - Update test.yaml to wire up smoke test
> > ---
> >  automation/gitlab-ci/test.yaml           | 20 ++++++++++++++++++++
> >  automation/scripts/qemu-smoke-riscv64.sh | 20 ++++++++++++++++++++
> >  2 files changed, 40 insertions(+)
> >  create mode 100755 automation/scripts/qemu-smoke-riscv64.sh
> > 
> > diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-
> > ci/test.yaml
> > index afd80adfe1..64f47a0ab9 100644
> > --- a/automation/gitlab-ci/test.yaml
> > +++ b/automation/gitlab-ci/test.yaml
> > @@ -54,6 +54,19 @@
> >    tags:
> >      - x86_64
> >  
> > +.qemu-riscv64:
> > +  extends: .test-jobs-common
> > +  variables:
> > +    CONTAINER: archlinux:riscv64
> 
> I realize that it is committed now, but following the arm32
> convention
> the name of the arch container (currently archlinux:riscv64) would
> be:
> 
> CONTAINER: archlinux:current-riscv64
> 
> I know this is not related to this patch, but I am taking the
> opportunity to mention it now in case we get an opportunity to fix it
> in
> the future for consistency.
> 
> 
> > +    LOGFILE: qemu-smoke-riscv64.log
> > +  artifacts:
> > +    paths:
> > +      - smoke.serial
> > +      - '*.log'
> > +    when: always
> > +  tags:
> > +    - x86_64
> > +
> >  .yocto-test:
> >    extends: .test-jobs-common
> >    script:
> > @@ -234,6 +247,13 @@ qemu-smoke-x86-64-clang-pvh:
> >    needs:
> >      - debian-unstable-clang-debug
> >  
> > +qemu-smoke-riscv64-gcc:
> > +  extends: .qemu-riscv64
> > +  script:
> > +    - ./automation/scripts/qemu-smoke-riscv64.sh 2>&1 | tee
> > ${LOGFILE}
> > +  needs:
> > +    - riscv64-cross-gcc
> 
> Similarly here the "needs" dependency should be called
> arch-current-gcc-riscv for consistency with arm32.
> 
> Basically we already have a crossbuild and crosstest environment up
> and
> running in gitlab-ci and it is the one for arm32. You can just base
> all
> the naming convention on that.
> 
> I realize that riscv64-cross-gcc is also already exported by
> build.yaml,
> but I am mentioning it in case we get an opportunity to fix it in the
> future.
> 
> Nonetheless this patch on its own is OK so
> 
> Acked-by: Stefano Stabellini <sstabellini@kernel.org>
> 
Thanks for the comments.

I think it will be nice to fix that from the start so I will do a
separete patch out of this patch series (when it will be merged) which
will fix all this names related to RISCV.
> 
> >  # Yocto test jobs
> >  yocto-qemuarm64:
> >    extends: .yocto-test-arm64
> > diff --git a/automation/scripts/qemu-smoke-riscv64.sh
> > b/automation/scripts/qemu-smoke-riscv64.sh
> > new file mode 100755
> > index 0000000000..e0f06360bc
> > --- /dev/null
> > +++ b/automation/scripts/qemu-smoke-riscv64.sh
> > @@ -0,0 +1,20 @@
> > +#!/bin/bash
> > +
> > +set -ex
> > +
> > +# Run the test
> > +rm -f smoke.serial
> > +set +e
> > +
> > +timeout -k 1 2 \
> > +qemu-system-riscv64 \
> > +    -M virt \
> > +    -smp 1 \
> > +    -nographic \
> > +    -m 2g \
> > +    -kernel binaries/xen \
> > +    |& tee smoke.serial
> > +
> > +set -e
> > +(grep -q "Hello from C env" smoke.serial) || exit 1
> > +exit 0
> > -- 
> > 2.38.1
> > 
~Oleksii
diff mbox series

Patch

diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml
index afd80adfe1..64f47a0ab9 100644
--- a/automation/gitlab-ci/test.yaml
+++ b/automation/gitlab-ci/test.yaml
@@ -54,6 +54,19 @@ 
   tags:
     - x86_64
 
+.qemu-riscv64:
+  extends: .test-jobs-common
+  variables:
+    CONTAINER: archlinux:riscv64
+    LOGFILE: qemu-smoke-riscv64.log
+  artifacts:
+    paths:
+      - smoke.serial
+      - '*.log'
+    when: always
+  tags:
+    - x86_64
+
 .yocto-test:
   extends: .test-jobs-common
   script:
@@ -234,6 +247,13 @@  qemu-smoke-x86-64-clang-pvh:
   needs:
     - debian-unstable-clang-debug
 
+qemu-smoke-riscv64-gcc:
+  extends: .qemu-riscv64
+  script:
+    - ./automation/scripts/qemu-smoke-riscv64.sh 2>&1 | tee ${LOGFILE}
+  needs:
+    - riscv64-cross-gcc
+
 # Yocto test jobs
 yocto-qemuarm64:
   extends: .yocto-test-arm64
diff --git a/automation/scripts/qemu-smoke-riscv64.sh b/automation/scripts/qemu-smoke-riscv64.sh
new file mode 100755
index 0000000000..e0f06360bc
--- /dev/null
+++ b/automation/scripts/qemu-smoke-riscv64.sh
@@ -0,0 +1,20 @@ 
+#!/bin/bash
+
+set -ex
+
+# Run the test
+rm -f smoke.serial
+set +e
+
+timeout -k 1 2 \
+qemu-system-riscv64 \
+    -M virt \
+    -smp 1 \
+    -nographic \
+    -m 2g \
+    -kernel binaries/xen \
+    |& tee smoke.serial
+
+set -e
+(grep -q "Hello from C env" smoke.serial) || exit 1
+exit 0