Skip to content

Commit 0886bc4

Browse files
committed
compiletest: Move pass mode update into a separate function
1 parent 932ea64 commit 0886bc4

File tree

1 file changed

+36
-32
lines changed

1 file changed

+36
-32
lines changed

Diff for: src/tools/compiletest/src/header.rs

+36-32
Original file line numberDiff line numberDiff line change
@@ -526,38 +526,7 @@ impl TestProps {
526526
self.check_test_line_numbers_match = config.parse_check_test_line_numbers_match(ln);
527527
}
528528

529-
let check_no_run = |s| {
530-
if config.mode != Mode::Ui && config.mode != Mode::Incremental {
531-
panic!("`{}` header is only supported in UI and incremental tests", s);
532-
}
533-
if config.mode == Mode::Incremental &&
534-
!cfg.map_or(false, |r| r.starts_with("cfail")) &&
535-
!self.revisions.iter().all(|r| r.starts_with("cfail")) {
536-
panic!("`{}` header is only supported in `cfail` incremental tests", s);
537-
}
538-
};
539-
let pass_mode = if config.parse_name_directive(ln, "check-pass") {
540-
check_no_run("check-pass");
541-
Some(PassMode::Check)
542-
} else if config.parse_name_directive(ln, "build-pass") {
543-
check_no_run("build-pass");
544-
Some(PassMode::Build)
545-
} else if config.parse_name_directive(ln, "compile-pass") /* compatibility */ {
546-
check_no_run("compile-pass");
547-
Some(PassMode::Build)
548-
} else if config.parse_name_directive(ln, "run-pass") {
549-
if config.mode != Mode::Ui && config.mode != Mode::RunPass /* compatibility */ {
550-
panic!("`run-pass` header is only supported in UI tests")
551-
}
552-
Some(PassMode::Run)
553-
} else {
554-
None
555-
};
556-
match (self.pass_mode, pass_mode) {
557-
(None, Some(_)) => self.pass_mode = pass_mode,
558-
(Some(_), Some(_)) => panic!("multiple `*-pass` headers in a single test"),
559-
(_, None) => {}
560-
}
529+
self.update_pass_mode(ln, cfg, config);
561530

562531
if !self.disable_ui_testing_normalization {
563532
self.disable_ui_testing_normalization =
@@ -604,6 +573,41 @@ impl TestProps {
604573
}
605574
}
606575
}
576+
577+
fn update_pass_mode(&mut self, ln: &str, revision: Option<&str>, config: &Config) {
578+
let check_no_run = |s| {
579+
if config.mode != Mode::Ui && config.mode != Mode::Incremental {
580+
panic!("`{}` header is only supported in UI and incremental tests", s);
581+
}
582+
if config.mode == Mode::Incremental &&
583+
!revision.map_or(false, |r| r.starts_with("cfail")) &&
584+
!self.revisions.iter().all(|r| r.starts_with("cfail")) {
585+
panic!("`{}` header is only supported in `cfail` incremental tests", s);
586+
}
587+
};
588+
let pass_mode = if config.parse_name_directive(ln, "check-pass") {
589+
check_no_run("check-pass");
590+
Some(PassMode::Check)
591+
} else if config.parse_name_directive(ln, "build-pass") {
592+
check_no_run("build-pass");
593+
Some(PassMode::Build)
594+
} else if config.parse_name_directive(ln, "compile-pass") /* compatibility */ {
595+
check_no_run("compile-pass");
596+
Some(PassMode::Build)
597+
} else if config.parse_name_directive(ln, "run-pass") {
598+
if config.mode != Mode::Ui && config.mode != Mode::RunPass /* compatibility */ {
599+
panic!("`run-pass` header is only supported in UI tests")
600+
}
601+
Some(PassMode::Run)
602+
} else {
603+
None
604+
};
605+
match (self.pass_mode, pass_mode) {
606+
(None, Some(_)) => self.pass_mode = pass_mode,
607+
(Some(_), Some(_)) => panic!("multiple `*-pass` headers in a single test"),
608+
(_, None) => {}
609+
}
610+
}
607611
}
608612

609613
fn iter_header(testfile: &Path, cfg: Option<&str>, it: &mut dyn FnMut(&str)) {

0 commit comments

Comments
 (0)