@@ -13,7 +13,7 @@ fn results_file(dest: &Path) -> PathBuf {
13
13
}
14
14
15
15
#[ derive( Serialize , Deserialize ) ]
16
- struct TestResults {
16
+ pub struct TestResults {
17
17
crates : Vec < CrateResult > ,
18
18
}
19
19
@@ -40,13 +40,16 @@ struct BuildTestResult {
40
40
log : String ,
41
41
}
42
42
43
- fn generate_report ( ex : & ex:: Experiment , dest : & Path ) -> Result < TestResults > {
43
+
44
+ pub fn generate_report ( ex : & ex:: Experiment , dest : Option < & Path > ) -> Result < TestResults > {
44
45
let db = FileDB :: for_experiment ( ex) ;
45
46
assert_eq ! ( ex. toolchains. len( ) , 2 ) ;
46
47
47
- fs:: create_dir_all ( dest) ?;
48
- let json = serde_json:: to_string ( & ex) ?;
49
- file:: write_string ( & dest. join ( "config.json" ) , & json) ?;
48
+ if let Some ( dest) = dest {
49
+ fs:: create_dir_all ( dest) ?;
50
+ let json = serde_json:: to_string ( & ex) ?;
51
+ file:: write_string ( & dest. join ( "config.json" ) , & json) ?;
52
+ }
50
53
51
54
let res = ex:: ex_crates_and_dirs ( ex) ?
52
55
. into_iter ( )
@@ -59,13 +62,15 @@ fn generate_report(ex: &ex::Experiment, dest: &Path) -> Result<TestResults> {
59
62
let res = writer. load_test_result ( ) ?;
60
63
// If there was no test result return an error
61
64
let res = res. ok_or_else ( || Error :: from ( "no result" ) ) ?;
62
- let mut result_log = writer. read_log ( ) ?;
63
65
64
66
let rel_log = writer. result_path_fragement ( ) ;
65
67
66
- // TODO: Seperate out writting log files so that they can
67
- // be served via HTTP directly instead.
68
- write_log_file ( dest, & rel_log, & mut result_log) ?;
68
+ if let Some ( dest) = dest {
69
+ let mut result_log = writer. read_log ( ) ?;
70
+ // TODO: Seperate out writting log files so that they can
71
+ // be served via HTTP directly instead.
72
+ write_log_file ( dest, & rel_log, & mut result_log) ?;
73
+ }
69
74
70
75
Ok ( BuildTestResult {
71
76
res : res,
@@ -93,7 +98,7 @@ fn generate_report(ex: &ex::Experiment, dest: &Path) -> Result<TestResults> {
93
98
pub fn gen ( ex_name : & str , dest : & Path ) -> Result < ( ) > {
94
99
let ex = ex:: Experiment :: load ( ex_name) ?;
95
100
96
- let res = generate_report ( & ex, dest) ?;
101
+ let res = generate_report ( & ex, Some ( dest) ) ?;
97
102
let json = serde_json:: to_string ( & res) ?;
98
103
99
104
info ! ( "writing results to {}" , results_file( dest) . display( ) ) ;
0 commit comments