Skip to content

Commit

Permalink
test: reformat test workflow to use a matrix
Browse files Browse the repository at this point in the history
  • Loading branch information
Richard Pospesel committed May 25, 2024
1 parent 4f51386 commit abfca9e
Show file tree
Hide file tree
Showing 4 changed files with 106 additions and 24 deletions.
60 changes: 45 additions & 15 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,21 @@ jobs:
matrix:
test:
- honk_rpc_cargo_test
- tor_interface_cargo_test
- ^gosling_cargo_test
- cgosling_cargo_test
- tor_interface_arti_client_bootstrap_cargo_test
- tor_interface_arti_client_onion_service_cargo_test
- tor_interface_crypto_cargo_test
- tor_interface_legacy_authenticated_onion_service_cargo_test
- tor_interface_legacy_bootstrap_cargo_test
- tor_interface_legacy_onion_service_cargo_test
- tor_interface_mixed_arti_client_legacy_bootstrap_cargo_test
- tor_interface_mixed_legacy_arti_client_bootstrap_cargo_test
- tor_interface_mock_authenticated_onion_service_cargo_test
- tor_interface_mock_bootstrap_cargo_test
- tor_interface_mock_onion_service_cargo_test
- gosling_cargo_test
- gosling_functional_test
- gosling_unit_test
- cgosling_cargo_test
runs-on: ubuntu-latest
steps:
- name: Checkout Gosling
Expand All @@ -23,22 +33,32 @@ jobs:
run: |
sudo apt-get update
sudo apt-get install -y libboost-all-dev tor libsqlite3-dev
- name: Test Release
- name: Test
run: |
mkdir build
cmake -G "Unix Makefiles" -S . -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTS=ON -DENABLE_ARTI_CLIENT_TOR_PROVIDER=ON
cd build
ctest --verbose -R ${{matrix.test}}
ctest --verbose -R ^${{matrix.test}}
windows:
strategy:
matrix:
test:
- honk_rpc_cargo_test
- tor_interface_cargo_test
- ^gosling_cargo_test
- cgosling_cargo_test
- tor_interface_arti_client_bootstrap_cargo_test
- tor_interface_arti_client_onion_service_cargo_test
- tor_interface_crypto_cargo_test
- tor_interface_legacy_authenticated_onion_service_cargo_test
- tor_interface_legacy_bootstrap_cargo_test
- tor_interface_legacy_onion_service_cargo_test
- tor_interface_mixed_arti_client_legacy_bootstrap_cargo_test
- tor_interface_mixed_legacy_arti_client_bootstrap_cargo_test
- tor_interface_mock_authenticated_onion_service_cargo_test
- tor_interface_mock_bootstrap_cargo_test
- tor_interface_mock_onion_service_cargo_test
- gosling_cargo_test
- gosling_functional_test
- gosling_unit_test
- cgosling_cargo_test
runs-on: windows-latest
defaults:
run:
Expand All @@ -61,24 +81,34 @@ jobs:
mingw-w64-clang-x86_64-boost
mingw-w64-clang-x86_64-tor
mingw-w64-clang-x86_64-sqlite3
- name: Test Release
- name: Test
env:
CC: clang
run: |
mkdir build
cmake -G "Unix Makefiles" -S . -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTS=ON -DENABLE_ARTI_CLIENT_TOR_PROVIDER=ON
cd build
ctest --verbose -R ${{matrix.test}}
ctest --verbose -R ^${{matrix.test}}
macos:
strategy:
matrix:
test:
- honk_rpc_cargo_test
- tor_interface_cargo_test
- ^gosling_cargo_test
- cgosling_cargo_test
- tor_interface_arti_client_bootstrap_cargo_test
- tor_interface_arti_client_onion_service_cargo_test
- tor_interface_crypto_cargo_test
- tor_interface_legacy_authenticated_onion_service_cargo_test
- tor_interface_legacy_bootstrap_cargo_test
- tor_interface_legacy_onion_service_cargo_test
- tor_interface_mixed_arti_client_legacy_bootstrap_cargo_test
- tor_interface_mixed_legacy_arti_client_bootstrap_cargo_test
- tor_interface_mock_authenticated_onion_service_cargo_test
- tor_interface_mock_bootstrap_cargo_test
- tor_interface_mock_onion_service_cargo_test
- gosling_cargo_test
- gosling_functional_test
- gosling_unit_test
- cgosling_cargo_test
runs-on: macos-latest
steps:
- name: Checkout Gosling
Expand All @@ -88,9 +118,9 @@ jobs:
- name: Install Dependencies
run: |
brew install boost tor sqlite3
- name: Test Release
- name: Test
run: |
mkdir build
cmake -G "Unix Makefiles" -S . -B build -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTS=ON -DENABLE_ARTI_CLIENT_TOR_PROVIDER=ON
cd build
ctest --verbose -R ${{matrix.test}}
ctest --verbose -R ^${{matrix.test}}
56 changes: 54 additions & 2 deletions source/gosling/crates/tor-interface/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,60 @@ add_custom_target(tor_interface_target
# cargo test target
#
if (ENABLE_TESTS)
add_test(NAME tor_interface_cargo_test
COMMAND env CARGO_TARGET_DIR=${CARGO_TARGET_DIR} RUSTFLAGS=${RUSTFLAGS} RUST_BACKTRACE=full cargo test ${CARGO_FLAGS} ${TOR_INTERFACE_FEATURES} -- --nocapture
if (ENABLE_MOCK_TOR_PROVIDER)
add_test(NAME tor_interface_mock_bootstrap_cargo_test
COMMAND env CARGO_TARGET_DIR=${CARGO_TARGET_DIR} RUSTFLAGS=${RUSTFLAGS} RUST_BACKTRACE=full cargo test test_mock_bootstrap ${CARGO_FLAGS} ${TOR_INTERFACE_FEATURES} -- --nocapture
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
add_test(NAME tor_interface_mock_onion_service_cargo_test
COMMAND env CARGO_TARGET_DIR=${CARGO_TARGET_DIR} RUSTFLAGS=${RUSTFLAGS} RUST_BACKTRACE=full cargo test test_mock_onion_service ${CARGO_FLAGS} ${TOR_INTERFACE_FEATURES} -- --nocapture
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
add_test(NAME tor_interface_mock_authenticated_onion_service_cargo_test
COMMAND env CARGO_TARGET_DIR=${CARGO_TARGET_DIR} RUSTFLAGS=${RUSTFLAGS} RUST_BACKTRACE=full cargo test test_mock_authenticated_onion_service ${CARGO_FLAGS} ${TOR_INTERFACE_FEATURES} -- --nocapture
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
endif()

if (ENABLE_LEGACY_TOR_PROVIDER)
add_test(NAME tor_interface_legacy_bootstrap_cargo_test
COMMAND env CARGO_TARGET_DIR=${CARGO_TARGET_DIR} RUSTFLAGS=${RUSTFLAGS} RUST_BACKTRACE=full cargo test test_legacy_bootstrap ${CARGO_FLAGS} ${TOR_INTERFACE_FEATURES} -- --nocapture
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
add_test(NAME tor_interface_legacy_onion_service_cargo_test
COMMAND env CARGO_TARGET_DIR=${CARGO_TARGET_DIR} RUSTFLAGS=${RUSTFLAGS} RUST_BACKTRACE=full cargo test test_legacy_onion_service ${CARGO_FLAGS} ${TOR_INTERFACE_FEATURES} -- --nocapture
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
add_test(NAME tor_interface_legacy_authenticated_onion_service_cargo_test
COMMAND env CARGO_TARGET_DIR=${CARGO_TARGET_DIR} RUSTFLAGS=${RUSTFLAGS} RUST_BACKTRACE=full cargo test test_legacy_authenticated_onion_service ${CARGO_FLAGS} ${TOR_INTERFACE_FEATURES} -- --nocapture
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
endif()

if (ENABLE_ARTI_CLIENT_TOR_PROVIDER)
add_test(NAME tor_interface_arti_client_bootstrap_cargo_test
COMMAND env CARGO_TARGET_DIR=${CARGO_TARGET_DIR} RUSTFLAGS=${RUSTFLAGS} RUST_BACKTRACE=full cargo test test_arti_client_bootstrap ${CARGO_FLAGS} ${TOR_INTERFACE_FEATURES} -- --nocapture
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
add_test(NAME tor_interface_arti_client_onion_service_cargo_test
COMMAND env CARGO_TARGET_DIR=${CARGO_TARGET_DIR} RUSTFLAGS=${RUSTFLAGS} RUST_BACKTRACE=full cargo test test_arti_client_onion_service ${CARGO_FLAGS} ${TOR_INTERFACE_FEATURES} -- --nocapture
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
endif()

if (ENABLE_LEGACY_TOR_PROVIDER AND ENABLE_ARTI_CLIENT_TOR_PROVIDER)
add_test(NAME tor_interface_mixed_arti_client_legacy_bootstrap_cargo_test
COMMAND env CARGO_TARGET_DIR=${CARGO_TARGET_DIR} RUSTFLAGS=${RUSTFLAGS} RUST_BACKTRACE=full cargo test test_mixed_arti_client_legacy_onion_service ${CARGO_FLAGS} ${TOR_INTERFACE_FEATURES} -- --nocapture
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
add_test(NAME tor_interface_mixed_legacy_arti_client_bootstrap_cargo_test
COMMAND env CARGO_TARGET_DIR=${CARGO_TARGET_DIR} RUSTFLAGS=${RUSTFLAGS} RUST_BACKTRACE=full cargo test test_mixed_legacy_arti_client_onion_service ${CARGO_FLAGS} ${TOR_INTERFACE_FEATURES} -- --nocapture
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
endif()

add_test(NAME tor_interface_crypto_cargo_test
COMMAND env CARGO_TARGET_DIR=${CARGO_TARGET_DIR} RUSTFLAGS=${RUSTFLAGS} RUST_BACKTRACE=full cargo test test_crypto_ ${CARGO_FLAGS} ${TOR_INTERFACE_FEATURES} -- --nocapture
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
endif()
Expand Down
4 changes: 2 additions & 2 deletions source/gosling/crates/tor-interface/tests/tor_crypto.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
use tor_interface::tor_crypto::*;

#[test]
fn test_ed25519() -> Result<(), anyhow::Error> {
fn test_crypto_ed25519() -> Result<(), anyhow::Error> {
let private_key_blob = "ED25519-V3:rP3u8mZaKohap0lKsB8Z8qXbXqK456JKKGONDBhV+gPBVKa2mHVQqnRTVuFXe3inU3YW6qvc7glYEwe9rK0LhQ==";
let private_raw: [u8; ED25519_PRIVATE_KEY_SIZE] = [
0xacu8, 0xfdu8, 0xeeu8, 0xf2u8, 0x66u8, 0x5au8, 0x2au8, 0x88u8, 0x5au8, 0xa7u8, 0x49u8,
Expand Down Expand Up @@ -92,7 +92,7 @@ fn test_ed25519() -> Result<(), anyhow::Error> {
}

#[test]
fn test_x25519() -> Result<(), anyhow::Error> {
fn test_crypto_x25519() -> Result<(), anyhow::Error> {
// private/public key pair
const SECRET_BASE64: &str = "0GeSReJXdNcgvWRQdnDXhJGdu5UiwP2fefgT93/oqn0=";
const SECRET_RAW: [u8; X25519_PRIVATE_KEY_SIZE] = [
Expand Down
10 changes: 5 additions & 5 deletions source/gosling/crates/tor-interface/tests/tor_provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ fn test_mock_bootstrap() -> anyhow::Result<()> {

#[test]
#[cfg(feature = "mock-tor-provider")]
fn test_mock_basic_onion_service() -> anyhow::Result<()> {
fn test_mock_onion_service() -> anyhow::Result<()> {
let server_provider = Box::new(MockTorClient::new());
let client_provider = Box::new(MockTorClient::new());
basic_onion_service_test(server_provider, client_provider)
Expand Down Expand Up @@ -365,7 +365,7 @@ fn test_legacy_onion_service() -> anyhow::Result<()> {
#[test]
#[serial]
#[cfg(feature = "legacy-tor-provider")]
fn test_legacy_client_auth_onion_service() -> anyhow::Result<()> {
fn test_legacy_authenticated_onion_service() -> anyhow::Result<()> {
let tor_path = which::which(format!("tor{}", std::env::consts::EXE_SUFFIX))?;

let mut data_path = std::env::temp_dir();
Expand Down Expand Up @@ -398,7 +398,7 @@ fn test_arti_client_bootstrap() -> anyhow::Result<()> {

#[test]
#[cfg(feature = "arti-client-tor-provider")]
fn test_arti_client_basic_onion_service() -> anyhow::Result<()> {
fn test_arti_client_onion_service() -> anyhow::Result<()> {
let runtime: Arc<runtime::Runtime> = Arc::new(runtime::Runtime::new().unwrap());
let mut data_path = std::env::temp_dir();
data_path.push("test_arti_basic_onion_service_server");
Expand Down Expand Up @@ -438,7 +438,7 @@ fn test_arti_authenticated_onion_service() -> anyhow::Result<()> {
#[test]
#[serial]
#[cfg(all(feature = "arti-client-tor-provider", feature = "legacy-tor-provider"))]
fn test_arti_legacy_basic_onion_service() -> anyhow::Result<()> {
fn test_mixed_arti_client_legacy_onion_service() -> anyhow::Result<()> {
let runtime: Arc<runtime::Runtime> = Arc::new(runtime::Runtime::new().unwrap());

let mut data_path = std::env::temp_dir();
Expand All @@ -456,7 +456,7 @@ fn test_arti_legacy_basic_onion_service() -> anyhow::Result<()> {
#[test]
#[serial]
#[cfg(all(feature = "arti-client-tor-provider", feature = "legacy-tor-provider"))]
fn test_legacy_arti_basic_onion_service() -> anyhow::Result<()> {
fn test_mixed_legacy_arti_client_onion_service() -> anyhow::Result<()> {

let tor_path = which::which(format!("tor{}", std::env::consts::EXE_SUFFIX))?;
let mut data_path = std::env::temp_dir();
Expand Down

0 comments on commit abfca9e

Please sign in to comment.