@@ -466,6 +466,14 @@ fn partition_source(s: &str) -> (String, String) {
466
466
( before, after)
467
467
}
468
468
469
+ pub trait Tester {
470
+ fn add_test ( & mut self , test : String , config : LangString , line : usize ) ;
471
+ fn get_line ( & self ) -> usize {
472
+ 0
473
+ }
474
+ fn register_header ( & mut self , _name : & str , _level : u32 ) { }
475
+ }
476
+
469
477
pub struct Collector {
470
478
pub tests : Vec < testing:: TestDescAndFn > ,
471
479
@@ -534,7 +542,31 @@ impl Collector {
534
542
format ! ( "{} - {} (line {})" , filename, self . names. join( "::" ) , line)
535
543
}
536
544
537
- pub fn add_test ( & mut self , test : String , config : LangString , line : usize ) {
545
+ pub fn set_position ( & mut self , position : Span ) {
546
+ self . position = position;
547
+ }
548
+
549
+ fn get_filename ( & self ) -> FileName {
550
+ if let Some ( ref source_map) = self . source_map {
551
+ let filename = source_map. span_to_filename ( self . position ) ;
552
+ if let FileName :: Real ( ref filename) = filename {
553
+ if let Ok ( cur_dir) = env:: current_dir ( ) {
554
+ if let Ok ( path) = filename. strip_prefix ( & cur_dir) {
555
+ return path. to_owned ( ) . into ( ) ;
556
+ }
557
+ }
558
+ }
559
+ filename
560
+ } else if let Some ( ref filename) = self . filename {
561
+ filename. clone ( ) . into ( )
562
+ } else {
563
+ FileName :: Custom ( "input" . to_owned ( ) )
564
+ }
565
+ }
566
+ }
567
+
568
+ impl Tester for Collector {
569
+ fn add_test ( & mut self , test : String , config : LangString , line : usize ) {
538
570
let filename = self . get_filename ( ) ;
539
571
let name = self . generate_name ( line, & filename) ;
540
572
let cfgs = self . cfgs . clone ( ) ;
@@ -588,7 +620,7 @@ impl Collector {
588
620
} ) ;
589
621
}
590
622
591
- pub fn get_line ( & self ) -> usize {
623
+ fn get_line ( & self ) -> usize {
592
624
if let Some ( ref source_map) = self . source_map {
593
625
let line = self . position . lo ( ) . to_usize ( ) ;
594
626
let line = source_map. lookup_char_pos ( BytePos ( line as u32 ) ) . line ;
@@ -598,29 +630,7 @@ impl Collector {
598
630
}
599
631
}
600
632
601
- pub fn set_position ( & mut self , position : Span ) {
602
- self . position = position;
603
- }
604
-
605
- fn get_filename ( & self ) -> FileName {
606
- if let Some ( ref source_map) = self . source_map {
607
- let filename = source_map. span_to_filename ( self . position ) ;
608
- if let FileName :: Real ( ref filename) = filename {
609
- if let Ok ( cur_dir) = env:: current_dir ( ) {
610
- if let Ok ( path) = filename. strip_prefix ( & cur_dir) {
611
- return path. to_owned ( ) . into ( ) ;
612
- }
613
- }
614
- }
615
- filename
616
- } else if let Some ( ref filename) = self . filename {
617
- filename. clone ( ) . into ( )
618
- } else {
619
- FileName :: Custom ( "input" . to_owned ( ) )
620
- }
621
- }
622
-
623
- pub fn register_header ( & mut self , name : & str , level : u32 ) {
633
+ fn register_header ( & mut self , name : & str , level : u32 ) {
624
634
if self . use_headers {
625
635
// we use these headings as test names, so it's good if
626
636
// they're valid identifiers.
0 commit comments