2019-09-16 22:39:57 -04:00
|
|
|
use assert_cmd::prelude::*;
|
2019-09-14 22:29:40 -04:00
|
|
|
use predicates::prelude::*;
|
2020-04-23 13:29:10 -04:00
|
|
|
use std::process::Command;
|
2019-09-14 22:29:40 -04:00
|
|
|
|
2019-12-15 00:17:15 -05:00
|
|
|
// These tests are mostly here just to ensure that invalid results will be caught when passing arguments...
|
|
|
|
|
2019-09-15 00:06:57 -04:00
|
|
|
//======================RATES======================//
|
2019-09-14 22:29:40 -04:00
|
|
|
|
2020-04-23 13:29:10 -04:00
|
|
|
fn get_binary_location() -> String {
|
2020-05-04 18:53:05 -04:00
|
|
|
env!("CARGO_BIN_EXE_btm").to_string()
|
2019-12-30 22:39:49 -05:00
|
|
|
}
|
|
|
|
|
2019-09-14 22:29:40 -04:00
|
|
|
#[test]
|
|
|
|
fn test_small_rate() -> Result<(), Box<dyn std::error::Error>> {
|
2020-04-23 13:29:10 -04:00
|
|
|
Command::new(get_binary_location())
|
2020-02-29 17:07:47 -05:00
|
|
|
.arg("-r")
|
|
|
|
.arg("249")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
2020-03-08 21:56:30 -04:00
|
|
|
.stderr(predicate::str::contains(
|
|
|
|
"Please set your update rate to be at least 250 milliseconds.",
|
|
|
|
));
|
2020-02-29 17:07:47 -05:00
|
|
|
Ok(())
|
2019-09-14 22:29:40 -04:00
|
|
|
}
|
|
|
|
|
2020-03-08 22:19:57 -04:00
|
|
|
#[test]
|
|
|
|
fn test_large_default_time() -> Result<(), Box<dyn std::error::Error>> {
|
2020-04-23 13:29:10 -04:00
|
|
|
Command::new(get_binary_location())
|
2020-03-08 22:19:57 -04:00
|
|
|
.arg("-t")
|
|
|
|
.arg("18446744073709551616")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
|
|
|
.stderr(predicate::str::contains(
|
2020-03-10 01:51:11 -04:00
|
|
|
"Please set your default value to be at most",
|
2020-03-08 22:19:57 -04:00
|
|
|
));
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_small_default_time() -> Result<(), Box<dyn std::error::Error>> {
|
2020-04-23 13:29:10 -04:00
|
|
|
Command::new(get_binary_location())
|
2020-03-08 22:19:57 -04:00
|
|
|
.arg("-t")
|
|
|
|
.arg("900")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
|
|
|
.stderr(predicate::str::contains(
|
2020-03-10 01:51:11 -04:00
|
|
|
"Please set your default value to be at least",
|
2020-03-08 22:19:57 -04:00
|
|
|
));
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_large_delta_time() -> Result<(), Box<dyn std::error::Error>> {
|
2020-04-23 13:29:10 -04:00
|
|
|
Command::new(get_binary_location())
|
2020-03-08 22:19:57 -04:00
|
|
|
.arg("-d")
|
|
|
|
.arg("18446744073709551616")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
|
|
|
.stderr(predicate::str::contains(
|
2020-03-10 01:51:11 -04:00
|
|
|
"Please set your time delta to be at most",
|
2020-03-08 22:19:57 -04:00
|
|
|
));
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_small_delta_time() -> Result<(), Box<dyn std::error::Error>> {
|
2020-04-23 13:29:10 -04:00
|
|
|
Command::new(get_binary_location())
|
2020-03-08 22:19:57 -04:00
|
|
|
.arg("-d")
|
|
|
|
.arg("900")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
|
|
|
.stderr(predicate::str::contains(
|
2020-03-10 01:51:11 -04:00
|
|
|
"Please set your time delta to be at least",
|
2020-03-08 22:19:57 -04:00
|
|
|
));
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
|
2019-09-15 00:06:57 -04:00
|
|
|
#[test]
|
|
|
|
fn test_large_rate() -> Result<(), Box<dyn std::error::Error>> {
|
2020-04-23 13:29:10 -04:00
|
|
|
Command::new(get_binary_location())
|
2020-02-29 17:07:47 -05:00
|
|
|
.arg("-r")
|
|
|
|
.arg("18446744073709551616")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
|
|
|
.stderr(predicate::str::contains(
|
2020-03-08 21:56:30 -04:00
|
|
|
"Please set your update rate to be at most unsigned INT_MAX.",
|
2020-02-29 17:07:47 -05:00
|
|
|
));
|
|
|
|
Ok(())
|
2019-09-15 00:06:57 -04:00
|
|
|
}
|
|
|
|
|
2019-09-14 22:29:40 -04:00
|
|
|
#[test]
|
|
|
|
fn test_negative_rate() -> Result<(), Box<dyn std::error::Error>> {
|
2020-02-29 17:07:47 -05:00
|
|
|
// This test should auto fail due to how clap works
|
2020-04-23 13:29:10 -04:00
|
|
|
Command::new(get_binary_location())
|
2020-02-29 17:07:47 -05:00
|
|
|
.arg("-r")
|
|
|
|
.arg("-1000")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
|
|
|
.stderr(predicate::str::contains(
|
|
|
|
"wasn't expected, or isn't valid in this context",
|
|
|
|
));
|
2019-09-14 22:29:40 -04:00
|
|
|
|
2020-02-29 17:07:47 -05:00
|
|
|
Ok(())
|
2019-09-14 22:29:40 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_invalid_rate() -> Result<(), Box<dyn std::error::Error>> {
|
2020-04-23 13:29:10 -04:00
|
|
|
Command::new(get_binary_location())
|
2020-02-29 17:07:47 -05:00
|
|
|
.arg("-r")
|
|
|
|
.arg("100-1000")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
|
|
|
.stderr(predicate::str::contains("invalid digit"));
|
2019-09-14 22:29:40 -04:00
|
|
|
|
2020-02-29 17:07:47 -05:00
|
|
|
Ok(())
|
2019-09-14 22:29:40 -04:00
|
|
|
}
|
2020-03-03 01:02:54 -05:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_conflicting_temps() -> Result<(), Box<dyn std::error::Error>> {
|
2020-04-23 13:29:10 -04:00
|
|
|
Command::new(get_binary_location())
|
2020-03-03 01:02:54 -05:00
|
|
|
.arg("-c")
|
|
|
|
.arg("-f")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
|
|
|
.stderr(predicate::str::contains(
|
|
|
|
"cannot be used with one or more of the other specified arguments",
|
|
|
|
));
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
2020-04-01 20:31:43 -04:00
|
|
|
fn test_invalid_default_widget_1() -> Result<(), Box<dyn std::error::Error>> {
|
2020-04-23 13:29:10 -04:00
|
|
|
Command::new(get_binary_location())
|
2020-04-01 20:31:43 -04:00
|
|
|
.arg("--default_widget_type")
|
|
|
|
.arg("fake_widget")
|
|
|
|
.assert()
|
|
|
|
.failure()
|
2020-04-23 15:33:51 -04:00
|
|
|
.stderr(predicate::str::contains("invalid widget type"));
|
2020-04-01 20:31:43 -04:00
|
|
|
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_invalid_default_widget_2() -> Result<(), Box<dyn std::error::Error>> {
|
2020-04-23 13:29:10 -04:00
|
|
|
Command::new(get_binary_location())
|
2020-04-01 20:31:43 -04:00
|
|
|
.arg("--default_widget_type")
|
|
|
|
.arg("cpu")
|
|
|
|
.arg("--default_widget_count")
|
|
|
|
.arg("18446744073709551616")
|
2020-03-03 01:02:54 -05:00
|
|
|
.assert()
|
|
|
|
.failure()
|
|
|
|
.stderr(predicate::str::contains(
|
2020-04-01 20:31:43 -04:00
|
|
|
"Please set your widget count to be at most unsigned INT_MAX",
|
2020-03-03 01:02:54 -05:00
|
|
|
));
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
}
|