@@ -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 ( StrBuf )
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 ) -> StrBuf {
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 {
@@ -590,7 +596,7 @@ impl<T: Writer> ConsoleTestState<T> {
590
596
TrIgnored => "ignored" . to_strbuf( ) ,
591
597
TrMetrics ( ref mm) => fmt_metrics( mm) ,
592
598
TrBench ( ref bs) => fmt_bench_samples( bs)
593
- } , test. name. to_str ( ) ) ;
599
+ } , test. name. as_slice ( ) ) ;
594
600
o. write ( s. as_bytes ( ) )
595
601
}
596
602
}
@@ -604,7 +610,7 @@ impl<T: Writer> ConsoleTestState<T> {
604
610
failures. push ( f. name . to_str ( ) ) ;
605
611
if stdout. len ( ) > 0 {
606
612
fail_out. push_str ( format ! ( "---- {} stdout ----\n \t " ,
607
- f. name. to_str ( ) ) ) ;
613
+ f. name. as_slice ( ) ) ) ;
608
614
let output = str:: from_utf8_lossy ( stdout. as_slice ( ) ) ;
609
615
fail_out. push_str ( output. as_slice ( ) . replace ( "\n " , "\n \t " ) ) ;
610
616
fail_out. push_str ( "\n " ) ;
@@ -618,7 +624,7 @@ impl<T: Writer> ConsoleTestState<T> {
618
624
try!( self . write_plain ( "\n failures:\n " ) ) ;
619
625
failures. as_mut_slice ( ) . sort ( ) ;
620
626
for name in failures. iter ( ) {
621
- try!( self . write_plain ( format ! ( " {}\n " , name. to_str ( ) ) ) ) ;
627
+ try!( self . write_plain ( format ! ( " {}\n " , name. as_slice ( ) ) ) ) ;
622
628
}
623
629
Ok ( ( ) )
624
630
}
@@ -753,7 +759,7 @@ pub fn run_tests_console(opts: &TestOpts,
753
759
TrOk => st. passed += 1 ,
754
760
TrIgnored => st. ignored += 1 ,
755
761
TrMetrics ( mm) => {
756
- let tname = test. name . to_str ( ) ;
762
+ let tname = test. name . as_slice ( ) ;
757
763
let MetricMap ( mm) = mm;
758
764
for ( k, v) in mm. iter ( ) {
759
765
st. metrics
@@ -764,7 +770,7 @@ pub fn run_tests_console(opts: &TestOpts,
764
770
st. measured += 1
765
771
}
766
772
TrBench ( bs) => {
767
- st. metrics . insert_metric ( test. name . to_str ( ) ,
773
+ st. metrics . insert_metric ( test. name . as_slice ( ) ,
768
774
bs. ns_iter_summ . median ,
769
775
bs. ns_iter_summ . max - bs. ns_iter_summ . min ) ;
770
776
st. measured += 1
@@ -782,12 +788,12 @@ pub fn run_tests_console(opts: &TestOpts,
782
788
fn len_if_padded ( t : & TestDescAndFn ) -> uint {
783
789
match t. testfn . padding ( ) {
784
790
PadNone => 0 u,
785
- PadOnLeft | PadOnRight => t. desc . name . to_str ( ) . len ( ) ,
791
+ PadOnLeft | PadOnRight => t. desc . name . as_slice ( ) . len ( ) ,
786
792
}
787
793
}
788
794
match tests. iter ( ) . max_by ( |t|len_if_padded ( * t) ) {
789
795
Some ( t) => {
790
- let n = t. desc . name . to_str ( ) ;
796
+ let n = t. desc . name . as_slice ( ) ;
791
797
st. max_name_len = n. len ( ) ;
792
798
} ,
793
799
None => { }
@@ -980,7 +986,7 @@ pub fn filter_tests(
980
986
} ;
981
987
982
988
// Sort the tests alphabetically
983
- filtered. sort_by ( |t1, t2| t1. desc . name . to_str ( ) . cmp ( & t2. desc . name . to_str ( ) ) ) ;
989
+ filtered. sort_by ( |t1, t2| t1. desc . name . as_slice ( ) . cmp ( & t2. desc . name . as_slice ( ) ) ) ;
984
990
985
991
// Shard the remaining tests, if sharding requested.
986
992
match opts. test_shard {
0 commit comments