test_utils.rs 902 B

123456789101112131415161718192021
  1. pub(crate) macro check_err($parse: expr, $error: pat, $remains: expr) {
  2. match $parse {
  3. Ok(result) => panic!("Expected Err, got {:#?}", result),
  4. Err((remains, $error)) if *remains == *$remains => (),
  5. Err((remains, $error)) => {
  6. panic!("Correct error, incorrect stream returned: {:x?}", remains)
  7. }
  8. Err((_, err)) => panic!("Got wrong error: {:?}", err),
  9. }
  10. }
  11. pub(crate) macro check_ok($parse: expr, $expected: expr, $remains: expr) {
  12. match $parse {
  13. Ok((remains, result)) if remains == *$remains && result == $expected => (),
  14. Ok((remains, result)) if result == $expected => {
  15. panic!("Correct result, incorrect slice returned: {:x?}", remains)
  16. }
  17. Ok(result) => panic!("Successfully parsed Ok, but it was wrong: {:#?}", result),
  18. Err((_, err)) => panic!("Expected Ok, got {:#?}", err),
  19. }
  20. }