Commit graph

281 commits

Author SHA1 Message Date
Yann E. MORIN dd9dfb64ea support/testing: add runtime testing for read-only systemd
We add the 3 following combinations:

  - basic systemd, read-only, network w/ ifupdown
  - basic systemd, read-only, network w/ networkd
  - full systemd, read-only, network w/ networkd

The tests just verify what the /sbin/init binary is, and that we were
able to grab an IP address. More tests can be added later, for example
to check each systemd features (journal, tmpfiles...)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Arnout: regenerate .gitlab-ci.yml]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-08-02 21:00:44 +02:00
Yann E. MORIN 117835d5fc support/testing: add runtime testing for init systems
The "builtin" kernel does not boot a systemd-based system, so
we resort to building the same one as currently used by our
qemu_arm_vexpress_defconfig.

We test the 8 following combinations:

  - busybox, read-only, without network
  - busybox, read-only, with network
  - busybox, read-write, without network
  - busybox, read-write, with network

  - basic systemd, read-write, network w/ ifupdown
  - basic systemd, read-write, network w/ networkd
  - full systemd, read-write, network w/ networkd

  - no init system, read-only, without network

The tests just verify what the /sbin/init binary is, and that we were
able to grab an IP address. More tests can be added later, for example
to check each systemd features (journal, tmpfiles...)

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
[Arnout: update .gitlab-ci.yml]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-08-02 17:42:49 +02:00
Ricardo Martincoski af6b5830ec .gitlab-ci.yml: save rootfs as artifact for runtime tests
Sometimes when a test fails in a gitlab pipeline the reason of the
failure cannot be determined using only the logfile.

Add the modified rootfs as an artifact of the job to improve
troubleshooting. To accomplish this, always use -k option from the test
infra, unconditionally add the resulting images to the artifacts, and
let the runner do the cleanup for us.

These artifacts can also be useful when a test fails locally but pass at
gitlab runners.

