Skip to content

Commit af8f1d3

Browse files
committed
assertions for build
1 parent 6ff021c commit af8f1d3

File tree

2 files changed

+69
-3
lines changed

2 files changed

+69
-3
lines changed

.github/workflows/ci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ jobs:
6363
- name: Test
6464
run: cargo test --workspace --locked
6565

66+
- name: Test expensive tests
67+
run: cargo test --workspace --locked -- --ignored
68+
6669
- name: Clean up the database
6770
run: docker-compose down --volumes
6871

src/docbuilder/rustwide_builder.rs

Lines changed: 66 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use rustwide::cmd::{Command, SandboxBuilder, SandboxImage};
1919
use rustwide::logging::{self, LogStorage};
2020
use rustwide::toolchain::ToolchainError;
2121
use rustwide::{Build, Crate, Toolchain, Workspace, WorkspaceBuilder};
22-
use serde_json::Value;
22+
use serde_json::{json, Value};
2323
use std::collections::{HashMap, HashSet};
2424
use std::path::Path;
2525
use std::sync::Arc;
@@ -760,12 +760,75 @@ mod tests {
760760
use crate::test::wrapper;
761761

762762
#[test]
763+
#[ignore]
763764
fn test_build_crate() {
764765
wrapper(|env| {
766+
let crate_ = "log";
767+
let version = "0.4.14";
768+
let default_target = "x86_64-unknown-linux-gnu";
769+
// env.fake_release()
770+
// .name(crate_)
771+
// .version(version)
772+
// .default_target(default_target)
773+
// .add_target("i686-pc-windows-msvc")
774+
// .add_target("i686-unknown-linux-gnu")
775+
// .add_target("x86_64-apple-darwin")
776+
// .add_target("x86_64-pc-windows-msvc")
777+
// .create()?;
778+
765779
let mut builder = RustwideBuilder::init(env).unwrap();
766780
builder
767-
.build_package("log", "0.4.14", PackageKind::CratesIo)
768-
.map(|_| ())
781+
.build_package(crate_, version, PackageKind::CratesIo)
782+
.map(|_| ())?;
783+
784+
// check release record in the db (default and other targets)
785+
let mut conn = env.db().conn();
786+
let rows = conn
787+
.query(
788+
"SELECT
789+
r.rustdoc_status,
790+
r.default_target,
791+
r.doc_targets
792+
FROM
793+
crates as c
794+
INNER JOIN releases AS r ON c.id = r.crate_id
795+
WHERE
796+
c.name = $1 AND
797+
r.version = $2",
798+
&[&crate_, &version],
799+
)
800+
.unwrap();
801+
let row = rows.get(0).unwrap();
802+
803+
assert_eq!(row.get::<_, bool>("rustdoc_status"), true);
804+
assert_eq!(row.get::<_, String>("default_target"), default_target);
805+
assert_eq!(
806+
row.get::<_, Value>("doc_targets"),
807+
json!([
808+
"x86_64-unknown-linux-gnu", // default target is first
809+
"i686-pc-windows-msvc", // rest is alphabetically
810+
"i686-unknown-linux-gnu",
811+
"x86_64-apple-darwin",
812+
"x86_64-pc-windows-msvc",
813+
])
814+
);
815+
816+
let storage = env.storage();
817+
assert!(storage.exists("asdf")?);
818+
819+
let base = format!("rustdoc/{}/{}", crate_, version);
820+
821+
// default target was build
822+
assert!(storage.exists(&format!("{}/index.html", base))?);
823+
824+
// other targets too
825+
for target in DEFAULT_TARGETS {
826+
if target != &default_target {
827+
assert!(storage.exists(&format!("{}/{}/index.html", base, target))?);
828+
}
829+
}
830+
831+
Ok(())
769832
})
770833
}
771834
}

0 commit comments

Comments
 (0)