Merge branch 'nora/tests' into 'main'
opgpcard: Replace flagfile with environment variable See merge request openpgp-card/openpgp-card!21
This commit is contained in:
commit
538afffcaf
5 changed files with 26 additions and 21 deletions
|
@ -145,8 +145,7 @@ subplot:
|
|||
script:
|
||||
# make sure a virtual card is available, so that the subplot tests are
|
||||
# generated
|
||||
- touch tools/virtual-card-available
|
||||
- cargo test
|
||||
- CARD_BASED_TESTS=true cargo test
|
||||
cache:
|
||||
# inherit all general cache settings
|
||||
<<: *general_cache_config
|
||||
|
|
|
@ -9,14 +9,17 @@ fn main() {
|
|||
// card is available. This is a kludge until Subplot can do
|
||||
// conditional scenarios
|
||||
// (https://gitlab.com/subplot/subplot/-/issues/20).
|
||||
let flagfile = Path::new("virtual-card-available");
|
||||
if flagfile.exists() {
|
||||
match option_env!("CARD_BASED_TESTS") {
|
||||
Some(_) => {
|
||||
subplot_build::codegen("subplot/opgpcard.subplot")
|
||||
.expect("failed to generate code with Subplot");
|
||||
} else {
|
||||
println!("cargo:warning=generated subplot tests");
|
||||
}
|
||||
None => {
|
||||
// If we're not generating code from the subplot, we should at
|
||||
// least create an empty file so that the tests/opgpcard.rs
|
||||
// file can include it. Otherwise the build will fail.
|
||||
println!("cargo:warning=did not generate subplot tests");
|
||||
let out_dir = std::env::var("OUT_DIR").unwrap();
|
||||
let include = Path::new(&out_dir).join("opgpcard.rs");
|
||||
eprintln!("build.rs: include={}", include.display());
|
||||
|
@ -24,4 +27,5 @@ fn main() {
|
|||
File::create(include).unwrap();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Run this to run opgpcard (tools directory) test suite inside a
|
||||
# Docker container with a virtual smartcard running. The test suite
|
||||
|
@ -14,10 +14,12 @@ docker run --rm -it \
|
|||
-v root:/root \
|
||||
-v cargo:/cargo \
|
||||
-v $(pwd):/src \
|
||||
-e CARD_BASED_TESTS=true \
|
||||
registry.gitlab.com/openpgp-card/virtual-cards/smartpgp-builddeps sh -c '
|
||||
sed -i "s/timeout=20/timeout=60/" /home/jcardsim/run-card.sh &&
|
||||
/etc/init.d/pcscd start &&
|
||||
su - -c "sh /home/jcardsim/run-card.sh >/dev/null" jcardsim &&
|
||||
cd /src/tools &&
|
||||
if ! [ -e virtual-card-available ]; then rm -f tests/opgpcard.rs; fi &&
|
||||
CARGO_TARGET_DIR=/cargo/ cargo update &&
|
||||
CARGO_TARGET_DIR=/cargo/ cargo build -vv &&
|
||||
CARGO_TARGET_DIR=/cargo/ cargo test'
|
||||
|
|
|
@ -17,9 +17,9 @@ The verification scenarios in this document assume the availability of
|
|||
a virtual smart card. Specifically one described in
|
||||
<https://gitlab.com/openpgp-card/virtual-cards>. The
|
||||
`openpgp-card/tools` crate is set up to generate tests only if the
|
||||
file `tools/virtual-card-available` exists, and the `openpgp-card`
|
||||
repository `.gitlab-ci.yml` file is set up to create that file when
|
||||
the repository is tested in GitLab CI.
|
||||
environment variable `CARD_BASED_TESTS` is set (to any value),
|
||||
and the `openpgp-card` repository `.gitlab-ci.yml` file is set up to
|
||||
set that environment variable when the repository is tested in GitLab CI.
|
||||
|
||||
This means that if you run `cargo test`, no test code is normally
|
||||
generated from this document. To run the tests locally, outside of
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#!/bin/bash
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Run "cargo test" inside a Docker container with virtual cards
|
||||
# installed and running. This will allow at least rudimentary testing
|
||||
|
|
Loading…
Reference in a new issue