When the test does not generate a image, this message is displayed in
the runner log:
WARNING: test-output/*/images/*: no matching files

Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-31 21:23:25 +02:00
Arnout Vandecappelle 6355ec2768 support/testing: add test of BR2_CCACHE with an external toolchain
We reuse TestExternalToolchainBuildrootuClibc and add ccache to its
configuration.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Reviewed-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Tested-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-24 18:35:15 +02:00
Chakra Divi b0a9ee07e4 board: Add support for nanopi-m1-plus
Add initial support for nanopi-m1-plus board
with below features
- U-Boot 2017.07-rc3
    nanopi-m1-plus dts support is present in rc3 version
- Linux 4.11.5
- linux patches to add nanopi-m1-plus dts
- Default packages from buildroot

Signed-off-by: Chakra Divi <chakra@openedev.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2017-07-23 11:30:14 +02:00
Andrey Smirnov d2fe2686d7 testing/tests/package: add basic unit test for IPython
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
[Thomas: update .gitlab-ci.yml.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-22 22:55:05 +02:00
Andrey Smirnov 97278ebddd testing/tests/package/test_python: add TestPython3
Add Python3 version of TestPython2 to make sure both versions of
Python get unit-tested.

Modify the code of libc_time_test() to support that change (convert
the code to use Python3-style "print").

Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
[Thomas: update .gitlab-ci.yml.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-22 22:52:42 +02:00
Andrey Smirnov 4c85d3e459 testing/tests/package/test_python: refactor TestPythonBase
Convert TestPythonBase to a true base class that only provides code
implementing various tests without defining tests themselves in a
"discoverable" form.

To retain correct testing functionality, add TestPython2 derived class
that uses code from TestPythonBase to define actual runnable test.

Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Reviewed-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Tested-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
[Thomas: fix typo in commit log, update .gitlab-ci.yml, both pointed
by Ricardo.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-22 22:38:21 +02:00
Chakra Divi 7de984bdbc board: Add nanopi-m1 Support
Add initial support for nanopi-m1 board
with below features
- U-Boot 2017.07-rc1
- Linux 4.11.5
- Default packages from buildroot

Signed-off-by: Chakra Divi <chakra@openedev.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-05 18:15:54 +02:00
Thomas Petazzoni 8bbc37e933 support/testing: add tests for musl and uclibc toolchains
These tests simply build a system with musl and uclibc toolchains, and
boot them under qemu. It allows to minimally validate that our support
for musl/uclibc external toolchains is working. We already had some
tests covering glibc toolchains, so we can now easily test that all
three C libraries are supported.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
This commit is part of the series, as I've written/used those tests to
validate that things are still working correctly with all of glibc,
uclibc and musl toolchains.
2017-07-05 12:20:05 +02:00
Arnout Vandecappelle d2a151cea0 .gitlab-ci.yml: use the Buildroot CI image published on Docker Hub
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-02 23:45:27 +02:00
Thomas Petazzoni b287ea6fc5 .gitlab-ci.yml: run our runtime tests
This commit improves our .gitlab-ci.yml logic to execute our runtime
tests located in support/testing/. To do so, this commit:

 - Adds more Debian packages to be installed, namely the nose2 and
   pexpect packages needed by the runtime testing infrastructure, as
   well as the necessary Qemu emulators

 - The description of how to run the runtime tests. Each test is
   executed as a separate Gitlab CI job, so that the status of each
   test is easily visible in the Gitlab CI web interface.

 - The Makefile is improved to auto-generate .gitlab-ci.yml from
   .gitlab-ci.yml.in, like we're doing for defconfigs. Since the
   dependencies of .gitlab-ci.yml are no longer correct, we abandon
   them and instead make it a PHONY target.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Arnout: simplify .gitlab-ci.in a little, removing redundant stuff;
         make .gitlab-ci.yml a PHONY target]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-02 23:45:07 +02:00
Arnout Vandecappelle 29ba13e57c .gitlab-ci.yml: fix it again
It seems the ! is removed by the yaml parser, so it needs to be quoted.
While we're at it, add some explanatory comment.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-02 00:34:40 +02:00
Arnout Vandecappelle 91a5ec960b .gitlab-ci.yml: simplify (and fix) check-DEVELOPERS
The check-DEVELOPERS test would always fail, because && will return
the exit code of the left-hand side if not 0, so it *always* returns
1.

But in fact, the test can be simplified quite a lot: we can run
getdeveloper directly, without arguments. That should just print
'No action specified', but it will also print any syntax errors it
encountered. So we can just 'grep -v' the expected output away; if
there is anything more, grep will return 0, but if there is nothing
more, it will return 1. So we just need to invert the result.

Incidentally, this also fixes the incorrect remaining reference to
support/scripts.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-01 19:43:49 +02:00
Chakra Divi bd22ae58fa board: add orangepi-plus support
Signed-off-by: Chakra Divi <chakra@openedev.com>
[Thomas: remove host-uboot-tools from defconfig, already pulled by
BR2_TARGET_UBOOT_BOOT_SCRIPT, remove trailing whitespace.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-01 16:52:40 +02:00
Arnout Vandecappelle d498aa4a34 .gitlab-ci.yml: add check-DEVELOPERS test
This verifies that the DEVELOPERS file doesn't contain errors. It
just runs parse_developers from getdeveloperlib and errors out if
that produces any output.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-07-01 15:22:37 +02:00
Jagan Teki 0235bc6176 board: Add support for Engicam Is.IoT MX6UL SOM
Add initial support for Engicam Is.IoT MX6UL SOM board
with below features:
- U-Boot 2017.07-rc1
- Linux 4.11.5
- Default packages from buildroot

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
[Thomas: add host-dosfstools/host-mtools.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-06-24 14:55:04 +02:00
Jagan Teki 09c0bc7a8d board: Add support for Engicam GEAM6UL SOM
Add initial support for Engicam GEAM6UL SOM board
with below features:
- U-Boot 2017.07-rc1
- Linux 4.11.5
- Default packages from buildroot

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
[Thomas: add host-dosfstools and host-mtools.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-06-24 14:50:56 +02:00
Jagan Teki 3127e4dcd9 board: Add support for Engicam i.CoreM6 RQS SOM
Add initial support for Engicam i.CoreM6 Quad/Dual/DualLite/Solo RQS
board with below features:
- U-Boot 2017.07-rc1
- Linux 4.11.5
- Default packages from buildroot

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
[Thomas: add missing host-dosfstools and host-mtools.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-06-24 14:32:07 +02:00
Jagan Teki c6473f8e8a board: Add support for Engicam i.CoreM6 DualLite/Solo boards
Add initial support for Engicam i.CoreM6 DualLite/Solo board
with below features:
- U-Boot 2017.07-rc1
- Linux 4.11.5
- Default packages from buildroot

U-Boot 2017.07-rc1 has common u-boot defconfig for All i.CoreM6
variant boards, so this patch update the same along with
buildroot defconfig that reflect the common name.

Signed-off-by: Jagan Teki <jagan@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-06-24 14:13:17 +02:00
Chakra Divi d7bdee2d41 configs/olimex_a13_olinuxino: new defconfig
Add initial support for a13_olinuxino board
with below features
- U-Boot 2017.05
- Linux 4.11.5
- Default packages from buildroot

Signed-off-by: Chakra Divi <chakra@openedev.com>
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
[Thomas:
 - use full name in DEVELOPERS file
 - remove parametrization of the post-build.sh script, just hardcode
   the boot.cmd file used as input
 - add missing dosfstools and mtools host packages in defconfig,
   needed because a vfat partition is defined in the genimage.cfg
   file
 - minor tweaks to readme.txt file.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-06-21 23:06:11 +02:00
Thomas Petazzoni 5c4ff9f7e5 .gitlab-cy.yml: refresh
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-06-12 23:17:11 +02:00
Peter Korsgaard ca4322ac24 .gitlab-ci.yml: sync with latest defconfig additions
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2017-06-08 21:25:37 +02:00
Thomas Petazzoni be95978f3c .gitlab-ci.yml: regenerate after snps_archs38_zebu_defconfig rename
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-05-14 13:56:38 +02:00
Thomas Petazzoni 6520c06e5b .gitlab-ci.yml: sync with latest defconfig additions
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-05-07 13:42:12 +02:00
Arnout Vandecappelle 8a8fe861c9 .gitlab-ci.yml: refresh after rename of Synopsys ARC defconfigs
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-04-16 10:39:35 +02:00
Guo Ren 6a4131d101 configs: add defconfig for Nationalchip gx6605s dev board
gx6605s is a nice SOC for dvbs2 DVB product, and C-SKY inside.

Signed-off-by: Guo Ren <ren_guo@c-sky.com>
[Thomas: drop post-image script copying the gdbinit file, and suggest
to use gdb -x option instead to point to the gdbinit file in board/.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-03-20 22:47:15 +01:00
Arnout Vandecappelle 512a083094 gitlab-ci: add gcc-multilib to the docker image
This is needed for defconfigs that use syslinux.

Fixes https://gitlab.com/buildroot.org/buildroot/builds/11701092

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
2017-03-10 14:22:25 +01:00
Ludovic Desroches ece884a704 configs: at91sam9x5ek: new additional defconfigs
This commit:

 - Adds a development rootfs defconfig for the at91sam9x5ek board for
   NAND-based configurations.

 - Adds SD-card based configurations for the at91sam9x5ek board, both a
   minimal one and development one.

Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
[Thomas: add at91sam9x5ek_mmc_defconfig to have all four combinations:
NAND minimal, NAND development, SD minimal, SD development.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-03-07 21:58:51 +01:00
Jörg Krause 0ad1067db5 board: add support for Banana Pro
The board support package includes the following components:
 - U-Boot 2016.11
 - Linux 4.9.3
 - packages:
   - alsa-utils for basic audio usage of the on-board headphone jack
     and microphone
   - iw and wpa_supplicant for managing the wireless interface

Two Linux patches are necessary to enable audio and wifi support. Both
patches are fetched from the Linux next branch and are probably mainlined in
Linux 4.11.

A Linux configuration fragment enables the wireless device driver, which
is not enabled by default in the mainline defconfig of the board.

The wifi chip needs a NVRAM configuration file which is provided in the
rootfs overlay.

Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
[Thomas: remove e2fsprogs from the target packages, add entry in
DEVELOPERS file, remove C++ support.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-03-05 23:36:41 +01:00
Arnout Vandecappelle 4f863d77a6 Add gitlab-CI support
The buildroot repository is now mirrored on
https://gitlab.com/buildroot.org/buildroot so we can use Gitlab-CI to
test Buildroot. Gitlab-CI is controlled by a .gitlab-ci.yml file
that exists in the repository.

For now, the only test is building all defconfigs (inspired on
https://travis-ci.org/buildroot/buildroot-defconfig-testing/). Since
all the defconfigs have to be specified in the .gitlab-ci.yml file,
we generate the file based on .gitlab-ci.yml.in. The generated
.gitlab-ci.yml file has to be committed into the repository, though,
otherwise Gitlab-CI doesn't see it. So there is also a test to verify
that .gitlab-ci.yml is up-to-date.

Building all the defconfigs takes a long time. Gitlab-CI will do that
every time it pulls from git.buildroot.org, which is once per hour.
That is way too often. Therefore, the defconfigs are not built on pull,
but only on explicit trigger through the API or when a tag is added.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
[Thomas:
 - fix typo not -> no
 - add LC_ALL=C when calling 'ls -1' to get a predictable order of the
   defconfigs
 - regenerate .gitlab-ci.yml.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-03-05 22:21:50 +01:00