From d92ffadf1122d2b2b5486ab15787b290a532ad40 Mon Sep 17 00:00:00 2001 From: Thomas Avery Date: Tue, 13 Aug 2024 17:10:52 -0500 Subject: [PATCH] add test crate --- .../build-test-rustls-platform-verifier.yml | 34 +++++++++++++++++++ Cargo.lock | 10 ++++++ Cargo.toml | 2 +- test-rustls-platform-verifier/Cargo.toml | 22 ++++++++++++ test-rustls-platform-verifier/src/main.rs | 19 +++++++++++ 5 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/build-test-rustls-platform-verifier.yml create mode 100644 test-rustls-platform-verifier/Cargo.toml create mode 100644 test-rustls-platform-verifier/src/main.rs diff --git a/.github/workflows/build-test-rustls-platform-verifier.yml b/.github/workflows/build-test-rustls-platform-verifier.yml new file mode 100644 index 000000000..ec7a03ca3 --- /dev/null +++ b/.github/workflows/build-test-rustls-platform-verifier.yml @@ -0,0 +1,34 @@ +--- +name: Build test rustls platform verifier + +on: + push: + branches: + - main + - rc + - hotfix-rc + pull_request: + workflow_dispatch: + +defaults: + run: + shell: bash + + + +jobs: + build-windows: + name: Build Windows + runs-on: windows-2022 + steps: + - name: Checkout repo + uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + + - name: Build + run: cargo build -p test-rustls-platform-verifier --release --target=x86_64-pc-windows-msvc + + - name: Upload artifact + uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 + with: + name: test-rustls-platform-verifier + path: ./target/x86_64-pc-windows-msvc/release/test-rustls-platform-verifier.exe diff --git a/Cargo.lock b/Cargo.lock index e9ed72fee..4a8233427 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3893,6 +3893,16 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "test-rustls-platform-verifier" +version = "0.5.0" +dependencies = [ + "env_logger", + "reqwest", + "rustls-platform-verifier", + "tokio", +] + [[package]] name = "textwrap" version = "0.16.1" diff --git a/Cargo.toml b/Cargo.toml index e721d9090..87255eeea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [workspace] resolver = "2" -members = ["crates/*"] +members = ["crates/*", "test-rustls-platform-verifier"] # Global settings for all crates should be defined here [workspace.package] diff --git a/test-rustls-platform-verifier/Cargo.toml b/test-rustls-platform-verifier/Cargo.toml new file mode 100644 index 000000000..daea8117d --- /dev/null +++ b/test-rustls-platform-verifier/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "test-rustls-platform-verifier" +version.workspace = true +authors.workspace = true +edition.workspace = true +rust-version.workspace = true +homepage.workspace = true +repository.workspace = true +license-file.workspace = true +keywords.workspace = true + + +[lints] +workspace = true + +[dependencies] +reqwest = { version = "0.12.5", features = [ + "rustls-tls-manual-roots", +], default-features = false } +rustls-platform-verifier = "0.3.3" +tokio = { version = "1.39.2", features = ["rt-multi-thread", "macros"] } +env_logger = "0.11.5" diff --git a/test-rustls-platform-verifier/src/main.rs b/test-rustls-platform-verifier/src/main.rs new file mode 100644 index 000000000..95664f6e2 --- /dev/null +++ b/test-rustls-platform-verifier/src/main.rs @@ -0,0 +1,19 @@ +#[tokio::main] +async fn main() -> Result<(), Box> { + env_logger::init(); + + let client = reqwest::Client::builder() + .use_preconfigured_tls(rustls_platform_verifier::tls_config()) + .build() + .expect("Build should not fail"); + let request = client.get("https://httpbin.org/ip").build()?; + let response = client.execute(request).await?; + + let status_code = response.status(); + let content = response.text().await?; + + println!("status_code = {status_code:?}"); + println!("content = {content:?}"); + + Ok(()) +}