mirror of https://github.com/ctz/rustls
Move to using cargo workspaces
- rustls (the library) now lives in rustls/ - the mio examples/tests continue to live in rustls-mio, but are built by (eg) `cargo test` in the root of the repo.
This commit is contained in:
parent
b8eca0ec4c
commit
1d70e45af6
|
@ -36,6 +36,5 @@ script:
|
||||||
- ( cd bogo && ./runme )
|
- ( cd bogo && ./runme )
|
||||||
- cargo build --no-default-features
|
- cargo build --no-default-features
|
||||||
- cargo test --no-default-features --no-run
|
- cargo test --no-default-features --no-run
|
||||||
- ( cd rustls-mio && cargo test --all-features )
|
|
||||||
- if [[ "$COVERAGE" == "1" ]]; then ./admin/coverage ; fi
|
- if [[ "$COVERAGE" == "1" ]]; then ./admin/coverage ; fi
|
||||||
- if [[ "$COVERAGE" == "1" ]]; then coveralls-lcov final.info ; fi
|
- if [[ "$COVERAGE" == "1" ]]; then coveralls-lcov final.info ; fi
|
||||||
|
|
56
Cargo.toml
56
Cargo.toml
|
@ -1,49 +1,7 @@
|
||||||
[package]
|
[workspace]
|
||||||
name = "rustls"
|
members = [
|
||||||
version = "0.16.0"
|
# the main library and tests
|
||||||
edition = "2018"
|
"rustls",
|
||||||
authors = ["Joseph Birr-Pixton <jpixton@gmail.com>"]
|
# tests and example code that depend on mio
|
||||||
license = "Apache-2.0/ISC/MIT"
|
"rustls-mio",
|
||||||
readme = "README.md"
|
]
|
||||||
description = "Rustls is a modern TLS library written in Rust."
|
|
||||||
homepage = "https://github.com/ctz/rustls"
|
|
||||||
repository = "https://github.com/ctz/rustls"
|
|
||||||
categories = ["network-programming", "cryptography"]
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
base64 = "0.10"
|
|
||||||
log = { version = "0.4.4", optional = true }
|
|
||||||
ring = "0.16.5"
|
|
||||||
sct = "0.6.0"
|
|
||||||
webpki = "0.21.0"
|
|
||||||
|
|
||||||
[features]
|
|
||||||
default = ["logging"]
|
|
||||||
logging = ["log"]
|
|
||||||
dangerous_configuration = []
|
|
||||||
quic = []
|
|
||||||
|
|
||||||
[dev-dependencies]
|
|
||||||
env_logger = "0.6.1"
|
|
||||||
log = "0.4.4"
|
|
||||||
tempfile = "3.0"
|
|
||||||
webpki-roots = "0.17.0"
|
|
||||||
criterion = "0.2.11"
|
|
||||||
|
|
||||||
[[example]]
|
|
||||||
name = "bogo_shim"
|
|
||||||
path = "examples/internal/bogo_shim.rs"
|
|
||||||
required-features = ["dangerous_configuration", "quic"]
|
|
||||||
|
|
||||||
[[example]]
|
|
||||||
name = "trytls_shim"
|
|
||||||
path = "examples/internal/trytls_shim.rs"
|
|
||||||
|
|
||||||
[[example]]
|
|
||||||
name = "bench"
|
|
||||||
path = "examples/internal/bench.rs"
|
|
||||||
|
|
||||||
[[bench]]
|
|
||||||
name = "benchmarks"
|
|
||||||
path = "tests/benchmarks.rs"
|
|
||||||
harness = false
|
|
||||||
|
|
|
@ -53,7 +53,7 @@ def remove(outfile, infile, pattern):
|
||||||
subprocess.check_call(lcov_exe('--remove', infile, os.getcwd() + pattern, '-o', outfile))
|
subprocess.check_call(lcov_exe('--remove', infile, os.getcwd() + pattern, '-o', outfile))
|
||||||
|
|
||||||
def extract(outfile, infile):
|
def extract(outfile, infile):
|
||||||
subprocess.check_call(lcov_exe('--extract', infile, os.getcwd() + '/src/*', '-o', outfile))
|
subprocess.check_call(lcov_exe('--extract', infile, os.getcwd() + '/rustls/src/*', '-o', outfile))
|
||||||
|
|
||||||
def genhtml(outdir, infile):
|
def genhtml(outdir, infile):
|
||||||
subprocess.check_call(['genhtml', '--branch-coverage', '--demangle-cpp', '--legend',
|
subprocess.check_call(['genhtml', '--branch-coverage', '--demangle-cpp', '--legend',
|
||||||
|
@ -63,17 +63,17 @@ all_infos = []
|
||||||
|
|
||||||
# unit tests
|
# unit tests
|
||||||
cleanup()
|
cleanup()
|
||||||
rustc('--profile', 'test', '--lib')
|
rustc('--package', 'rustls', '--profile', 'test', '--lib')
|
||||||
run('rustls')
|
run('rustls')
|
||||||
all_infos.append(lcov('rustls.info'))
|
all_infos.append(lcov('rustls.info'))
|
||||||
|
|
||||||
cleanup()
|
cleanup()
|
||||||
for example in 'bench bogo_shim trytls_shim'.split():
|
for example in 'bench bogo_shim trytls_shim'.split():
|
||||||
rustc('--profile', 'dev', '--example', example)
|
rustc('--package', 'rustls', '--profile', 'dev', '--example', example)
|
||||||
|
|
||||||
# tests
|
# crate-level tests
|
||||||
for test in 'api'.split():
|
for test in 'api'.split():
|
||||||
rustc('--profile', 'dev', '--test', test)
|
rustc('--package', 'rustls', '--profile', 'dev', '--test', test)
|
||||||
run(test)
|
run(test)
|
||||||
|
|
||||||
# trytls/bogo
|
# trytls/bogo
|
||||||
|
@ -82,6 +82,6 @@ sh('cd bogo && ./runme')
|
||||||
all_infos.append(lcov('tests.info'))
|
all_infos.append(lcov('tests.info'))
|
||||||
|
|
||||||
merge('merged.info', all_infos)
|
merge('merged.info', all_infos)
|
||||||
remove('coverage.info', 'merged.info', '/src/msgs/macros.rs')
|
remove('coverage.info', 'merged.info', '/rustls/src/msgs/macros.rs')
|
||||||
extract('final.info', 'coverage.info')
|
extract('final.info', 'coverage.info')
|
||||||
genhtml('target/coverage/', 'final.info')
|
genhtml('target/coverage/', 'final.info')
|
||||||
|
|
|
@ -13,6 +13,3 @@ steps:
|
||||||
displayName: "cargo test (debug; no default features; no run)"
|
displayName: "cargo test (debug; no default features; no run)"
|
||||||
- script: cargo test --release --no-run
|
- script: cargo test --release --no-run
|
||||||
displayName: "cargo test (release; no run)"
|
displayName: "cargo test (release; no run)"
|
||||||
- script: cargo test --all-features
|
|
||||||
displayName: "rustls-mio cargo test (debug; all features)"
|
|
||||||
workingDirectory: rustls-mio
|
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
steps:
|
steps:
|
||||||
- script: cargo -Z minimal-versions test --all-features
|
- script: cargo -Z minimal-versions test --all-features
|
||||||
displayName: "rustls cargo test (debug; all features)"
|
displayName: "rustls cargo test (debug; all features)"
|
||||||
- script: cargo -Z minimal-versions test --all-features
|
|
||||||
displayName: "rustls-mio cargo test (debug; all features)"
|
|
||||||
workingDirectory: rustls-mio
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ quic = ["rustls/quic"]
|
||||||
[dependencies]
|
[dependencies]
|
||||||
base64 = "0.10"
|
base64 = "0.10"
|
||||||
log = { version = "0.4.4", optional = true }
|
log = { version = "0.4.4", optional = true }
|
||||||
rustls = { path = ".." }
|
rustls = { path = "../rustls" }
|
||||||
sct = "0.6"
|
sct = "0.6"
|
||||||
webpki = "0.21.0"
|
webpki = "0.21.0"
|
||||||
|
|
||||||
|
|
|
@ -131,11 +131,11 @@ pub fn skipped(why: &str) {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn tlsserver_find() -> &'static str {
|
pub fn tlsserver_find() -> &'static str {
|
||||||
"target/debug/examples/tlsserver"
|
"../target/debug/examples/tlsserver"
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn tlsclient_find() -> &'static str {
|
pub fn tlsclient_find() -> &'static str {
|
||||||
"target/debug/examples/tlsclient"
|
"../target/debug/examples/tlsclient"
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn openssl_find() -> String {
|
pub fn openssl_find() -> String {
|
||||||
|
|
|
@ -235,7 +235,7 @@ fn client_resumes() {
|
||||||
.go();
|
.go();
|
||||||
}
|
}
|
||||||
|
|
||||||
let cache_filename = "target/debug/session.cache";
|
let cache_filename = "../target/debug/session.cache";
|
||||||
let _ = fs::remove_file(cache_filename);
|
let _ = fs::remove_file(cache_filename);
|
||||||
|
|
||||||
server.client()
|
server.client()
|
||||||
|
@ -265,8 +265,8 @@ fn server_resumes() {
|
||||||
.http_mode()
|
.http_mode()
|
||||||
.run();
|
.run();
|
||||||
|
|
||||||
let sess1 = "target/debug/session1.ssl";
|
let sess1 = "../target/debug/session1.ssl";
|
||||||
let sess2 = "target/debug/session2.ssl";
|
let sess2 = "../target/debug/session2.ssl";
|
||||||
|
|
||||||
server.client()
|
server.client()
|
||||||
.arg("-sess_out")
|
.arg("-sess_out")
|
||||||
|
@ -310,7 +310,7 @@ fn server_resumes_with_tickets() {
|
||||||
.http_mode()
|
.http_mode()
|
||||||
.run();
|
.run();
|
||||||
|
|
||||||
let sess = "target/debug/ticket.ssl";
|
let sess = "../target/debug/ticket.ssl";
|
||||||
|
|
||||||
server.client()
|
server.client()
|
||||||
.arg("-sess_out")
|
.arg("-sess_out")
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
[package]
|
||||||
|
name = "rustls"
|
||||||
|
version = "0.16.0"
|
||||||
|
edition = "2018"
|
||||||
|
authors = ["Joseph Birr-Pixton <jpixton@gmail.com>"]
|
||||||
|
license = "Apache-2.0/ISC/MIT"
|
||||||
|
readme = "README.md"
|
||||||
|
description = "Rustls is a modern TLS library written in Rust."
|
||||||
|
homepage = "https://github.com/ctz/rustls"
|
||||||
|
repository = "https://github.com/ctz/rustls"
|
||||||
|
categories = ["network-programming", "cryptography"]
|
||||||
|
autobenches = false
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
base64 = "0.10"
|
||||||
|
log = { version = "0.4.4", optional = true }
|
||||||
|
ring = "0.16.5"
|
||||||
|
sct = "0.6.0"
|
||||||
|
webpki = "0.21.0"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
default = ["logging"]
|
||||||
|
logging = ["log"]
|
||||||
|
dangerous_configuration = []
|
||||||
|
quic = []
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
env_logger = "0.6.1"
|
||||||
|
log = "0.4.4"
|
||||||
|
tempfile = "3.0"
|
||||||
|
webpki-roots = "0.17.0"
|
||||||
|
criterion = "0.2.11"
|
||||||
|
|
||||||
|
[[example]]
|
||||||
|
name = "bogo_shim"
|
||||||
|
path = "examples/internal/bogo_shim.rs"
|
||||||
|
required-features = ["dangerous_configuration", "quic"]
|
||||||
|
|
||||||
|
[[example]]
|
||||||
|
name = "trytls_shim"
|
||||||
|
path = "examples/internal/trytls_shim.rs"
|
||||||
|
|
||||||
|
[[example]]
|
||||||
|
name = "bench"
|
||||||
|
path = "examples/internal/bench.rs"
|
||||||
|
|
||||||
|
[[bench]]
|
||||||
|
name = "benchmarks"
|
||||||
|
path = "tests/benchmarks.rs"
|
||||||
|
harness = false
|
|
@ -4,11 +4,22 @@ use super::message::Message;
|
||||||
|
|
||||||
use std::fs;
|
use std::fs;
|
||||||
use std::io::Read;
|
use std::io::Read;
|
||||||
|
use std::path::{Path, PathBuf};
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_read_fuzz_corpus() {
|
fn test_read_fuzz_corpus() {
|
||||||
let prefix = "fuzz/corpus/message/";
|
fn corpus_dir() -> PathBuf {
|
||||||
for file in fs::read_dir(prefix).unwrap() {
|
let from_subcrate = Path::new("../fuzz/corpus/message");
|
||||||
|
let from_root = Path::new("fuzz/corpus/message");
|
||||||
|
|
||||||
|
if from_root.is_dir() {
|
||||||
|
from_root.to_path_buf()
|
||||||
|
} else {
|
||||||
|
from_subcrate.to_path_buf()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for file in fs::read_dir(corpus_dir()).unwrap() {
|
||||||
let mut f = fs::File::open(file.unwrap().path()).unwrap();
|
let mut f = fs::File::open(file.unwrap().path()).unwrap();
|
||||||
let mut bytes = Vec::new();
|
let mut bytes = Vec::new();
|
||||||
f.read_to_end(&mut bytes).unwrap();
|
f.read_to_end(&mut bytes).unwrap();
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue