2022-06-27 05:36:45 +00:00
|
|
|
//! These tests are mostly here just to ensure that invalid results will be caught when passing arguments.
|
2019-09-17 02:39:57 +00:00
|
|
|
use assert_cmd::prelude::*;
|
2019-09-15 02:29:40 +00:00
|
|
|
use predicates::prelude::*;
|
|
|
|
|
2022-06-27 05:36:45 +00:00
|
|
|
mod util;
|
|
|
|
use util::*;
|
2019-12-31 03:39:49 +00:00
|
|
|
|
2019-09-15 02:29:40 +00:00
|
|
|
#[test]
|
2021-02-15 19:12:43 +00:00
|
|
|
fn test_small_rate() {
|
2022-06-27 05:36:45 +00:00
|
|
|
btm_command()
|
2021-07-06 20:01:22 +00:00
|
|
|
.arg("-C")
|
|
|
|
.arg("./tests/empty_config.toml")
|
2020-02-29 22:07:47 +00:00
|
|
|
.arg("-r")
|
|
|
|
.arg("249")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
2020-03-09 01:56:30 +00:00
|
|
|
.stderr(predicate::str::contains(
|
2020-09-01 03:59:33 +00:00
|
|
|
"set your update rate to be at least 250 milliseconds.",
|
2020-03-09 01:56:30 +00:00
|
|
|
));
|
2019-09-15 02:29:40 +00:00
|
|
|
}
|
|
|
|
|
2020-03-09 02:19:57 +00:00
|
|
|
#[test]
|
2021-02-15 19:12:43 +00:00
|
|
|
fn test_large_default_time() {
|
2022-06-27 05:36:45 +00:00
|
|
|
btm_command()
|
2021-07-06 20:01:22 +00:00
|
|
|
.arg("-C")
|
|
|
|
.arg("./tests/empty_config.toml")
|
2020-03-09 02:19:57 +00:00
|
|
|
.arg("-t")
|
|
|
|
.arg("18446744073709551616")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
2022-03-28 02:01:06 +00:00
|
|
|
.stderr(predicate::str::contains("could not parse"));
|
2020-03-09 02:19:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
2021-02-15 19:12:43 +00:00
|
|
|
fn test_small_default_time() {
|
2022-06-27 05:36:45 +00:00
|
|
|
btm_command()
|
2021-07-06 20:01:22 +00:00
|
|
|
.arg("-C")
|
|
|
|
.arg("./tests/empty_config.toml")
|
2020-03-09 02:19:57 +00:00
|
|
|
.arg("-t")
|
|
|
|
.arg("900")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
|
|
|
.stderr(predicate::str::contains(
|
2020-09-01 03:59:33 +00:00
|
|
|
"set your default value to be at least",
|
2020-03-09 02:19:57 +00:00
|
|
|
));
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
2021-02-15 19:12:43 +00:00
|
|
|
fn test_large_delta_time() {
|
2022-06-27 05:36:45 +00:00
|
|
|
btm_command()
|
2021-07-06 20:01:22 +00:00
|
|
|
.arg("-C")
|
|
|
|
.arg("./tests/empty_config.toml")
|
2020-03-09 02:19:57 +00:00
|
|
|
.arg("-d")
|
|
|
|
.arg("18446744073709551616")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
2022-03-28 02:01:06 +00:00
|
|
|
.stderr(predicate::str::contains("could not parse"));
|
2020-03-09 02:19:57 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
2021-02-15 19:12:43 +00:00
|
|
|
fn test_small_delta_time() {
|
2022-06-27 05:36:45 +00:00
|
|
|
btm_command()
|
2021-07-06 20:01:22 +00:00
|
|
|
.arg("-C")
|
|
|
|
.arg("./tests/empty_config.toml")
|
2020-03-09 02:19:57 +00:00
|
|
|
.arg("-d")
|
|
|
|
.arg("900")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
|
|
|
.stderr(predicate::str::contains(
|
2020-09-01 03:59:33 +00:00
|
|
|
"set your time delta to be at least",
|
2020-03-09 02:19:57 +00:00
|
|
|
));
|
|
|
|
}
|
|
|
|
|
2019-09-15 04:06:57 +00:00
|
|
|
#[test]
|
2021-02-15 19:12:43 +00:00
|
|
|
fn test_large_rate() {
|
2022-06-27 05:36:45 +00:00
|
|
|
btm_command()
|
2021-07-06 20:01:22 +00:00
|
|
|
.arg("-C")
|
|
|
|
.arg("./tests/empty_config.toml")
|
2020-02-29 22:07:47 +00:00
|
|
|
.arg("-r")
|
|
|
|
.arg("18446744073709551616")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
2022-03-28 02:01:06 +00:00
|
|
|
.stderr(predicate::str::contains("could not parse"));
|
2019-09-15 04:06:57 +00:00
|
|
|
}
|
|
|
|
|
2019-09-15 02:29:40 +00:00
|
|
|
#[test]
|
2021-02-15 19:12:43 +00:00
|
|
|
fn test_negative_rate() {
|
2020-02-29 22:07:47 +00:00
|
|
|
// This test should auto fail due to how clap works
|
2022-06-27 05:36:45 +00:00
|
|
|
btm_command()
|
2021-07-06 20:01:22 +00:00
|
|
|
.arg("-C")
|
|
|
|
.arg("./tests/empty_config.toml")
|
2020-02-29 22:07:47 +00:00
|
|
|
.arg("-r")
|
|
|
|
.arg("-1000")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
|
|
|
.stderr(predicate::str::contains(
|
|
|
|
"wasn't expected, or isn't valid in this context",
|
|
|
|
));
|
2019-09-15 02:29:40 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
2021-02-15 19:12:43 +00:00
|
|
|
fn test_invalid_rate() {
|
2022-06-27 05:36:45 +00:00
|
|
|
btm_command()
|
2021-07-06 20:01:22 +00:00
|
|
|
.arg("-C")
|
|
|
|
.arg("./tests/empty_config.toml")
|
2020-02-29 22:07:47 +00:00
|
|
|
.arg("-r")
|
|
|
|
.arg("100-1000")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
2022-03-28 02:01:06 +00:00
|
|
|
.stderr(predicate::str::contains("could not parse"));
|
2019-09-15 02:29:40 +00:00
|
|
|
}
|
2020-03-03 06:02:54 +00:00
|
|
|
|
|
|
|
#[test]
|
2021-02-15 19:12:43 +00:00
|
|
|
fn test_conflicting_temps() {
|
2022-06-27 05:36:45 +00:00
|
|
|
btm_command()
|
2021-07-06 20:01:22 +00:00
|
|
|
.arg("-C")
|
|
|
|
.arg("./tests/empty_config.toml")
|
2020-03-03 06:02:54 +00:00
|
|
|
.arg("-c")
|
|
|
|
.arg("-f")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
2022-03-08 03:53:02 +00:00
|
|
|
.stderr(predicate::str::contains("cannot be used with"));
|
2020-03-03 06:02:54 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
2021-02-15 19:12:43 +00:00
|
|
|
fn test_invalid_default_widget_1() {
|
2022-06-27 05:36:45 +00:00
|
|
|
btm_command()
|
2021-07-06 20:01:22 +00:00
|
|
|
.arg("-C")
|
|
|
|
.arg("./tests/empty_config.toml")
|
2020-04-02 00:31:43 +00:00
|
|
|
.arg("--default_widget_type")
|
|
|
|
.arg("fake_widget")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
2020-09-01 03:59:33 +00:00
|
|
|
.stderr(predicate::str::contains("invalid widget name"));
|
2020-04-02 00:31:43 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
2021-02-15 19:12:43 +00:00
|
|
|
fn test_invalid_default_widget_2() {
|
2022-06-27 05:36:45 +00:00
|
|
|
btm_command()
|
2021-07-06 20:01:22 +00:00
|
|
|
.arg("-C")
|
|
|
|
.arg("./tests/empty_config.toml")
|
2020-04-02 00:31:43 +00:00
|
|
|
.arg("--default_widget_type")
|
|
|
|
.arg("cpu")
|
|
|
|
.arg("--default_widget_count")
|
|
|
|
.arg("18446744073709551616")
|
2020-03-03 06:02:54 +00:00
|
|
|
.assert()
|
|
|
|
.failure()
|
|
|
|
.stderr(predicate::str::contains(
|
2020-09-01 03:59:33 +00:00
|
|
|
"set your widget count to be at most unsigned INT_MAX",
|
2020-03-03 06:02:54 +00:00
|
|
|
));
|
|
|
|
}
|
2020-09-01 07:08:38 +00:00
|
|
|
|
|
|
|
#[test]
|
2021-02-15 19:12:43 +00:00
|
|
|
fn test_missing_default_widget_type() {
|
2022-06-27 05:36:45 +00:00
|
|
|
btm_command()
|
2021-07-06 20:01:22 +00:00
|
|
|
.arg("-C")
|
|
|
|
.arg("./tests/empty_config.toml")
|
2020-09-01 07:08:38 +00:00
|
|
|
.arg("--default_widget_count")
|
|
|
|
.arg("3")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
|
|
|
.stderr(predicate::str::contains(
|
|
|
|
"The following required arguments were not provided",
|
|
|
|
));
|
|
|
|
}
|
2022-05-01 21:15:54 +00:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_battery_flag() {
|
|
|
|
if !cfg!(feature = "battery") {
|
2022-06-27 05:36:45 +00:00
|
|
|
btm_command()
|
2022-05-01 21:15:54 +00:00
|
|
|
.arg("--battery")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
|
|
|
.stderr(predicate::str::contains(
|
|
|
|
"'--battery' which wasn't expected",
|
|
|
|
));
|
|
|
|
}
|
|
|
|
}
|