Lorenz Brun | 547b33f | 2020-04-23 15:27:06 +0200 | [diff] [blame] | 1 | # Copyright 2020 The Monogon Project Authors. |
| 2 | # |
| 3 | # SPDX-License-Identifier: Apache-2.0 |
| 4 | # |
| 5 | # Licensed under the Apache License, Version 2.0 (the "License"); |
| 6 | # you may not use this file except in compliance with the License. |
| 7 | # You may obtain a copy of the License at |
| 8 | # |
| 9 | # http://www.apache.org/licenses/LICENSE-2.0 |
| 10 | # |
| 11 | # Unless required by applicable law or agreed to in writing, software |
| 12 | # distributed under the License is distributed on an "AS IS" BASIS, |
| 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 14 | # See the License for the specific language governing permissions and |
| 15 | # limitations under the License. |
| 16 | |
| 17 | """ |
Serge Bazanski | 662b5b3 | 2020-12-21 13:49:00 +0100 | [diff] [blame] | 18 | Ktest provides a macro to run tests under a normal Metropolis node kernel |
Lorenz Brun | 547b33f | 2020-04-23 15:27:06 +0200 | [diff] [blame] | 19 | """ |
| 20 | |
Lorenz Brun | ddd6caf | 2021-03-04 17:16:04 +0100 | [diff] [blame^] | 21 | load("//metropolis/node/build:def.bzl", "node_initramfs") |
| 22 | |
| 23 | def _dict_union(x, y): |
| 24 | z = {} |
| 25 | z.update(x) |
| 26 | z.update(y) |
| 27 | return z |
| 28 | |
| 29 | def ktest(tester, cmdline = "", files = {}, files_cc = {}): |
| 30 | node_initramfs( |
Lorenz Brun | 547b33f | 2020-04-23 15:27:06 +0200 | [diff] [blame] | 31 | name = "test_initramfs", |
Lorenz Brun | ddd6caf | 2021-03-04 17:16:04 +0100 | [diff] [blame^] | 32 | files = _dict_union({ |
| 33 | "//metropolis/test/ktest/init": "/init", |
| 34 | tester: "/tester", |
| 35 | }, files), |
| 36 | files_cc = files_cc, |
Lorenz Brun | 547b33f | 2020-04-23 15:27:06 +0200 | [diff] [blame] | 37 | testonly = True, |
Lorenz Brun | 547b33f | 2020-04-23 15:27:06 +0200 | [diff] [blame] | 38 | ) |
| 39 | |
| 40 | native.sh_test( |
| 41 | name = "ktest", |
| 42 | args = [ |
Serge Bazanski | 77cb6c5 | 2020-12-19 00:09:22 +0100 | [diff] [blame] | 43 | "$(location //metropolis/test/ktest)", |
Lorenz Brun | 547b33f | 2020-04-23 15:27:06 +0200 | [diff] [blame] | 44 | "$(location :test_initramfs)", |
Serge Bazanski | 77cb6c5 | 2020-12-19 00:09:22 +0100 | [diff] [blame] | 45 | "$(location //metropolis/test/ktest:linux-testing)", |
Lorenz Brun | 547b33f | 2020-04-23 15:27:06 +0200 | [diff] [blame] | 46 | cmdline, |
| 47 | ], |
| 48 | size = "small", |
Serge Bazanski | 77cb6c5 | 2020-12-19 00:09:22 +0100 | [diff] [blame] | 49 | srcs = ["//metropolis/test/ktest:test-script"], |
Lorenz Brun | 547b33f | 2020-04-23 15:27:06 +0200 | [diff] [blame] | 50 | data = [ |
Serge Bazanski | 77cb6c5 | 2020-12-19 00:09:22 +0100 | [diff] [blame] | 51 | "//metropolis/test/ktest", |
Lorenz Brun | 547b33f | 2020-04-23 15:27:06 +0200 | [diff] [blame] | 52 | ":test_initramfs", |
Serge Bazanski | 77cb6c5 | 2020-12-19 00:09:22 +0100 | [diff] [blame] | 53 | "//metropolis/test/ktest:linux-testing", |
Lorenz Brun | 3ff5af3 | 2020-06-24 16:34:11 +0200 | [diff] [blame] | 54 | "@com_github_bonzini_qboot//:qboot-bin", |
Lorenz Brun | 547b33f | 2020-04-23 15:27:06 +0200 | [diff] [blame] | 55 | ], |
Lorenz Brun | 3ff5af3 | 2020-06-24 16:34:11 +0200 | [diff] [blame] | 56 | ) |