diff options
| author | Nixon Enraght-Moony <nixon.emoony@gmail.com> | 2021-02-26 22:55:28 +0000 |
|---|---|---|
| committer | Nixon Enraght-Moony <nixon.emoony@gmail.com> | 2021-03-10 22:06:05 +0000 |
| commit | 5f24798b9e228438973a8abeee1a2d5ea016f335 (patch) | |
| tree | d6dc7d77e8e3035dd9940c4899d3716acce3e981 | |
| parent | 9925ecb3928417b4401e81a2a7cde6de114aa26f (diff) | |
| download | rust-5f24798b9e228438973a8abeee1a2d5ea016f335.tar.gz rust-5f24798b9e228438973a8abeee1a2d5ea016f335.zip | |
Improve some jsondocck errors
| -rw-r--r-- | src/tools/jsondocck/src/main.rs | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/src/tools/jsondocck/src/main.rs b/src/tools/jsondocck/src/main.rs index 5020a4917a0..bcb3f6922ef 100644 --- a/src/tools/jsondocck/src/main.rs +++ b/src/tools/jsondocck/src/main.rs @@ -205,7 +205,21 @@ fn check_command(command: Command, cache: &mut Cache) -> Result<(), CkError> { let val = cache.get_value(&command.args[0])?; let results = select(&val, &command.args[1]).unwrap(); let pat = string_to_value(&command.args[2], cache); - results.contains(&pat.as_ref()) + let has = results.contains(&pat.as_ref()); + // Give better error for when @has check fails + if !command.negated && !has { + return Err(CkError::FailedCheck( + format!( + "{} matched to {:?} but didn't have {:?}", + &command.args[1], + results, + pat.as_ref() + ), + command, + )); + } else { + has + } } _ => unreachable!(), } @@ -233,7 +247,13 @@ fn check_command(command: Command, cache: &mut Cache) -> Result<(), CkError> { assert_eq!(command.args[1], "=", "Expected an `=`"); let val = cache.get_value(&command.args[2])?; let results = select(&val, &command.args[3]).unwrap(); - assert_eq!(results.len(), 1); + assert_eq!( + results.len(), + 1, + "Didn't get 1 result for `{}`: got {:?}", + command.args[3], + results + ); match results.len() { 0 => false, 1 => { |
