@@ -53,6 +53,7 @@ use term::color::{Color, RED, YELLOW, GREEN, CYAN};
53
53
use std:: cmp;
54
54
use std:: f64;
55
55
use std:: fmt;
56
+ use std:: fmt:: Show ;
56
57
use std:: from_str:: FromStr ;
57
58
use std:: io:: stdio:: StdWriter ;
58
59
use std:: io:: { File , ChanReader , ChanWriter } ;
@@ -85,22 +86,27 @@ pub enum TestName {
85
86
StaticTestName ( & ' static str ) ,
86
87
DynTestName ( ~str )
87
88
}
88
- impl fmt :: Show for TestName {
89
- fn fmt ( & self , f : & mut fmt :: Formatter ) -> fmt :: Result {
89
+ impl TestName {
90
+ fn as_slice < ' a > ( & ' a self ) -> & ' a str {
90
91
match * self {
91
- StaticTestName ( s) => f . buf . write_str ( s ) ,
92
- DynTestName ( ref s) => f . buf . write_str ( s. as_slice ( ) ) ,
92
+ StaticTestName ( s) => s ,
93
+ DynTestName ( ref s) => s. as_slice ( )
93
94
}
94
95
}
95
96
}
97
+ impl Show for TestName {
98
+ fn fmt ( & self , f : & mut fmt:: Formatter ) -> fmt:: Result {
99
+ self . as_slice ( ) . fmt ( f)
100
+ }
101
+ }
96
102
97
103
#[ deriving( Clone ) ]
98
104
enum NamePadding { PadNone , PadOnLeft , PadOnRight }
99
105
100
106
impl TestDesc {
101
107
fn padded_name ( & self , column_count : uint , align : NamePadding ) -> ~str {
102
108
use std:: num:: Saturating ;
103
- let mut name = StrBuf :: from_str ( self . name . to_str ( ) ) ;
109
+ let mut name = StrBuf :: from_str ( self . name . as_slice ( ) ) ;
104
110
let fill = column_count. saturating_sub ( name. len ( ) ) ;
105
111
let mut pad = StrBuf :: from_owned_str ( " " . repeat ( fill) ) ;
106
112
match align {
@@ -572,7 +578,7 @@ impl<T: Writer> ConsoleTestState<T> {
572
578
TrIgnored => "ignored" . to_owned( ) ,
573
579
TrMetrics ( ref mm) => fmt_metrics( mm) ,
574
580
TrBench ( ref bs) => fmt_bench_samples( bs)
575
- } , test. name. to_str ( ) ) ;
581
+ } , test. name. as_slice ( ) ) ;
576
582
o. write ( s. as_bytes ( ) )
577
583
}
578
584
}
@@ -586,7 +592,7 @@ impl<T: Writer> ConsoleTestState<T> {
586
592
failures. push ( f. name . to_str ( ) ) ;
587
593
if stdout. len ( ) > 0 {
588
594
fail_out. push_str ( format ! ( "---- {} stdout ----\n \t " ,
589
- f. name. to_str ( ) ) ) ;
595
+ f. name. as_slice ( ) ) ) ;
590
596
let output = str:: from_utf8_lossy ( stdout. as_slice ( ) ) ;
591
597
fail_out. push_str ( output. as_slice ( ) . replace ( "\n " , "\n \t " ) ) ;
592
598
fail_out. push_str ( "\n " ) ;
@@ -600,7 +606,7 @@ impl<T: Writer> ConsoleTestState<T> {
600
606
try!( self . write_plain ( "\n failures:\n " ) ) ;
601
607
failures. as_mut_slice ( ) . sort ( ) ;
602
608
for name in failures. iter ( ) {
603
- try!( self . write_plain ( format ! ( " {}\n " , name. to_str ( ) ) ) ) ;
609
+ try!( self . write_plain ( format ! ( " {}\n " , name. as_slice ( ) ) ) ) ;
604
610
}
605
611
Ok ( ( ) )
606
612
}
@@ -735,7 +741,7 @@ pub fn run_tests_console(opts: &TestOpts,
735
741
TrOk => st. passed += 1 ,
736
742
TrIgnored => st. ignored += 1 ,
737
743
TrMetrics ( mm) => {
738
- let tname = test. name . to_str ( ) ;
744
+ let tname = test. name . as_slice ( ) ;
739
745
let MetricMap ( mm) = mm;
740
746
for ( k, v) in mm. iter ( ) {
741
747
st. metrics . insert_metric ( tname + "." + * k,
@@ -744,7 +750,7 @@ pub fn run_tests_console(opts: &TestOpts,
744
750
st. measured += 1
745
751
}
746
752
TrBench ( bs) => {
747
- st. metrics . insert_metric ( test. name . to_str ( ) ,
753
+ st. metrics . insert_metric ( test. name . as_slice ( ) ,
748
754
bs. ns_iter_summ . median ,
749
755
bs. ns_iter_summ . max - bs. ns_iter_summ . min ) ;
750
756
st. measured += 1
@@ -762,12 +768,12 @@ pub fn run_tests_console(opts: &TestOpts,
762
768
fn len_if_padded ( t : & TestDescAndFn ) -> uint {
763
769
match t. testfn . padding ( ) {
764
770
PadNone => 0 u,
765
- PadOnLeft | PadOnRight => t. desc . name . to_str ( ) . len ( ) ,
771
+ PadOnLeft | PadOnRight => t. desc . name . as_slice ( ) . len ( ) ,
766
772
}
767
773
}
768
774
match tests. iter ( ) . max_by ( |t|len_if_padded ( * t) ) {
769
775
Some ( t) => {
770
- let n = t. desc . name . to_str ( ) ;
776
+ let n = t. desc . name . as_slice ( ) ;
771
777
st. max_name_len = n. len ( ) ;
772
778
} ,
773
779
None => { }
@@ -958,7 +964,7 @@ pub fn filter_tests(
958
964
} ;
959
965
960
966
// Sort the tests alphabetically
961
- filtered. sort_by ( |t1, t2| t1. desc . name . to_str ( ) . cmp ( & t2. desc . name . to_str ( ) ) ) ;
967
+ filtered. sort_by ( |t1, t2| t1. desc . name . as_slice ( ) . cmp ( & t2. desc . name . as_slice ( ) ) ) ;
962
968
963
969
// Shard the remaining tests, if sharding requested.
964
970
match opts. test_shard {
0 commit comments