Skip to content

Commit 6ff021c

Browse files
committed
add simple test for building docs for a crate
1 parent 918ee5d commit 6ff021c

File tree

2 files changed

+27
-5
lines changed

2 files changed

+27
-5
lines changed

src/docbuilder/rustwide_builder.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -753,3 +753,19 @@ pub(crate) struct BuildResult {
753753
pub(crate) docsrs_version: String,
754754
pub(crate) successful: bool,
755755
}
756+
757+
#[cfg(test)]
758+
mod tests {
759+
use super::*;
760+
use crate::test::wrapper;
761+
762+
#[test]
763+
fn test_build_crate() {
764+
wrapper(|env| {
765+
let mut builder = RustwideBuilder::init(env).unwrap();
766+
builder
767+
.build_package("log", "0.4.14", PackageKind::CratesIo)
768+
.map(|_| ())
769+
})
770+
}
771+
}

src/test/mod.rs

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ use reqwest::{
1313
blocking::{Client, RequestBuilder},
1414
Method,
1515
};
16+
use std::fs;
1617
use std::{panic, sync::Arc};
1718

1819
pub(crate) fn wrapper(f: impl FnOnce(&TestEnvironment) -> Result<(), Error>) {
@@ -103,10 +104,12 @@ pub(crate) struct TestEnvironment {
103104
}
104105

105106
pub(crate) fn init_logger() {
106-
// If this fails it's probably already initialized
107-
let _ = env_logger::from_env(env_logger::Env::default().filter("DOCSRS_LOG"))
108-
.is_test(true)
109-
.try_init();
107+
// initializing rustwide logging also sets the global logger
108+
rustwide::logging::init_with(
109+
env_logger::from_env(env_logger::Env::default().filter("DOCSRS_LOG"))
110+
.is_test(true)
111+
.build(),
112+
);
110113
}
111114

112115
impl TestEnvironment {
@@ -137,8 +140,11 @@ impl TestEnvironment {
137140
fn base_config(&self) -> Config {
138141
let mut config = Config::from_env().expect("failed to get base config");
139142

143+
// create index directory
144+
fs::create_dir_all(config.registry_index_path.clone()).unwrap();
145+
140146
// Use less connections for each test compared to production.
141-
config.max_pool_size = 2;
147+
config.max_pool_size = 4;
142148
config.min_pool_idle = 0;
143149

144150
// Use the database for storage, as it's faster than S3.

0 commit comments

Comments
 (0)