mirror of
https://github.com/sharkdp/bat
synced 2024-11-18 15:26:16 +00:00
rewrite 6 snapshot tests as integration test
This commit is contained in:
parent
afc5aacb28
commit
58198d0700
10
tests/examples/tabs.txt
Normal file
10
tests/examples/tabs.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
|
||||||
|
1 2 3 4
|
||||||
|
1 ?
|
||||||
|
22 ?
|
||||||
|
333 ?
|
||||||
|
4444 ?
|
||||||
|
55555 ?
|
||||||
|
666666 ?
|
||||||
|
7777777 ?
|
||||||
|
88888888 ?
|
@ -1,10 +1,7 @@
|
|||||||
extern crate assert_cmd;
|
extern crate assert_cmd;
|
||||||
|
|
||||||
mod tester;
|
|
||||||
|
|
||||||
use assert_cmd::prelude::*;
|
use assert_cmd::prelude::*;
|
||||||
use std::process::Command;
|
use std::process::Command;
|
||||||
use tester::BatTester;
|
|
||||||
|
|
||||||
fn bat() -> Command {
|
fn bat() -> Command {
|
||||||
let mut cmd = Command::main_binary().unwrap();
|
let mut cmd = Command::main_binary().unwrap();
|
||||||
@ -15,10 +12,6 @@ fn bat() -> Command {
|
|||||||
cmd
|
cmd
|
||||||
}
|
}
|
||||||
|
|
||||||
fn tester() -> BatTester {
|
|
||||||
BatTester::new()
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn basic() {
|
fn basic() {
|
||||||
bat()
|
bat()
|
||||||
@ -105,32 +98,140 @@ fn line_range_last_3() {
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn tabs_passthrough_wrapped() {
|
fn tabs_passthrough_wrapped() {
|
||||||
tester().test_snapshot("tabs_passthrough_wrapped", "full", 0, true);
|
bat()
|
||||||
|
.arg("tabs.txt")
|
||||||
|
.arg("--tabs=0")
|
||||||
|
.arg("--wrap=character")
|
||||||
|
.arg("--style=plain")
|
||||||
|
.arg("--decorations=always")
|
||||||
|
.assert()
|
||||||
|
.success()
|
||||||
|
.stdout("
|
||||||
|
1 2 3 4
|
||||||
|
1 ?
|
||||||
|
22 ?
|
||||||
|
333 ?
|
||||||
|
4444 ?
|
||||||
|
55555 ?
|
||||||
|
666666 ?
|
||||||
|
7777777 ?
|
||||||
|
88888888 ?
|
||||||
|
");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn tabs_4_wrapped() {
|
fn tabs_4_wrapped() {
|
||||||
tester().test_snapshot("tabs_4_wrapped", "full", 4, true);
|
bat()
|
||||||
|
.arg("tabs.txt")
|
||||||
|
.arg("--tabs=4")
|
||||||
|
.arg("--wrap=character")
|
||||||
|
.arg("--style=plain")
|
||||||
|
.arg("--decorations=always")
|
||||||
|
.assert()
|
||||||
|
.success()
|
||||||
|
.stdout("
|
||||||
|
1 2 3 4
|
||||||
|
1 ?
|
||||||
|
22 ?
|
||||||
|
333 ?
|
||||||
|
4444 ?
|
||||||
|
55555 ?
|
||||||
|
666666 ?
|
||||||
|
7777777 ?
|
||||||
|
88888888 ?
|
||||||
|
");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn tabs_8_wrapped() {
|
fn tabs_8_wrapped() {
|
||||||
tester().test_snapshot("tabs_8_wrapped", "full", 8, true);
|
bat()
|
||||||
|
.arg("tabs.txt")
|
||||||
|
.arg("--tabs=8")
|
||||||
|
.arg("--wrap=character")
|
||||||
|
.arg("--style=plain")
|
||||||
|
.arg("--decorations=always")
|
||||||
|
.assert()
|
||||||
|
.success()
|
||||||
|
.stdout("
|
||||||
|
1 2 3 4
|
||||||
|
1 ?
|
||||||
|
22 ?
|
||||||
|
333 ?
|
||||||
|
4444 ?
|
||||||
|
55555 ?
|
||||||
|
666666 ?
|
||||||
|
7777777 ?
|
||||||
|
88888888 ?
|
||||||
|
");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn tabs_passthrough() {
|
fn tabs_passthrough() {
|
||||||
tester().test_snapshot("tabs_passthrough", "full", 0, false);
|
bat()
|
||||||
|
.arg("tabs.txt")
|
||||||
|
.arg("--tabs=0")
|
||||||
|
.arg("--wrap=never")
|
||||||
|
.arg("--style=plain")
|
||||||
|
.arg("--decorations=always")
|
||||||
|
.assert()
|
||||||
|
.success()
|
||||||
|
.stdout("
|
||||||
|
1 2 3 4
|
||||||
|
1 ?
|
||||||
|
22 ?
|
||||||
|
333 ?
|
||||||
|
4444 ?
|
||||||
|
55555 ?
|
||||||
|
666666 ?
|
||||||
|
7777777 ?
|
||||||
|
88888888 ?
|
||||||
|
");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn tabs_4() {
|
fn tabs_4() {
|
||||||
tester().test_snapshot("tabs_4", "full", 4, false);
|
bat()
|
||||||
|
.arg("tabs.txt")
|
||||||
|
.arg("--tabs=4")
|
||||||
|
.arg("--wrap=never")
|
||||||
|
.arg("--style=plain")
|
||||||
|
.arg("--decorations=always")
|
||||||
|
.assert()
|
||||||
|
.success()
|
||||||
|
.stdout("
|
||||||
|
1 2 3 4
|
||||||
|
1 ?
|
||||||
|
22 ?
|
||||||
|
333 ?
|
||||||
|
4444 ?
|
||||||
|
55555 ?
|
||||||
|
666666 ?
|
||||||
|
7777777 ?
|
||||||
|
88888888 ?
|
||||||
|
");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn tabs_8() {
|
fn tabs_8() {
|
||||||
tester().test_snapshot("tabs_8", "full", 8, false);
|
bat()
|
||||||
|
.arg("tabs.txt")
|
||||||
|
.arg("--tabs=8")
|
||||||
|
.arg("--wrap=never")
|
||||||
|
.arg("--style=plain")
|
||||||
|
.arg("--decorations=always")
|
||||||
|
.assert()
|
||||||
|
.success()
|
||||||
|
.stdout("
|
||||||
|
1 2 3 4
|
||||||
|
1 ?
|
||||||
|
22 ?
|
||||||
|
333 ?
|
||||||
|
4444 ?
|
||||||
|
55555 ?
|
||||||
|
666666 ?
|
||||||
|
7777777 ?
|
||||||
|
88888888 ?
|
||||||
|
");
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
───────┬────────────────────────────────────────────────────────────────────────
|
|
||||||
│ File: sample.rs
|
|
||||||
───────┼────────────────────────────────────────────────────────────────────────
|
|
||||||
1 │ struct Rectangle {
|
|
||||||
2 │ width: u32,
|
|
||||||
3 │ height: u32,
|
|
||||||
4 │ }
|
|
||||||
5 │
|
|
||||||
6 _ │ fn main() {
|
|
||||||
7 │ let rect1 = Rectangle { width: 30, height: 50 };
|
|
||||||
8 │
|
|
||||||
9 │ println!(
|
|
||||||
10 ~ │ "The perimeter of the rectangle is {} pixels.",
|
|
||||||
11 ~ │ perimeter(&rect1)
|
|
||||||
12 │ );
|
|
||||||
13 + │ println!(r#"This line contains invalid utf8: "<22><><EFBFBD><EFBFBD><EFBFBD>"#;
|
|
||||||
14 │ }
|
|
||||||
15 │
|
|
||||||
16 │ fn area(rectangle: &Rectangle) -> u32 {
|
|
||||||
17 │ rectangle.width * rectangle.height
|
|
||||||
18 │ }
|
|
||||||
19 │
|
|
||||||
20 + │ fn perimeter(rectangle: &Rectangle) -> u32 {
|
|
||||||
21 + │ (rectangle.width + rectangle.height) * 2
|
|
||||||
22 + │ }
|
|
||||||
23 + │
|
|
||||||
24 │ // Tab alignment:
|
|
||||||
25 │ /*
|
|
||||||
26 │ Indent
|
|
||||||
27 │ 1 2 3 4
|
|
||||||
28 │ 1 ?
|
|
||||||
29 │ 22 ?
|
|
||||||
30 │ 333 ?
|
|
||||||
31 │ 4444 ?
|
|
||||||
32 │ 55555 ?
|
|
||||||
33 │ 666666 ?
|
|
||||||
34 │ 7777777 ?
|
|
||||||
35 │ 88888888 ?
|
|
||||||
36 ~ │ */
|
|
||||||
───────┴────────────────────────────────────────────────────────────────────────
|
|
@ -1,40 +0,0 @@
|
|||||||
───────┬────────────────────────────────────────────────────────────────────────
|
|
||||||
│ File: sample.rs
|
|
||||||
───────┼────────────────────────────────────────────────────────────────────────
|
|
||||||
1 │ struct Rectangle {
|
|
||||||
2 │ width: u32,
|
|
||||||
3 │ height: u32,
|
|
||||||
4 │ }
|
|
||||||
5 │
|
|
||||||
6 _ │ fn main() {
|
|
||||||
7 │ let rect1 = Rectangle { width: 30, height: 50 };
|
|
||||||
8 │
|
|
||||||
9 │ println!(
|
|
||||||
10 ~ │ "The perimeter of the rectangle is {} pixels.",
|
|
||||||
11 ~ │ perimeter(&rect1)
|
|
||||||
12 │ );
|
|
||||||
13 + │ println!(r#"This line contains invalid utf8: "<22><><EFBFBD><EFBFBD><EFBFBD>"#;
|
|
||||||
14 │ }
|
|
||||||
15 │
|
|
||||||
16 │ fn area(rectangle: &Rectangle) -> u32 {
|
|
||||||
17 │ rectangle.width * rectangle.height
|
|
||||||
18 │ }
|
|
||||||
19 │
|
|
||||||
20 + │ fn perimeter(rectangle: &Rectangle) -> u32 {
|
|
||||||
21 + │ (rectangle.width + rectangle.height) * 2
|
|
||||||
22 + │ }
|
|
||||||
23 + │
|
|
||||||
24 │ // Tab alignment:
|
|
||||||
25 │ /*
|
|
||||||
26 │ Indent
|
|
||||||
27 │ 1 2 3 4
|
|
||||||
28 │ 1 ?
|
|
||||||
29 │ 22 ?
|
|
||||||
30 │ 333 ?
|
|
||||||
31 │ 4444 ?
|
|
||||||
32 │ 55555 ?
|
|
||||||
33 │ 666666 ?
|
|
||||||
34 │ 7777777 ?
|
|
||||||
35 │ 88888888 ?
|
|
||||||
36 ~ │ */
|
|
||||||
───────┴────────────────────────────────────────────────────────────────────────
|
|
@ -1,40 +0,0 @@
|
|||||||
───────┬────────────────────────────────────────────────────────────────────────
|
|
||||||
│ File: sample.rs
|
|
||||||
───────┼────────────────────────────────────────────────────────────────────────
|
|
||||||
1 │ struct Rectangle {
|
|
||||||
2 │ width: u32,
|
|
||||||
3 │ height: u32,
|
|
||||||
4 │ }
|
|
||||||
5 │
|
|
||||||
6 _ │ fn main() {
|
|
||||||
7 │ let rect1 = Rectangle { width: 30, height: 50 };
|
|
||||||
8 │
|
|
||||||
9 │ println!(
|
|
||||||
10 ~ │ "The perimeter of the rectangle is {} pixels.",
|
|
||||||
11 ~ │ perimeter(&rect1)
|
|
||||||
12 │ );
|
|
||||||
13 + │ println!(r#"This line contains invalid utf8: "<22><><EFBFBD><EFBFBD><EFBFBD>"#;
|
|
||||||
14 │ }
|
|
||||||
15 │
|
|
||||||
16 │ fn area(rectangle: &Rectangle) -> u32 {
|
|
||||||
17 │ rectangle.width * rectangle.height
|
|
||||||
18 │ }
|
|
||||||
19 │
|
|
||||||
20 + │ fn perimeter(rectangle: &Rectangle) -> u32 {
|
|
||||||
21 + │ (rectangle.width + rectangle.height) * 2
|
|
||||||
22 + │ }
|
|
||||||
23 + │
|
|
||||||
24 │ // Tab alignment:
|
|
||||||
25 │ /*
|
|
||||||
26 │ Indent
|
|
||||||
27 │ 1 2 3 4
|
|
||||||
28 │ 1 ?
|
|
||||||
29 │ 22 ?
|
|
||||||
30 │ 333 ?
|
|
||||||
31 │ 4444 ?
|
|
||||||
32 │ 55555 ?
|
|
||||||
33 │ 666666 ?
|
|
||||||
34 │ 7777777 ?
|
|
||||||
35 │ 88888888 ?
|
|
||||||
36 ~ │ */
|
|
||||||
───────┴────────────────────────────────────────────────────────────────────────
|
|
@ -1,40 +0,0 @@
|
|||||||
───────┬────────────────────────────────────────────────────────────────────────
|
|
||||||
│ File: sample.rs
|
|
||||||
───────┼────────────────────────────────────────────────────────────────────────
|
|
||||||
1 │ struct Rectangle {
|
|
||||||
2 │ width: u32,
|
|
||||||
3 │ height: u32,
|
|
||||||
4 │ }
|
|
||||||
5 │
|
|
||||||
6 _ │ fn main() {
|
|
||||||
7 │ let rect1 = Rectangle { width: 30, height: 50 };
|
|
||||||
8 │
|
|
||||||
9 │ println!(
|
|
||||||
10 ~ │ "The perimeter of the rectangle is {} pixels.",
|
|
||||||
11 ~ │ perimeter(&rect1)
|
|
||||||
12 │ );
|
|
||||||
13 + │ println!(r#"This line contains invalid utf8: "<22><><EFBFBD><EFBFBD><EFBFBD>"#;
|
|
||||||
14 │ }
|
|
||||||
15 │
|
|
||||||
16 │ fn area(rectangle: &Rectangle) -> u32 {
|
|
||||||
17 │ rectangle.width * rectangle.height
|
|
||||||
18 │ }
|
|
||||||
19 │
|
|
||||||
20 + │ fn perimeter(rectangle: &Rectangle) -> u32 {
|
|
||||||
21 + │ (rectangle.width + rectangle.height) * 2
|
|
||||||
22 + │ }
|
|
||||||
23 + │
|
|
||||||
24 │ // Tab alignment:
|
|
||||||
25 │ /*
|
|
||||||
26 │ Indent
|
|
||||||
27 │ 1 2 3 4
|
|
||||||
28 │ 1 ?
|
|
||||||
29 │ 22 ?
|
|
||||||
30 │ 333 ?
|
|
||||||
31 │ 4444 ?
|
|
||||||
32 │ 55555 ?
|
|
||||||
33 │ 666666 ?
|
|
||||||
34 │ 7777777 ?
|
|
||||||
35 │ 88888888 ?
|
|
||||||
36 ~ │ */
|
|
||||||
───────┴────────────────────────────────────────────────────────────────────────
|
|
@ -1,40 +0,0 @@
|
|||||||
───────┬────────────────────────────────────────────────────────────────────────
|
|
||||||
│ File: sample.rs
|
|
||||||
───────┼────────────────────────────────────────────────────────────────────────
|
|
||||||
1 │ struct Rectangle {
|
|
||||||
2 │ width: u32,
|
|
||||||
3 │ height: u32,
|
|
||||||
4 │ }
|
|
||||||
5 │
|
|
||||||
6 _ │ fn main() {
|
|
||||||
7 │ let rect1 = Rectangle { width: 30, height: 50 };
|
|
||||||
8 │
|
|
||||||
9 │ println!(
|
|
||||||
10 ~ │ "The perimeter of the rectangle is {} pixels.",
|
|
||||||
11 ~ │ perimeter(&rect1)
|
|
||||||
12 │ );
|
|
||||||
13 + │ println!(r#"This line contains invalid utf8: "<22><><EFBFBD><EFBFBD><EFBFBD>"#;
|
|
||||||
14 │ }
|
|
||||||
15 │
|
|
||||||
16 │ fn area(rectangle: &Rectangle) -> u32 {
|
|
||||||
17 │ rectangle.width * rectangle.height
|
|
||||||
18 │ }
|
|
||||||
19 │
|
|
||||||
20 + │ fn perimeter(rectangle: &Rectangle) -> u32 {
|
|
||||||
21 + │ (rectangle.width + rectangle.height) * 2
|
|
||||||
22 + │ }
|
|
||||||
23 + │
|
|
||||||
24 │ // Tab alignment:
|
|
||||||
25 │ /*
|
|
||||||
26 │ Indent
|
|
||||||
27 │ 1 2 3 4
|
|
||||||
28 │ 1 ?
|
|
||||||
29 │ 22 ?
|
|
||||||
30 │ 333 ?
|
|
||||||
31 │ 4444 ?
|
|
||||||
32 │ 55555 ?
|
|
||||||
33 │ 666666 ?
|
|
||||||
34 │ 7777777 ?
|
|
||||||
35 │ 88888888 ?
|
|
||||||
36 ~ │ */
|
|
||||||
───────┴────────────────────────────────────────────────────────────────────────
|
|
@ -1,40 +0,0 @@
|
|||||||
───────┬────────────────────────────────────────────────────────────────────────
|
|
||||||
│ File: sample.rs
|
|
||||||
───────┼────────────────────────────────────────────────────────────────────────
|
|
||||||
1 │ struct Rectangle {
|
|
||||||
2 │ width: u32,
|
|
||||||
3 │ height: u32,
|
|
||||||
4 │ }
|
|
||||||
5 │
|
|
||||||
6 _ │ fn main() {
|
|
||||||
7 │ let rect1 = Rectangle { width: 30, height: 50 };
|
|
||||||
8 │
|
|
||||||
9 │ println!(
|
|
||||||
10 ~ │ "The perimeter of the rectangle is {} pixels.",
|
|
||||||
11 ~ │ perimeter(&rect1)
|
|
||||||
12 │ );
|
|
||||||
13 + │ println!(r#"This line contains invalid utf8: "<22><><EFBFBD><EFBFBD><EFBFBD>"#;
|
|
||||||
14 │ }
|
|
||||||
15 │
|
|
||||||
16 │ fn area(rectangle: &Rectangle) -> u32 {
|
|
||||||
17 │ rectangle.width * rectangle.height
|
|
||||||
18 │ }
|
|
||||||
19 │
|
|
||||||
20 + │ fn perimeter(rectangle: &Rectangle) -> u32 {
|
|
||||||
21 + │ (rectangle.width + rectangle.height) * 2
|
|
||||||
22 + │ }
|
|
||||||
23 + │
|
|
||||||
24 │ // Tab alignment:
|
|
||||||
25 │ /*
|
|
||||||
26 │ Indent
|
|
||||||
27 │ 1 2 3 4
|
|
||||||
28 │ 1 ?
|
|
||||||
29 │ 22 ?
|
|
||||||
30 │ 333 ?
|
|
||||||
31 │ 4444 ?
|
|
||||||
32 │ 55555 ?
|
|
||||||
33 │ 666666 ?
|
|
||||||
34 │ 7777777 ?
|
|
||||||
35 │ 88888888 ?
|
|
||||||
36 ~ │ */
|
|
||||||
───────┴────────────────────────────────────────────────────────────────────────
|
|
Loading…
Reference in New Issue
Block a user