From 9158ffc24661e316327063705194c1fee3d9984c Mon Sep 17 00:00:00 2001 From: Sebastian Thiel Date: Thu, 2 Nov 2023 09:25:25 +0100 Subject: [PATCH] Add another failing gix-url test-case found by the fuzzer. It overflows some number in Debug mode. --- .../fixtures/fuzzed/very-long-abort2.url | 1 + gix-url/tests/fuzzed.rs | 26 ++++++++++--------- 2 files changed, 15 insertions(+), 12 deletions(-) create mode 100644 gix-url/tests/fixtures/fuzzed/very-long-abort2.url diff --git a/gix-url/tests/fixtures/fuzzed/very-long-abort2.url b/gix-url/tests/fixtures/fuzzed/very-long-abort2.url new file mode 100644 index 00000000000..3a98ea136ae --- /dev/null +++ b/gix-url/tests/fixtures/fuzzed/very-long-abort2.url @@ -0,0 +1 @@ +ws:// . ݆ 􊘵 %55 . / \ No newline at end of file diff --git a/gix-url/tests/fuzzed.rs b/gix-url/tests/fuzzed.rs index b8c5ac43bea..08fb8c5350e 100644 --- a/gix-url/tests/fuzzed.rs +++ b/gix-url/tests/fuzzed.rs @@ -5,18 +5,20 @@ use std::time::Duration; #[test] #[cfg_attr(debug_assertions, ignore = "fails due to integer overflow")] fn abort_unfixed_in_debug_mode() { - let name = "very-long-abort"; - let base = Path::new("tests").join("fixtures").join("fuzzed"); - let location = base.join(Path::new(name).with_extension("url")); - let url = std::fs::read(&location).unwrap(); - let start = std::time::Instant::now(); - gix_url::parse(url.as_bstr()).ok(); - assert!( - start.elapsed() < Duration::from_millis(100), - "URL at '{}' parsed too slowly, took {:.00}s", - location.display(), - start.elapsed().as_secs_f32() - ); + for name in ["very-long-abort2", "very-long-abort"] { + let base = Path::new("tests").join("fixtures").join("fuzzed"); + let location = base.join(Path::new(name).with_extension("url")); + let url = std::fs::read(&location).unwrap(); + let start = std::time::Instant::now(); + dbg!(name); + gix_url::parse(url.as_bstr()).ok(); + assert!( + start.elapsed() < Duration::from_millis(100), + "URL at '{}' parsed too slowly, took {:.00}s", + location.display(), + start.elapsed().as_secs_f32() + ); + } } #[test]