Add testing to workflows

pull/41/head
Andre Richter 4 years ago
parent 70989b963c
commit cc9f7708c9
No known key found for this signature in database
GPG Key ID: 2116C1AB102F615E

@ -0,0 +1,40 @@
name: Integration-Tests
on:
push:
branches:
- master
paths-ignore:
- 'utils/**'
- 'doc/**'
- 'docker/**'
pull_request:
branches:
- master
paths-ignore:
- 'utils/**'
- 'doc/**'
- 'docker/**'
schedule:
- cron: '0 5 * * *'
jobs:
build:
name: Run integration tests
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1
- name: Set up Ruby 2.x
uses: actions/setup-ruby@v1
with:
ruby-version: 2.x
- name: Set up Rust nightly
run: |
rustup self update
rustup toolchain install nightly --component rust-src llvm-tools-preview
rustup default nightly
cargo install cargo-xbuild cargo-binutils
- name: Make all
run: |
ruby utils/test_integration_all.rb

@ -0,0 +1,40 @@
name: Unit-Tests
on:
push:
branches:
- master
paths-ignore:
- 'utils/**'
- 'doc/**'
- 'docker/**'
pull_request:
branches:
- master
paths-ignore:
- 'utils/**'
- 'doc/**'
- 'docker/**'
schedule:
- cron: '0 5 * * *'
jobs:
build:
name: Run unit tests
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v1
- name: Set up Ruby 2.x
uses: actions/setup-ruby@v1
with:
ruby-version: 2.x
- name: Set up Rust nightly
run: |
rustup self update
rustup toolchain install nightly --component rust-src llvm-tools-preview
rustup default nightly
cargo install cargo-xbuild cargo-binutils
- name: Make all
run: |
ruby utils/test_unit_all.rb

@ -1,6 +1,6 @@
# Operating System development tutorials in Rust on the Raspberry Pi
![](https://github.com/rust-embedded/rust-raspi3-OS-tutorials/workflows/BSP-RPi3/badge.svg) ![](https://github.com/rust-embedded/rust-raspi3-OS-tutorials/workflows/BSP-RPi4/badge.svg)
![](https://github.com/rust-embedded/rust-raspi3-OS-tutorials/workflows/BSP-RPi3/badge.svg) ![](https://github.com/rust-embedded/rust-raspi3-OS-tutorials/workflows/BSP-RPi4/badge.svg) ![](https://github.com/rust-embedded/rust-raspi3-OS-tutorials/workflows/Unit-Tests/badge.svg) ![](https://github.com/rust-embedded/rust-raspi3-OS-tutorials/workflows/Integration-Tests/badge.svg)
## Introduction
@ -100,7 +100,7 @@ power over the dedicated power-USB.
Raspberry is getting _really_ comfortable. In this tutorial, a so-called
`chainloader` is developed, which will be the last file you need to manually
copy on the SD card for a while. It will enable you to load the tutorial
kernels during boot on demand over `UART`.
kernels during boot on demand over `UART`.
![UART wiring diagram](doc/wiring.png)

@ -3,14 +3,14 @@
# SPDX-License-Identifier: MIT OR Apache-2.0
#
# Copyright (c) 2018-2019 Andre Richter <andre.o.richter@gmail.com>
# Copyright (c) 2018-2020 Andre Richter <andre.o.richter@gmail.com>
require 'fileutils'
WITH_EXTRA = '[X0-9]'
NO_EXTRA = '[0-9]'
def tutorial_folders(with_extra = true)
def tutorial_folders(with_extra = true, testable = false)
crates = Dir['*/Cargo.toml']
crates.delete_if do |x|
@ -19,6 +19,12 @@ def tutorial_folders(with_extra = true)
!/[#{s}][0-9]/.match?(x[0..1])
end
if testable
crates.delete_if do |x|
x[0..1].to_i < 13
end
end
crates.sort!
end

@ -3,14 +3,16 @@
# SPDX-License-Identifier: MIT OR Apache-2.0
#
# Copyright (c) 2018-2019 Andre Richter <andre.o.richter@gmail.com>
# Copyright (c) 2018-2020 Andre Richter <andre.o.richter@gmail.com>
require_relative 'clean_all'
require_relative 'clippy_all'
require_relative 'diff_all'
require_relative 'fmt_all'
require_relative 'make_all'
require_relative 'sanity_checks'
require_relative 'diff_all'
require_relative 'test_integration_all'
require_relative 'test_unit_all'
clean_all
fmt_all
@ -20,6 +22,8 @@ clippy_all
clean_all
make_all
test_unit_all
test_integration_all
system('cd X1_JTAG_boot && bash update.sh')
diff_all
clean_all

@ -0,0 +1,30 @@
#!/usr/bin/env ruby
# frozen_string_literal: true
# SPDX-License-Identifier: MIT OR Apache-2.0
#
# Copyright (c) 2018-2020 Andre Richter <andre.o.richter@gmail.com>
require 'fileutils'
require_relative 'helpers/tutorial_folders.rb'
def run_tests
Dir['tests/*.rs'].sort.each do |int_test|
int_test = int_test.delete_prefix!('tests/').delete_suffix('.rs')
exit(1) unless system("TEST=#{int_test} make test")
end
end
def test_integration_all
crates = tutorial_folders(false, true)
crates.each do |x|
tut = File.dirname(x)
Dir.chdir(tut) do
puts "\n\n" + tut.to_s + "\n\n"
run_tests
end
end
end
test_integration_all if $PROGRAM_NAME == __FILE__

@ -0,0 +1,23 @@
#!/usr/bin/env ruby
# frozen_string_literal: true
# SPDX-License-Identifier: MIT OR Apache-2.0
#
# Copyright (c) 2018-2020 Andre Richter <andre.o.richter@gmail.com>
require 'fileutils'
require_relative 'helpers/tutorial_folders.rb'
def test_unit_all
crates = tutorial_folders(false, true)
crates.each do |x|
x = File.dirname(x)
Dir.chdir(x) do
puts "\n\n" + x.to_s + "\n\n"
exit(1) unless system('TEST=unit make test')
end
end
end
test_unit_all if $PROGRAM_NAME == __FILE__
Loading…
Cancel
Save