@@ -19,7 +19,7 @@ use rustwide::cmd::{Command, SandboxBuilder, SandboxImage};
19
19
use rustwide:: logging:: { self , LogStorage } ;
20
20
use rustwide:: toolchain:: ToolchainError ;
21
21
use rustwide:: { Build , Crate , Toolchain , Workspace , WorkspaceBuilder } ;
22
- use serde_json:: Value ;
22
+ use serde_json:: { json , Value } ;
23
23
use std:: collections:: { HashMap , HashSet } ;
24
24
use std:: path:: Path ;
25
25
use std:: sync:: Arc ;
@@ -760,12 +760,75 @@ mod tests {
760
760
use crate :: test:: wrapper;
761
761
762
762
#[ test]
763
+ #[ ignore]
763
764
fn test_build_crate ( ) {
764
765
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
+
765
779
let mut builder = RustwideBuilder :: init ( env) . unwrap ( ) ;
766
780
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 ( ( ) )
769
832
} )
770
833
}
771
834
}
0 commit comments