1use std::env;
2use std::fs;
3
4const TESTS_TEMPLATE: &str = "\
5use tls_api::TlsAcceptor;
6use tls_api::TlsConnector;
7
8#[test]
9fn version() {
10 tls_api_test::test_version::<CRATE::TlsConnector, CRATE::TlsAcceptor>();
11}
12
13#[test]
14fn google() {
15 tls_api_test::test_google::<CRATE::TlsConnector>();
16}
17
18#[test]
19fn connect_bad_hostname() {
20 tls_api_test::connect_bad_hostname::<CRATE::TlsConnector, _>(drop);
21}
22
23#[test]
24fn connect_bad_hostname_ignored() {
25 tls_api_test::connect_bad_hostname_ignored::<CRATE::TlsConnector>();
26}
27
28#[test]
29fn client_server_der() {
30 tls_api_test::test_client_server_der::<
31 CRATE::TlsConnector,
32 CRATE::TlsAcceptor,
33 >();
34}
35
36#[test]
37fn client_server_dyn_der() {
38 tls_api_test::test_client_server_dyn_der(
39 CRATE::TlsConnector::TYPE_DYN,
40 CRATE::TlsAcceptor::TYPE_DYN,
41 );
42}
43
44#[test]
45fn client_server_pkcs12() {
46 tls_api_test::test_client_server_pkcs12::<
47 CRATE::TlsConnector,
48 CRATE::TlsAcceptor,
49 >();
50}
51
52#[test]
53fn alpn() {
54 tls_api_test::test_alpn::<CRATE::TlsConnector, CRATE::TlsAcceptor>()
55}
56";
57
58const BENCHES_TEMPLATE: &str = "\
59extern crate test;
60
61use tls_api::TlsAcceptor;
62use tls_api::TlsConnector;
63
64#[bench]
65fn bench_1(b: &mut test::Bencher) {
66 tls_api_test::benches::bench_1::<CRATE::TlsConnector, CRATE::TlsAcceptor>(b)
67}
68
69#[bench]
70fn bench_1_dyn(b: &mut test::Bencher) {
71 tls_api_test::benches::bench_1_dyn(
72 CRATE::TlsConnector::TYPE_DYN,
73 CRATE::TlsAcceptor::TYPE_DYN,
74 b,
75 )
76}
77";
78
79pub fn gen_tests_and_benches() {
81 let crate_name = env::var("CARGO_PKG_NAME").unwrap().replace("-", "_");
82
83 let out_dir = env::var("OUT_DIR").unwrap();
84
85 let g = TESTS_TEMPLATE.replace("CRATE", &crate_name);
86 let g = format!("// {}generated\n\n{}", "@", g);
87
88 fs::write(format!("{}/tests_generated.rs", out_dir), g).unwrap();
89
90 let g = BENCHES_TEMPLATE.replace("CRATE", &crate_name);
91 let g = format!("// {}generated\n\n{}", "@", g);
92
93 fs::write(format!("{}/benches_generated.rs", out_dir), g).unwrap();
94
95 crate::gen_rustc_nightly();
96}