in intellij-plugin/Edu-Rust/testSrc/com/jetbrains/edu/rust/slow/checker/RsCheckErrorsTest.kt [19:197]
override fun createCourse(): Course {
return course(language = RsLanguage) {
lesson {
eduTask("EduCompilationFailed") {
taskFile("Cargo.toml", """
[package]
name = "task"
version = "0.1.0"
edition = "2018"
""")
rustTaskFile("src/lib.rs", """
pub fn foo() -> {
String::from("foo")
}
""")
rustTaskFile("tests/tests.rs", """
use task::foo;
#[test]
fn test() {
assert_eq!(String::from("foo"), foo());
}
""")
}
eduTask("EduTestFailed") {
taskFile("Cargo.toml", """
[package]
name = "task"
version = "0.1.0"
edition = "2018"
""")
rustTaskFile("src/lib.rs", """
pub fn foo() -> String {
String::from("bar")
}
""")
rustTaskFile("tests/tests.rs", """
use task::foo;
#[test]
fn test() {
assert!(foo() == String::from("foo"));
}
""")
}
eduTask("EduTestFailedWithMessage") {
taskFile("Cargo.toml", """
[package]
name = "task"
version = "0.1.0"
edition = "2018"
""")
rustTaskFile("src/lib.rs", """
pub fn foo() -> String {
String::from("bar")
}
""")
rustTaskFile("tests/tests.rs", """
use task::foo;
#[test]
fn test() {
assert!(foo() == String::from("foo"), "Test error message");
}
""")
}
eduTask("EduTestFailedWithMultilineMessage") {
taskFile("Cargo.toml", """
[package]
name = "task"
version = "0.1.0"
edition = "2018"
""")
rustTaskFile("src/lib.rs", """
pub fn foo() -> String {
String::from("bar")
}
""")
rustTaskFile("tests/tests.rs", """
use task::foo;
#[test]
fn test() {
assert_ne!(foo(), String::from("bar"), "Test\nerror\nmessage");
}
""")
}
eduTask("EduComparisonTestFailed") {
taskFile("Cargo.toml", """
[package]
name = "task"
version = "0.1.0"
edition = "2018"
""")
rustTaskFile("src/lib.rs", """
pub fn foo() -> i32 {
123
}
""")
rustTaskFile("tests/tests.rs", """
use task::foo;
#[test]
fn test() {
assert_eq!(foo(), 12);
}
""")
}
eduTask("EduComparisonTestFailedWithMessage") {
taskFile("Cargo.toml", """
[package]
name = "task"
version = "0.1.0"
edition = "2018"
""")
rustTaskFile("src/lib.rs", """
pub fn foo() -> String {
String::from("bar")
}
""")
rustTaskFile("tests/tests.rs", """
use task::foo;
#[test]
fn test() {
assert_eq!(foo(), String::from("foo"), "Test error message");
}
""")
}
eduTask("DoNotEscapeMessageInFailedTest") {
taskFile("Cargo.toml", """
[package]
name = "task"
version = "0.1.0"
edition = "2018"
""")
rustTaskFile("src/lib.rs")
rustTaskFile("tests/tests.rs", """
#[test]
fn test() {
assert!(false, "<br>");
}
""")
}
outputTask("OutputCompilationFailed") {
taskFile("Cargo.toml", """
[package]
name = "task"
version = "0.1.0"
edition = "2018"
""")
rustTaskFile("src/main.rs", """
fn main() {
println("Hello, World");
}
""")
taskFile("tests/output.txt") {
withText("Hello, World!\n")
}
}
outputTask("OutputTestsFailed") {
taskFile("Cargo.toml", """
[package]
name = "task"
version = "0.1.0"
edition = "2018"
""")
rustTaskFile("src/main.rs", """
fn main() {
println!("Hello, World");
}
""")
taskFile("tests/output.txt") {
withText("Hello, World!\n")
}
}
}
}
}