From 564a191ca71cdd5b02c40bd532825127baedb3bb Mon Sep 17 00:00:00 2001 From: Ed Page Date: Tue, 21 Jan 2025 16:26:37 -0600 Subject: [PATCH 1/2] test: Switch to raw snapshots --- src/ascii/tests.rs | 277 ++++++++++++++++++++++++++++++++---- src/binary/tests.rs | 217 ++++++++++++++++++++++++++++ src/combinator/tests.rs | 155 ++++++++++++++++++++ src/macros/tests.rs | 20 ++- src/parser.rs | 10 ++ src/token/tests.rs | 133 +++++++++++++++++ tests/testsuite/float.rs | 9 ++ tests/testsuite/issues.rs | 19 +++ tests/testsuite/overflow.rs | 10 ++ tests/testsuite/utf8.rs | 31 ++++ 10 files changed, 852 insertions(+), 29 deletions(-) diff --git a/src/ascii/tests.rs b/src/ascii/tests.rs index d346c18a..8529bd20 100644 --- a/src/ascii/tests.rs +++ b/src/ascii/tests.rs @@ -1,4 +1,5 @@ use super::*; +use snapbox::prelude::*; use snapbox::str; mod complete { @@ -41,6 +42,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( alpha1.parse_peek(b), @@ -60,6 +62,7 @@ Err( ) "#]] + .raw() ); assert_parse!( alpha1.parse_peek(c), @@ -78,6 +81,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( alpha1.parse_peek(d), @@ -98,6 +102,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(a), @@ -117,6 +122,7 @@ Err( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(b), @@ -134,6 +140,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(c), @@ -153,6 +160,7 @@ Err( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(d), @@ -174,6 +182,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(a), @@ -191,6 +200,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(b), @@ -208,6 +218,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(c), @@ -225,6 +236,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(d), @@ -245,6 +257,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(e), @@ -261,6 +274,7 @@ Err( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(a), @@ -280,6 +294,7 @@ Err( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(b), @@ -297,6 +312,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(c), @@ -316,6 +332,7 @@ Err( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(d), @@ -337,6 +354,7 @@ Err( ) "#]] + .raw() ); assert_parse!( alphanumeric1.parse_peek(a), @@ -354,6 +372,7 @@ Ok( ) "#]] + .raw() ); //assert_parse!(fix_error!(b,(), alphanumeric), str![]); assert_parse!( @@ -372,6 +391,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( alphanumeric1.parse_peek(d), @@ -392,6 +412,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( space1.parse_peek(e), @@ -406,6 +427,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( space1.parse_peek(f), @@ -422,6 +444,7 @@ Ok( ) "#]] + .raw() ); } @@ -444,6 +467,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( alpha1.parse_peek(b), @@ -458,6 +482,7 @@ Err( ) "#]] + .raw() ); assert_parse!( alpha1.parse_peek(c), @@ -470,6 +495,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( alpha1.parse_peek(d), @@ -482,6 +508,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(a), @@ -496,6 +523,7 @@ Err( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(b), @@ -508,6 +536,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(c), @@ -522,6 +551,7 @@ Err( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(d), @@ -536,6 +566,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(a), @@ -548,6 +579,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(b), @@ -560,6 +592,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(c), @@ -572,6 +605,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(d), @@ -584,6 +618,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(e), @@ -598,6 +633,7 @@ Err( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(a), @@ -612,6 +648,7 @@ Err( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(b), @@ -624,6 +661,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(c), @@ -638,6 +676,7 @@ Err( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(d), @@ -652,6 +691,7 @@ Err( ) "#]] + .raw() ); assert_parse!( alphanumeric1.parse_peek(a), @@ -664,6 +704,7 @@ Ok( ) "#]] + .raw() ); //assert_parse!(fix_error!(b,(), alphanumeric), str![]); assert_parse!( @@ -677,6 +718,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( alphanumeric1.parse_peek(d), @@ -689,6 +731,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( space1.parse_peek(e), @@ -701,6 +744,7 @@ Ok( ) "#]] + .raw() ); } @@ -785,6 +829,7 @@ Ok( ) "#]] + .raw() ); let b: &[u8] = b"ab12cd\nefgh\nijkl"; @@ -817,6 +862,7 @@ Ok( ) "#]] + .raw() ); let c: &[u8] = b"ab12cd\r\nefgh\nijkl"; @@ -850,6 +896,7 @@ Ok( ) "#]] + .raw() ); let d: &[u8] = b"ab12cd"; @@ -871,6 +918,7 @@ Ok( ) "#]] + .raw() ); } @@ -883,13 +931,14 @@ Ok( Err( Backtrack( InputError { - input: "/rÂßÇáƒƭèř", + input: "\rÂßÇáƒƭèř", kind: Literal, }, ), ) "#]] + .raw() ); let g2: &str = "ab12cd"; @@ -904,6 +953,7 @@ Ok( ) "#]] + .raw() ); } @@ -946,6 +996,7 @@ Ok( ) "#]] + .raw() ); let i = &b"g"[..]; @@ -964,6 +1015,7 @@ Err( ) "#]] + .raw() ); let i = &b"G"[..]; @@ -982,6 +1034,7 @@ Err( ) "#]] + .raw() ); assert!(AsChar::is_hex_digit(b'0')); @@ -1023,6 +1076,7 @@ Ok( ) "#]] + .raw() ); let i = &b"8"[..]; @@ -1041,6 +1095,7 @@ Err( ) "#]] + .raw() ); assert!(AsChar::is_oct_digit(b'0')); @@ -1084,6 +1139,7 @@ Ok( ) "#]] + .raw() ); } @@ -1115,6 +1171,7 @@ Ok( ) "#]] + .raw() ); } @@ -1136,6 +1193,7 @@ Ok( ) "#]] + .raw() ); } @@ -1156,6 +1214,7 @@ Ok( ) "#]] + .raw() ); } @@ -1177,6 +1236,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( crlf.parse_peek(&b"\r"[..]), @@ -1193,6 +1253,7 @@ Err( ) "#]] + .raw() ); assert_parse!( crlf.parse_peek(&b"\ra"[..]), @@ -1210,6 +1271,7 @@ Err( ) "#]] + .raw() ); assert_parse!( @@ -1218,11 +1280,12 @@ Err( Ok( ( "a", - "/r/n", + "\r\n", ), ) "#]] + .raw() ); assert_parse!( crlf.parse_peek("\r"), @@ -1230,13 +1293,14 @@ Ok( Err( Backtrack( InputError { - input: "/r", + input: "\r", kind: Literal, }, ), ) "#]] + .raw() ); assert_parse!( crlf.parse_peek("\ra"), @@ -1244,13 +1308,14 @@ Err( Err( Backtrack( InputError { - input: "/ra", + input: "\ra", kind: Literal, }, ), ) "#]] + .raw() ); } @@ -1271,6 +1336,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( line_ending.parse_peek(&b"\r\na"[..]), @@ -1288,6 +1354,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( line_ending.parse_peek(&b"\r"[..]), @@ -1304,6 +1371,7 @@ Err( ) "#]] + .raw() ); assert_parse!( line_ending.parse_peek(&b"\ra"[..]), @@ -1321,6 +1389,7 @@ Err( ) "#]] + .raw() ); assert_parse!( @@ -1329,11 +1398,12 @@ Err( Ok( ( "a", - "/n", + "\n", ), ) "#]] + .raw() ); assert_parse!( line_ending.parse_peek("\r\na"), @@ -1341,11 +1411,12 @@ Ok( Ok( ( "a", - "/r/n", + "\r\n", ), ) "#]] + .raw() ); assert_parse!( line_ending.parse_peek("\r"), @@ -1353,13 +1424,14 @@ Ok( Err( Backtrack( InputError { - input: "/r", + input: "\r", kind: Literal, }, ), ) "#]] + .raw() ); assert_parse!( line_ending.parse_peek("\ra"), @@ -1367,13 +1439,14 @@ Err( Err( Backtrack( InputError { - input: "/ra", + input: "\ra", kind: Literal, }, ), ) "#]] + .raw() ); } @@ -1398,6 +1471,7 @@ Err( ) "#]] + .raw() ); assert_parse!( dec_u32.parse_peek(&b"0;"[..]), @@ -1412,6 +1486,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( dec_u32.parse_peek(&b"1;"[..]), @@ -1426,6 +1501,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( dec_u32.parse_peek(&b"32;"[..]), @@ -1440,6 +1516,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( dec_u32.parse_peek(&b"1000000000000000000000;"[..]), // overflow @@ -1478,6 +1555,7 @@ Err( ) "#]] + .raw() ); } @@ -1502,6 +1580,7 @@ Err( ) "#]] + .raw() ); assert_parse!( dec_i32.parse_peek(&b"0;"[..]), @@ -1516,6 +1595,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( dec_i32.parse_peek(&b"1;"[..]), @@ -1530,6 +1610,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( dec_i32.parse_peek(&b"32;"[..]), @@ -1544,6 +1625,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( dec_i32.parse_peek(&b"-0;"[..]), @@ -1562,6 +1644,7 @@ Err( ) "#]] + .raw() ); assert_parse!( dec_i32.parse_peek(&b"-1;"[..]), @@ -1576,6 +1659,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( dec_i32.parse_peek(&b"-32;"[..]), @@ -1590,6 +1674,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( dec_i32.parse_peek(&b"1000000000000000000000;"[..]), // overflow @@ -1628,6 +1713,7 @@ Err( ) "#]] + .raw() ); } @@ -1652,6 +1738,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(&b"ff;"[..]), @@ -1666,6 +1753,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(&b"1be2;"[..]), @@ -1680,6 +1768,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(&b"c5a31be2;"[..]), @@ -1694,6 +1783,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(&b"C5A31be2;"[..]), @@ -1708,6 +1798,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(&b"00c5a31be2;"[..]), // overflow @@ -1734,6 +1825,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(&b"c5a31be201;"[..]), // overflow @@ -1760,6 +1852,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(&b"ffffffff;"[..]), @@ -1774,6 +1867,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(&b"ffffffffffffffff;"[..]), // overflow @@ -1806,6 +1900,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(&b"ffffffffffffffff"[..]), // overflow @@ -1837,6 +1932,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(&b"0x1be2;"[..]), @@ -1856,6 +1952,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(&b"12af"[..]), @@ -1868,6 +1965,7 @@ Ok( ) "#]] + .raw() ); } @@ -1945,6 +2043,7 @@ Err( ) "#]] + .raw() ); let nan_test_cases = ["nan", "NaN", "NAN"]; @@ -2081,6 +2180,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( esc.parse_peek(&b"ab\\\"cd;"[..]), @@ -2102,6 +2202,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( esc.parse_peek(&b"\\\"abcd;"[..]), @@ -2123,6 +2224,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( esc.parse_peek(&b"\\n;"[..]), @@ -2140,6 +2242,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( esc.parse_peek(&b"ab\\\"12"[..]), @@ -2160,6 +2263,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( esc.parse_peek(&b"AB\\"[..]), @@ -2174,6 +2278,7 @@ Err( ) "#]] + .raw() ); assert_parse!( esc.parse_peek(&b"AB\\A"[..]), @@ -2190,6 +2295,7 @@ Err( ) "#]] + .raw() ); fn esc2<'i>(i: &mut &'i [u8]) -> TestResult<&'i [u8], &'i [u8]> { @@ -2216,6 +2322,7 @@ Ok( ) "#]] + .raw() ); } @@ -2239,6 +2346,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( esc.parse_peek("ab\\\"cd;"), @@ -2246,11 +2354,12 @@ Ok( Ok( ( ";", - "ab///"cd", + "ab\\\"cd", ), ) "#]] + .raw() ); assert_parse!( esc.parse_peek("\\\"abcd;"), @@ -2258,11 +2367,12 @@ Ok( Ok( ( ";", - "///"abcd", + "\\\"abcd", ), ) "#]] + .raw() ); assert_parse!( esc.parse_peek("\\n;"), @@ -2270,11 +2380,12 @@ Ok( Ok( ( ";", - "//n", + "\\n", ), ) "#]] + .raw() ); assert_parse!( esc.parse_peek("ab\\\"12"), @@ -2282,11 +2393,12 @@ Ok( Ok( ( "12", - "ab///"", + "ab\\\"", ), ) "#]] + .raw() ); assert_parse!( esc.parse_peek("AB\\"), @@ -2301,6 +2413,7 @@ Err( ) "#]] + .raw() ); assert_parse!( esc.parse_peek("AB\\A"), @@ -2315,6 +2428,7 @@ Err( ) "#]] + .raw() ); fn esc2<'i>(i: &mut &'i str) -> TestResult<&'i str, &'i str> { @@ -2326,11 +2440,12 @@ Err( Ok( ( "nn34", - "12//n", + "12\\n", ), ) "#]] + .raw() ); fn esc3<'i>(i: &mut &'i str) -> TestResult<&'i str, &'i str> { @@ -2347,6 +2462,7 @@ Ok( ) "#]] + .raw() ); } @@ -2368,6 +2484,7 @@ Ok( ) "#]] + .raw() ); } @@ -2408,6 +2525,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( esc.parse_peek(&b"ab\\\"cd;"[..]), @@ -2417,11 +2535,12 @@ Ok( [ 59, ], - "ab/"cd", + "ab\"cd", ), ) "#]] + .raw() ); assert_parse!( esc.parse_peek(&b"\\\"abcd;"[..]), @@ -2431,11 +2550,12 @@ Ok( [ 59, ], - "/"abcd", + "\"abcd", ), ) "#]] + .raw() ); assert_parse!( esc.parse_peek(&b"\\n;"[..]), @@ -2445,11 +2565,12 @@ Ok( [ 59, ], - "/n", + "\n", ), ) "#]] + .raw() ); assert_parse!( esc.parse_peek(&b"ab\\\"12"[..]), @@ -2460,11 +2581,12 @@ Ok( 49, 50, ], - "ab/"", + "ab\"", ), ) "#]] + .raw() ); assert_parse!( esc.parse_peek(&b"AB\\"[..]), @@ -2479,6 +2601,7 @@ Err( ) "#]] + .raw() ); assert_parse!( esc.parse_peek(&b"AB\\A"[..]), @@ -2495,6 +2618,7 @@ Err( ) "#]] + .raw() ); fn esc2<'i>(i: &mut &'i [u8]) -> TestResult<&'i [u8], String> { @@ -2522,6 +2646,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( esc2.parse_peek(&b"abèDàEF;"[..]), @@ -2536,6 +2661,7 @@ Ok( ) "#]] + .raw() ); } @@ -2564,6 +2690,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( esc.parse_peek("ab\\\"cd;"), @@ -2571,11 +2698,12 @@ Ok( Ok( ( ";", - "ab/"cd", + "ab\"cd", ), ) "#]] + .raw() ); assert_parse!( esc.parse_peek("\\\"abcd;"), @@ -2583,11 +2711,12 @@ Ok( Ok( ( ";", - "/"abcd", + "\"abcd", ), ) "#]] + .raw() ); assert_parse!( esc.parse_peek("\\n;"), @@ -2595,11 +2724,12 @@ Ok( Ok( ( ";", - "/n", + "\n", ), ) "#]] + .raw() ); assert_parse!( esc.parse_peek("ab\\\"12"), @@ -2607,11 +2737,12 @@ Ok( Ok( ( "12", - "ab/"", + "ab\"", ), ) "#]] + .raw() ); assert_parse!( esc.parse_peek("AB\\"), @@ -2626,6 +2757,7 @@ Err( ) "#]] + .raw() ); assert_parse!( esc.parse_peek("AB\\A"), @@ -2640,6 +2772,7 @@ Err( ) "#]] + .raw() ); fn esc2<'i>(i: &mut &'i str) -> TestResult<&'i str, String> { @@ -2661,6 +2794,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( esc2.parse_peek("abèDàEF;"), @@ -2673,6 +2807,7 @@ Ok( ) "#]] + .raw() ); fn esc3<'i>(i: &mut &'i str) -> TestResult<&'i str, String> { @@ -2684,11 +2819,12 @@ Ok( Ok( ( "", - "a/0bc/n", + "a\0bc\n", ), ) "#]] + .raw() ); } @@ -2711,6 +2847,7 @@ Ok( ) "#]] + .raw() ); } } @@ -2743,6 +2880,7 @@ Err( ) "#]] + .raw() ); assert_parse!( alpha1.parse_peek(Partial::new(b)), @@ -2765,6 +2903,7 @@ Err( ) "#]] + .raw() ); assert_parse!( alpha1.parse_peek(Partial::new(c)), @@ -2786,6 +2925,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( alpha1.parse_peek(Partial::new(d)), @@ -2809,6 +2949,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(Partial::new(a)), @@ -2831,6 +2972,7 @@ Err( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(Partial::new(b)), @@ -2844,6 +2986,7 @@ Err( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(Partial::new(c)), @@ -2866,6 +3009,7 @@ Err( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(Partial::new(d)), @@ -2890,6 +3034,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(Partial::new(a)), @@ -2903,6 +3048,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(Partial::new(b)), @@ -2916,6 +3062,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(Partial::new(c)), @@ -2929,6 +3076,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(Partial::new(d)), @@ -2952,6 +3100,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(Partial::new(e)), @@ -2971,6 +3120,7 @@ Err( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(Partial::new(a)), @@ -2993,6 +3143,7 @@ Err( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(Partial::new(b)), @@ -3006,6 +3157,7 @@ Err( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(Partial::new(c)), @@ -3028,6 +3180,7 @@ Err( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(Partial::new(d)), @@ -3052,6 +3205,7 @@ Err( ) "#]] + .raw() ); assert_parse!( alphanumeric1.parse_peek(Partial::new(a)), @@ -3065,6 +3219,7 @@ Err( ) "#]] + .raw() ); //assert_parse!(fix_error!(b,(), alphanumeric1), str![]); assert_parse!( @@ -3079,6 +3234,7 @@ Err( ) "#]] + .raw() ); assert_parse!( alphanumeric1.parse_peek(Partial::new(d)), @@ -3102,6 +3258,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( space1.parse_peek(Partial::new(e)), @@ -3115,6 +3272,7 @@ Err( ) "#]] + .raw() ); assert_parse!( space1.parse_peek(Partial::new(f)), @@ -3134,6 +3292,7 @@ Ok( ) "#]] + .raw() ); } @@ -3157,6 +3316,7 @@ Err( ) "#]] + .raw() ); assert_parse!( alpha1.parse_peek(Partial::new(b)), @@ -3174,6 +3334,7 @@ Err( ) "#]] + .raw() ); assert_parse!( alpha1.parse_peek(Partial::new(c)), @@ -3189,6 +3350,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( alpha1.parse_peek(Partial::new(d)), @@ -3204,6 +3366,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(Partial::new(a)), @@ -3221,6 +3384,7 @@ Err( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(Partial::new(b)), @@ -3234,6 +3398,7 @@ Err( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(Partial::new(c)), @@ -3251,6 +3416,7 @@ Err( ) "#]] + .raw() ); assert_parse!( digit1.parse_peek(Partial::new(d)), @@ -3268,6 +3434,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(Partial::new(a)), @@ -3281,6 +3448,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(Partial::new(b)), @@ -3294,6 +3462,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(Partial::new(c)), @@ -3307,6 +3476,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(Partial::new(d)), @@ -3322,6 +3492,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_digit1.parse_peek(Partial::new(e)), @@ -3339,6 +3510,7 @@ Err( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(Partial::new(a)), @@ -3356,6 +3528,7 @@ Err( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(Partial::new(b)), @@ -3369,6 +3542,7 @@ Err( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(Partial::new(c)), @@ -3386,6 +3560,7 @@ Err( ) "#]] + .raw() ); assert_parse!( oct_digit1.parse_peek(Partial::new(d)), @@ -3403,6 +3578,7 @@ Err( ) "#]] + .raw() ); assert_parse!( alphanumeric1.parse_peek(Partial::new(a)), @@ -3416,6 +3592,7 @@ Err( ) "#]] + .raw() ); //assert_parse!(fix_error!(b,(), alphanumeric1), str![]); assert_parse!( @@ -3430,6 +3607,7 @@ Err( ) "#]] + .raw() ); assert_parse!( alphanumeric1.parse_peek(Partial::new(d)), @@ -3445,6 +3623,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( space1.parse_peek(Partial::new(e)), @@ -3458,6 +3637,7 @@ Err( ) "#]] + .raw() ); } @@ -3552,6 +3732,7 @@ Ok( ) "#]] + .raw() ); let b: &[u8] = b"ab12cd\nefgh\nijkl"; @@ -3587,6 +3768,7 @@ Ok( ) "#]] + .raw() ); let c: &[u8] = b"ab12cd\r\nefgh\nijkl"; @@ -3623,6 +3805,7 @@ Ok( ) "#]] + .raw() ); let d: &[u8] = b"ab12cd"; @@ -3636,6 +3819,7 @@ Err( ) "#]] + .raw() ); } @@ -3649,7 +3833,7 @@ Err( Backtrack( InputError { input: Partial { - input: "/rÂßÇáƒƭèř", + input: "\rÂßÇáƒƭèř", partial: true, }, kind: Literal, @@ -3658,6 +3842,7 @@ Err( ) "#]] + .raw() ); let g2: &str = "ab12cd"; @@ -3671,6 +3856,7 @@ Err( ) "#]] + .raw() ); } @@ -3716,6 +3902,7 @@ Ok( ) "#]] + .raw() ); let i = &b"g"[..]; @@ -3737,6 +3924,7 @@ Err( ) "#]] + .raw() ); let i = &b"G"[..]; @@ -3758,6 +3946,7 @@ Err( ) "#]] + .raw() ); assert!(AsChar::is_hex_digit(b'0')); @@ -3802,6 +3991,7 @@ Ok( ) "#]] + .raw() ); let i = &b"8"[..]; @@ -3823,6 +4013,7 @@ Err( ) "#]] + .raw() ); assert!(AsChar::is_oct_digit(b'0')); @@ -3871,6 +4062,7 @@ Ok( ) "#]] + .raw() ); } @@ -3907,6 +4099,7 @@ Ok( ) "#]] + .raw() ); } @@ -3931,6 +4124,7 @@ Ok( ) "#]] + .raw() ); } @@ -3954,6 +4148,7 @@ Ok( ) "#]] + .raw() ); } @@ -3978,6 +4173,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( crlf.parse_peek(Partial::new(&b"\r"[..])), @@ -3991,6 +4187,7 @@ Err( ) "#]] + .raw() ); assert_parse!( crlf.parse_peek(Partial::new(&b"\ra"[..])), @@ -4011,6 +4208,7 @@ Err( ) "#]] + .raw() ); assert_parse!( @@ -4022,11 +4220,12 @@ Ok( input: "a", partial: true, }, - "/r/n", + "\r\n", ), ) "#]] + .raw() ); assert_parse!( crlf.parse_peek(Partial::new("\r")), @@ -4040,6 +4239,7 @@ Err( ) "#]] + .raw() ); assert_parse!( crlf.parse_peek(Partial::new("\ra")), @@ -4048,7 +4248,7 @@ Err( Backtrack( InputError { input: Partial { - input: "/ra", + input: "\ra", partial: true, }, kind: Literal, @@ -4057,6 +4257,7 @@ Err( ) "#]] + .raw() ); } @@ -4080,6 +4281,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( line_ending.parse_peek(Partial::new(&b"\r\na"[..])), @@ -4100,6 +4302,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( line_ending.parse_peek(Partial::new(&b"\r"[..])), @@ -4113,6 +4316,7 @@ Err( ) "#]] + .raw() ); assert_parse!( line_ending.parse_peek(Partial::new(&b"\ra"[..])), @@ -4133,6 +4337,7 @@ Err( ) "#]] + .raw() ); assert_parse!( @@ -4144,11 +4349,12 @@ Ok( input: "a", partial: true, }, - "/n", + "\n", ), ) "#]] + .raw() ); assert_parse!( line_ending.parse_peek(Partial::new("\r\na")), @@ -4159,11 +4365,12 @@ Ok( input: "a", partial: true, }, - "/r/n", + "\r\n", ), ) "#]] + .raw() ); assert_parse!( line_ending.parse_peek(Partial::new("\r")), @@ -4177,6 +4384,7 @@ Err( ) "#]] + .raw() ); assert_parse!( line_ending.parse_peek(Partial::new("\ra")), @@ -4185,7 +4393,7 @@ Err( Backtrack( InputError { input: Partial { - input: "/ra", + input: "\ra", partial: true, }, kind: Literal, @@ -4194,6 +4402,7 @@ Err( ) "#]] + .raw() ); } @@ -4221,6 +4430,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(Partial::new(&b"ff;"[..])), @@ -4238,6 +4448,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(Partial::new(&b"1be2;"[..])), @@ -4255,6 +4466,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(Partial::new(&b"c5a31be2;"[..])), @@ -4272,6 +4484,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(Partial::new(&b"C5A31be2;"[..])), @@ -4289,6 +4502,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(Partial::new(&b"00c5a31be2;"[..])), // overflow @@ -4318,6 +4532,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(Partial::new(&b"c5a31be201;"[..])), // overflow @@ -4347,6 +4562,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(Partial::new(&b"ffffffff;"[..])), @@ -4364,6 +4580,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(Partial::new(&b"ffffffffffffffff;"[..])), // overflow @@ -4399,6 +4616,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(Partial::new(&b"ffffffffffffffff"[..])), // overflow @@ -4433,6 +4651,7 @@ Err( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(Partial::new(&b"0x1be2;"[..])), @@ -4455,6 +4674,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( hex_u32.parse_peek(Partial::new(&b"12af"[..])), @@ -4468,6 +4688,7 @@ Err( ) "#]] + .raw() ); } } diff --git a/src/binary/tests.rs b/src/binary/tests.rs index f7e1ddf2..0e7321e3 100644 --- a/src/binary/tests.rs +++ b/src/binary/tests.rs @@ -1,5 +1,6 @@ use super::*; +use snapbox::prelude::*; use snapbox::str; use crate::prelude::*; @@ -20,6 +21,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( i8.parse_peek(&[0x7f][..]), @@ -32,6 +34,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( i8.parse_peek(&[0xff][..]), @@ -44,6 +47,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( i8.parse_peek(&[0x80][..]), @@ -56,6 +60,7 @@ Ok( ) "#]] + .raw() ); } @@ -72,6 +77,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i8.parse_peek(&[0x7f][..]), @@ -84,6 +90,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i8.parse_peek(&[0xff][..]), @@ -96,6 +103,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i8.parse_peek(&[0x80][..]), @@ -108,6 +116,7 @@ Ok( ) "#]] + .raw() ); } @@ -124,6 +133,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i16.parse_peek(&[0x7f, 0xff][..]), @@ -136,6 +146,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i16.parse_peek(&[0xff, 0xff][..]), @@ -148,6 +159,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i16.parse_peek(&[0x80, 0x00][..]), @@ -160,6 +172,7 @@ Ok( ) "#]] + .raw() ); } @@ -176,6 +189,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_u24.parse_peek(&[0x00, 0xFF, 0xFF][..]), @@ -188,6 +202,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_u24.parse_peek(&[0x12, 0x34, 0x56][..]), @@ -200,6 +215,7 @@ Ok( ) "#]] + .raw() ); } @@ -216,6 +232,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i24.parse_peek(&[0xFF, 0x00, 0x00][..]), @@ -228,6 +245,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i24.parse_peek(&[0xED, 0xCB, 0xAA][..]), @@ -240,6 +258,7 @@ Ok( ) "#]] + .raw() ); } @@ -256,6 +275,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i32.parse_peek(&[0x7f, 0xff, 0xff, 0xff][..]), @@ -268,6 +288,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i32.parse_peek(&[0xff, 0xff, 0xff, 0xff][..]), @@ -280,6 +301,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i32.parse_peek(&[0x80, 0x00, 0x00, 0x00][..]), @@ -292,6 +314,7 @@ Ok( ) "#]] + .raw() ); } @@ -308,6 +331,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i64.parse_peek(&[0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff][..]), @@ -320,6 +344,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i64.parse_peek(&[0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff][..]), @@ -332,6 +357,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i64.parse_peek(&[0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00][..]), @@ -344,6 +370,7 @@ Ok( ) "#]] + .raw() ); } @@ -365,6 +392,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek( @@ -382,6 +410,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek( @@ -399,6 +428,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek( @@ -416,6 +446,7 @@ Ok( ) "#]] + .raw() ); } @@ -432,6 +463,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i8.parse_peek(&[0x7f][..]), @@ -444,6 +476,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i8.parse_peek(&[0xff][..]), @@ -456,6 +489,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i8.parse_peek(&[0x80][..]), @@ -468,6 +502,7 @@ Ok( ) "#]] + .raw() ); } @@ -484,6 +519,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i16.parse_peek(&[0xff, 0x7f][..]), @@ -496,6 +532,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i16.parse_peek(&[0xff, 0xff][..]), @@ -508,6 +545,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i16.parse_peek(&[0x00, 0x80][..]), @@ -520,6 +558,7 @@ Ok( ) "#]] + .raw() ); } @@ -536,6 +575,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_u24.parse_peek(&[0xFF, 0xFF, 0x00][..]), @@ -548,6 +588,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_u24.parse_peek(&[0x56, 0x34, 0x12][..]), @@ -560,6 +601,7 @@ Ok( ) "#]] + .raw() ); } @@ -576,6 +618,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i24.parse_peek(&[0x00, 0x00, 0xFF][..]), @@ -588,6 +631,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i24.parse_peek(&[0xAA, 0xCB, 0xED][..]), @@ -600,6 +644,7 @@ Ok( ) "#]] + .raw() ); } @@ -616,6 +661,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i32.parse_peek(&[0xff, 0xff, 0xff, 0x7f][..]), @@ -628,6 +674,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i32.parse_peek(&[0xff, 0xff, 0xff, 0xff][..]), @@ -640,6 +687,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i32.parse_peek(&[0x00, 0x00, 0x00, 0x80][..]), @@ -652,6 +700,7 @@ Ok( ) "#]] + .raw() ); } @@ -668,6 +717,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i64.parse_peek(&[0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f][..]), @@ -680,6 +730,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i64.parse_peek(&[0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff][..]), @@ -692,6 +743,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i64.parse_peek(&[0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80][..]), @@ -704,6 +756,7 @@ Ok( ) "#]] + .raw() ); } @@ -725,6 +778,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i128.parse_peek( @@ -742,6 +796,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i128.parse_peek( @@ -759,6 +814,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i128.parse_peek( @@ -776,6 +832,7 @@ Ok( ) "#]] + .raw() ); } @@ -792,6 +849,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_f32.parse_peek(&[0x4d, 0x31, 0x1f, 0xd8][..]), @@ -804,6 +862,7 @@ Ok( ) "#]] + .raw() ); } @@ -820,6 +879,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_f64.parse_peek(&[0x41, 0xa6, 0x23, 0xfb, 0x10, 0x00, 0x00, 0x00][..]), @@ -832,6 +892,7 @@ Ok( ) "#]] + .raw() ); } @@ -848,6 +909,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_f32.parse_peek(&[0xd8, 0x1f, 0x31, 0x4d][..]), @@ -860,6 +922,7 @@ Ok( ) "#]] + .raw() ); } @@ -876,6 +939,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_f64.parse_peek(&[0x00, 0x00, 0x00, 0x10, 0xfb, 0x23, 0xa6, 0x41][..]), @@ -888,6 +952,7 @@ Ok( ) "#]] + .raw() ); } @@ -912,6 +977,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_tst16.parse_peek(&[0x80, 0x00]), @@ -924,6 +990,7 @@ Ok( ) "#]] + .raw() ); fn be_tst32<'i>(i: &mut &'i [u8]) -> TestResult<&'i [u8], u32> { @@ -943,6 +1010,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_tst32.parse_peek(&[0x12, 0x00, 0x60, 0x00]), @@ -955,6 +1023,7 @@ Ok( ) "#]] + .raw() ); fn be_tst64<'i>(i: &mut &'i [u8]) -> TestResult<&'i [u8], u64> { @@ -974,6 +1043,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_tst64.parse_peek(&[0x12, 0x00, 0x60, 0x00, 0x12, 0x00, 0x80, 0x00]), @@ -986,6 +1056,7 @@ Ok( ) "#]] + .raw() ); fn be_tsti16<'i>(i: &mut &'i [u8]) -> TestResult<&'i [u8], i16> { @@ -1005,6 +1076,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_tsti16.parse_peek(&[0x00, 0x80]), @@ -1017,6 +1089,7 @@ Ok( ) "#]] + .raw() ); fn be_tsti32<'i>(i: &mut &'i [u8]) -> TestResult<&'i [u8], i32> { @@ -1036,6 +1109,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_tsti32.parse_peek(&[0x00, 0x12, 0x60, 0x00]), @@ -1048,6 +1122,7 @@ Ok( ) "#]] + .raw() ); fn be_tsti64<'i>(i: &mut &'i [u8]) -> TestResult<&'i [u8], i64> { @@ -1067,6 +1142,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_tsti64.parse_peek(&[0x00, 0xFF, 0x60, 0x00, 0x12, 0x00, 0x80, 0x00]), @@ -1079,6 +1155,7 @@ Ok( ) "#]] + .raw() ); } } @@ -1111,6 +1188,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i8.parse_peek(Partial::new(&[0x7f][..])), @@ -1126,6 +1204,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i8.parse_peek(Partial::new(&[0xff][..])), @@ -1141,6 +1220,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i8.parse_peek(Partial::new(&[0x80][..])), @@ -1156,6 +1236,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i8.parse_peek(Partial::new(&[][..])), @@ -1169,6 +1250,7 @@ Err( ) "#]] + .raw() ); } @@ -1188,6 +1270,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i16.parse_peek(Partial::new(&[0x7f, 0xff][..])), @@ -1203,6 +1286,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i16.parse_peek(Partial::new(&[0xff, 0xff][..])), @@ -1218,6 +1302,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i16.parse_peek(Partial::new(&[0x80, 0x00][..])), @@ -1233,6 +1318,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i16.parse_peek(Partial::new(&[][..])), @@ -1246,6 +1332,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i16.parse_peek(Partial::new(&[0x00][..])), @@ -1259,6 +1346,7 @@ Err( ) "#]] + .raw() ); } @@ -1278,6 +1366,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_u24.parse_peek(Partial::new(&[0x00, 0xFF, 0xFF][..])), @@ -1293,6 +1382,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_u24.parse_peek(Partial::new(&[0x12, 0x34, 0x56][..])), @@ -1308,6 +1398,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_u24.parse_peek(Partial::new(&[][..])), @@ -1321,6 +1412,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_u24.parse_peek(Partial::new(&[0x00][..])), @@ -1334,6 +1426,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_u24.parse_peek(Partial::new(&[0x00, 0x00][..])), @@ -1347,6 +1440,7 @@ Err( ) "#]] + .raw() ); } @@ -1366,6 +1460,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i24.parse_peek(Partial::new(&[0xFF, 0x00, 0x00][..])), @@ -1381,6 +1476,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i24.parse_peek(Partial::new(&[0xED, 0xCB, 0xAA][..])), @@ -1396,6 +1492,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i24.parse_peek(Partial::new(&[][..])), @@ -1409,6 +1506,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i24.parse_peek(Partial::new(&[0x00][..])), @@ -1422,6 +1520,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i24.parse_peek(Partial::new(&[0x00, 0x00][..])), @@ -1435,6 +1534,7 @@ Err( ) "#]] + .raw() ); } @@ -1454,6 +1554,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i32.parse_peek(Partial::new(&[0x7f, 0xff, 0xff, 0xff][..])), @@ -1469,6 +1570,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i32.parse_peek(Partial::new(&[0xff, 0xff, 0xff, 0xff][..])), @@ -1484,6 +1586,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i32.parse_peek(Partial::new(&[0x80, 0x00, 0x00, 0x00][..])), @@ -1499,6 +1602,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i32.parse_peek(Partial::new(&[][..])), @@ -1512,6 +1616,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i32.parse_peek(Partial::new(&[0x00][..])), @@ -1525,6 +1630,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i32.parse_peek(Partial::new(&[0x00, 0x00][..])), @@ -1538,6 +1644,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i32.parse_peek(Partial::new(&[0x00, 0x00, 0x00][..])), @@ -1551,6 +1658,7 @@ Err( ) "#]] + .raw() ); } @@ -1572,6 +1680,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i64.parse_peek(Partial::new( @@ -1589,6 +1698,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i64.parse_peek(Partial::new( @@ -1606,6 +1716,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i64.parse_peek(Partial::new( @@ -1623,6 +1734,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i64.parse_peek(Partial::new(&[][..])), @@ -1636,6 +1748,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i64.parse_peek(Partial::new(&[0x00][..])), @@ -1649,6 +1762,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i64.parse_peek(Partial::new(&[0x00, 0x00][..])), @@ -1662,6 +1776,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i64.parse_peek(Partial::new(&[0x00, 0x00, 0x00][..])), @@ -1675,6 +1790,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i64.parse_peek(Partial::new(&[0x00, 0x00, 0x00, 0x00][..])), @@ -1688,6 +1804,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i64.parse_peek(Partial::new(&[0x00, 0x00, 0x00, 0x00, 0x00][..])), @@ -1701,6 +1818,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i64.parse_peek(Partial::new(&[0x00, 0x00, 0x00, 0x00, 0x00, 0x00][..])), @@ -1714,6 +1832,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i64.parse_peek(Partial::new( @@ -1729,6 +1848,7 @@ Err( ) "#]] + .raw() ); } @@ -1753,6 +1873,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new( @@ -1773,6 +1894,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new( @@ -1793,6 +1915,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new( @@ -1813,6 +1936,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new(&[][..])), @@ -1826,6 +1950,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new(&[0x00][..])), @@ -1839,6 +1964,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new(&[0x00, 0x00][..])), @@ -1852,6 +1978,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new(&[0x00, 0x00, 0x00][..])), @@ -1865,6 +1992,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new(&[0x00, 0x00, 0x00, 0x00][..])), @@ -1878,6 +2006,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new(&[0x00, 0x00, 0x00, 0x00, 0x00][..])), @@ -1891,6 +2020,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new(&[0x00, 0x00, 0x00, 0x00, 0x00, 0x00][..])), @@ -1904,6 +2034,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new( @@ -1919,6 +2050,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new( @@ -1934,6 +2066,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new( @@ -1949,6 +2082,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new( @@ -1964,6 +2098,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new( @@ -1979,6 +2114,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new( @@ -1994,6 +2130,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new( @@ -2009,6 +2146,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new( @@ -2027,6 +2165,7 @@ Err( ) "#]] + .raw() ); assert_parse!( be_i128.parse_peek(Partial::new( @@ -2045,6 +2184,7 @@ Err( ) "#]] + .raw() ); } @@ -2064,6 +2204,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_u16.parse_peek(Partial::new(&[b'a', b'b'][..])), @@ -2079,6 +2220,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_u16.parse_peek(Partial::new(&[0x01][..])), @@ -2092,6 +2234,7 @@ Err( ) "#]] + .raw() ); } @@ -2111,6 +2254,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i8.parse_peek(Partial::new(&[0x7f][..])), @@ -2126,6 +2270,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i8.parse_peek(Partial::new(&[0xff][..])), @@ -2141,6 +2286,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i8.parse_peek(Partial::new(&[0x80][..])), @@ -2156,6 +2302,7 @@ Ok( ) "#]] + .raw() ); } @@ -2175,6 +2322,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i16.parse_peek(Partial::new(&[0xff, 0x7f][..])), @@ -2190,6 +2338,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i16.parse_peek(Partial::new(&[0xff, 0xff][..])), @@ -2205,6 +2354,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i16.parse_peek(Partial::new(&[0x00, 0x80][..])), @@ -2220,6 +2370,7 @@ Ok( ) "#]] + .raw() ); } @@ -2239,6 +2390,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_u24.parse_peek(Partial::new(&[0xFF, 0xFF, 0x00][..])), @@ -2254,6 +2406,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_u24.parse_peek(Partial::new(&[0x56, 0x34, 0x12][..])), @@ -2269,6 +2422,7 @@ Ok( ) "#]] + .raw() ); } @@ -2288,6 +2442,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i24.parse_peek(Partial::new(&[0x00, 0x00, 0xFF][..])), @@ -2303,6 +2458,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i24.parse_peek(Partial::new(&[0xAA, 0xCB, 0xED][..])), @@ -2318,6 +2474,7 @@ Ok( ) "#]] + .raw() ); } @@ -2337,6 +2494,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_u32.parse_peek(Partial::new(&[b'a', b'b', b'c', b'd'][..])), @@ -2352,6 +2510,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_u32.parse_peek(Partial::new(&[0x01][..])), @@ -2365,6 +2524,7 @@ Err( ) "#]] + .raw() ); } @@ -2384,6 +2544,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i32.parse_peek(Partial::new(&[0xff, 0xff, 0xff, 0x7f][..])), @@ -2399,6 +2560,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i32.parse_peek(Partial::new(&[0xff, 0xff, 0xff, 0xff][..])), @@ -2414,6 +2576,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i32.parse_peek(Partial::new(&[0x00, 0x00, 0x00, 0x80][..])), @@ -2429,6 +2592,7 @@ Ok( ) "#]] + .raw() ); } @@ -2450,6 +2614,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i64.parse_peek(Partial::new( @@ -2467,6 +2632,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i64.parse_peek(Partial::new( @@ -2484,6 +2650,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i64.parse_peek(Partial::new( @@ -2501,6 +2668,7 @@ Ok( ) "#]] + .raw() ); } @@ -2525,6 +2693,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i128.parse_peek(Partial::new( @@ -2545,6 +2714,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i128.parse_peek(Partial::new( @@ -2565,6 +2735,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_i128.parse_peek(Partial::new( @@ -2585,6 +2756,7 @@ Ok( ) "#]] + .raw() ); } @@ -2604,6 +2776,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_f32.parse_peek(Partial::new(&[0x4d, 0x31, 0x1f, 0xd8][..])), @@ -2619,6 +2792,7 @@ Ok( ) "#]] + .raw() ); } @@ -2640,6 +2814,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( be_f64.parse_peek(Partial::new( @@ -2657,6 +2832,7 @@ Ok( ) "#]] + .raw() ); } @@ -2676,6 +2852,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_f32.parse_peek(Partial::new(&[0xd8, 0x1f, 0x31, 0x4d][..])), @@ -2691,6 +2868,7 @@ Ok( ) "#]] + .raw() ); } @@ -2712,6 +2890,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_f64.parse_peek(Partial::new( @@ -2729,6 +2908,7 @@ Ok( ) "#]] + .raw() ); } @@ -2756,6 +2936,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_tst16.parse_peek(Partial::new(&[0x80, 0x00])), @@ -2771,6 +2952,7 @@ Ok( ) "#]] + .raw() ); fn be_tst32<'i>(i: &mut Partial<&'i [u8]>) -> TestResult, u32> { @@ -2793,6 +2975,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_tst32.parse_peek(Partial::new(&[0x12, 0x00, 0x60, 0x00])), @@ -2808,6 +2991,7 @@ Ok( ) "#]] + .raw() ); fn be_tst64<'i>(i: &mut Partial<&'i [u8]>) -> TestResult, u64> { @@ -2832,6 +3016,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_tst64.parse_peek(Partial::new(&[ @@ -2849,6 +3034,7 @@ Ok( ) "#]] + .raw() ); fn be_tsti16<'i>(i: &mut Partial<&'i [u8]>) -> TestResult, i16> { @@ -2871,6 +3057,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_tsti16.parse_peek(Partial::new(&[0x00, 0x80])), @@ -2886,6 +3073,7 @@ Ok( ) "#]] + .raw() ); fn be_tsti32<'i>(i: &mut Partial<&'i [u8]>) -> TestResult, i32> { @@ -2908,6 +3096,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_tsti32.parse_peek(Partial::new(&[0x00, 0x12, 0x60, 0x00])), @@ -2923,6 +3112,7 @@ Ok( ) "#]] + .raw() ); fn be_tsti64<'i>(i: &mut Partial<&'i [u8]>) -> TestResult, i64> { @@ -2947,6 +3137,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( le_tsti64.parse_peek(Partial::new(&[ @@ -2964,6 +3155,7 @@ Ok( ) "#]] + .raw() ); } @@ -3013,6 +3205,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( cnt.parse_peek(Partial::new(&b"2ab"[..])), @@ -3026,6 +3219,7 @@ Err( ) "#]] + .raw() ); assert_parse!( cnt.parse_peek(Partial::new(&b"3abcab"[..])), @@ -3039,6 +3233,7 @@ Err( ) "#]] + .raw() ); assert_parse!( cnt.parse_peek(Partial::new(&b"xxx"[..])), @@ -3060,6 +3255,7 @@ Err( ) "#]] + .raw() ); assert_parse!( cnt.parse_peek(Partial::new(&b"2abcxxx"[..])), @@ -3081,6 +3277,7 @@ Err( ) "#]] + .raw() ); } @@ -3111,6 +3308,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( x.parse_peek(Partial::new(b"\x02..")), @@ -3129,6 +3327,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( x.parse_peek(Partial::new(b"\x02.")), @@ -3142,6 +3341,7 @@ Err( ) "#]] + .raw() ); assert_parse!( x.parse_peek(Partial::new(b"\x02")), @@ -3155,6 +3355,7 @@ Err( ) "#]] + .raw() ); fn y<'i>(i: &mut Partial<&'i [u8]>) -> TestResult, &'i [u8]> { @@ -3181,6 +3382,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( y.parse_peek(Partial::new(b"magic\x02..")), @@ -3199,6 +3401,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( y.parse_peek(Partial::new(b"magic\x02.")), @@ -3212,6 +3415,7 @@ Err( ) "#]] + .raw() ); assert_parse!( y.parse_peek(Partial::new(b"magic\x02")), @@ -3225,6 +3429,7 @@ Err( ) "#]] + .raw() ); } @@ -3269,6 +3474,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( take.parse_peek(Partial::new(&b"3ab"[..])), @@ -3282,6 +3488,7 @@ Err( ) "#]] + .raw() ); assert_parse!( take.parse_peek(Partial::new(&b"xxx"[..])), @@ -3303,6 +3510,7 @@ Err( ) "#]] + .raw() ); assert_parse!( take.parse_peek(Partial::new(&b"2abcxxx"[..])), @@ -3326,6 +3534,7 @@ Ok( ) "#]] + .raw() ); } @@ -3362,6 +3571,7 @@ Err( ) "#]] + .raw() ); assert_parse!( length_and_then_2.parse_peek(Partial::new(&i1)), @@ -3379,6 +3589,7 @@ Err( ) "#]] + .raw() ); let i2 = [1, 5, 6, 3]; @@ -3403,6 +3614,7 @@ Err( ) "#]] + .raw() ); assert_parse!( length_and_then_2.parse_peek(Partial::new(&i2)), @@ -3420,6 +3632,7 @@ Err( ) "#]] + .raw() ); } @@ -3443,6 +3656,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( length_and_then_2.parse_peek(Partial::new(&i3)), @@ -3466,6 +3680,7 @@ Ok( ) "#]] + .raw() ); let i4 = [3, 5, 6, 3, 4, 5]; @@ -3486,6 +3701,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( length_and_then_2.parse_peek(Partial::new(&i4)), @@ -3507,6 +3723,7 @@ Ok( ) "#]] + .raw() ); } } diff --git a/src/combinator/tests.rs b/src/combinator/tests.rs index 032f9364..991cab39 100644 --- a/src/combinator/tests.rs +++ b/src/combinator/tests.rs @@ -1,5 +1,6 @@ use super::*; +use snapbox::prelude::*; use snapbox::str; use crate::ascii::digit1 as digit; @@ -53,6 +54,7 @@ Err( ) "#]] + .raw() ); let res_over = eof.parse_peek(is_over); @@ -67,6 +69,7 @@ Ok( ) "#]] + .raw() ); } @@ -89,6 +92,7 @@ Err( ) "#]] + .raw() ); let res_over = eof.parse_peek(is_over); @@ -103,6 +107,7 @@ Ok( ) "#]] + .raw() ); } @@ -151,6 +156,7 @@ Ok( ) "#]] + .raw() ); } @@ -179,6 +185,7 @@ Err( ) "#]] + .raw() ); assert_parse!( u8.verify_map(|u| if u > 20 { Some(u) } else { None }) @@ -192,6 +199,7 @@ Ok( ) "#]] + .raw() ); } @@ -214,6 +222,7 @@ Ok( ) "#]] + .raw() ); } @@ -246,6 +255,7 @@ Ok( ) "#]] + .raw() ); } @@ -282,6 +292,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( opt_abcd.parse_peek(Partial::new(b)), @@ -304,6 +315,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( opt_abcd.parse_peek(Partial::new(c)), @@ -317,6 +329,7 @@ Err( ) "#]] + .raw() ); } @@ -352,6 +365,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( peek_literal.parse_peek(Partial::new(&b"ab"[..])), @@ -365,6 +379,7 @@ Err( ) "#]] + .raw() ); assert_parse!( peek_literal.parse_peek(Partial::new(&b"xxx"[..])), @@ -386,6 +401,7 @@ Err( ) "#]] + .raw() ); } @@ -415,6 +431,7 @@ Err( ) "#]] + .raw() ); assert_parse!( not_aaa.parse_peek(Partial::new(&b"aa"[..])), @@ -428,6 +445,7 @@ Err( ) "#]] + .raw() ); assert_parse!( not_aaa.parse_peek(Partial::new(&b"abcd"[..])), @@ -448,6 +466,7 @@ Ok( ) "#]] + .raw() ); } @@ -472,6 +491,7 @@ Err( ) "#]] + .raw() ); assert_parse!( test.parse_peek(Partial::new(&b"bcdefg"[..])), @@ -496,6 +516,7 @@ Err( ) "#]] + .raw() ); assert_parse!( test.parse_peek(Partial::new(&b"abcdefg"[..])), @@ -520,6 +541,7 @@ Ok( ) "#]] + .raw() ); } @@ -547,6 +569,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( parser1.parse_peek(&b"defg"[..]), @@ -566,6 +589,7 @@ Err( ) "#]] + .raw() ); fn parser2<'i>(i: &mut &'i [u8]) -> TestResult<&'i [u8], u32> { @@ -600,6 +624,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( parser1.parse_peek(&b"defg"[..]), @@ -619,6 +644,7 @@ Err( ) "#]] + .raw() ); } @@ -640,6 +666,7 @@ Err( ) "#]] + .raw() ); assert_parse!( fail::<_, &str, _>.parse_peek(b), @@ -654,6 +681,7 @@ Err( ) "#]] + .raw() ); } @@ -682,6 +710,7 @@ Err( ) "#]] + .raw() ); } @@ -726,6 +755,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( sep_pair_abc_def.parse_peek(Partial::new(&b"ab"[..])), @@ -739,6 +769,7 @@ Err( ) "#]] + .raw() ); assert_parse!( sep_pair_abc_def.parse_peek(Partial::new(&b"abc,d"[..])), @@ -752,6 +783,7 @@ Err( ) "#]] + .raw() ); assert_parse!( sep_pair_abc_def.parse_peek(Partial::new(&b"xxx"[..])), @@ -773,6 +805,7 @@ Err( ) "#]] + .raw() ); assert_parse!( sep_pair_abc_def.parse_peek(Partial::new(&b"xxx,def"[..])), @@ -798,6 +831,7 @@ Err( ) "#]] + .raw() ); assert_parse!( sep_pair_abc_def.parse_peek(Partial::new(&b"abc,xxx"[..])), @@ -819,6 +853,7 @@ Err( ) "#]] + .raw() ); } @@ -854,6 +889,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( preceded_abcd_efgh.parse_peek(Partial::new(&b"ab"[..])), @@ -867,6 +903,7 @@ Err( ) "#]] + .raw() ); assert_parse!( preceded_abcd_efgh.parse_peek(Partial::new(&b"abcde"[..])), @@ -880,6 +917,7 @@ Err( ) "#]] + .raw() ); assert_parse!( preceded_abcd_efgh.parse_peek(Partial::new(&b"xxx"[..])), @@ -901,6 +939,7 @@ Err( ) "#]] + .raw() ); assert_parse!( preceded_abcd_efgh.parse_peek(Partial::new(&b"xxxxdef"[..])), @@ -926,6 +965,7 @@ Err( ) "#]] + .raw() ); assert_parse!( preceded_abcd_efgh.parse_peek(Partial::new(&b"abcdxxx"[..])), @@ -947,6 +987,7 @@ Err( ) "#]] + .raw() ); } @@ -982,6 +1023,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( terminated_abcd_efgh.parse_peek(Partial::new(&b"ab"[..])), @@ -995,6 +1037,7 @@ Err( ) "#]] + .raw() ); assert_parse!( terminated_abcd_efgh.parse_peek(Partial::new(&b"abcde"[..])), @@ -1008,6 +1051,7 @@ Err( ) "#]] + .raw() ); assert_parse!( terminated_abcd_efgh.parse_peek(Partial::new(&b"xxx"[..])), @@ -1029,6 +1073,7 @@ Err( ) "#]] + .raw() ); assert_parse!( terminated_abcd_efgh.parse_peek(Partial::new(&b"xxxxdef"[..])), @@ -1054,6 +1099,7 @@ Err( ) "#]] + .raw() ); assert_parse!( terminated_abcd_efgh.parse_peek(Partial::new(&b"abcdxxxx"[..])), @@ -1076,6 +1122,7 @@ Err( ) "#]] + .raw() ); } @@ -1109,6 +1156,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( delimited_abc_def_ghi.parse_peek(Partial::new(&b"ab"[..])), @@ -1122,6 +1170,7 @@ Err( ) "#]] + .raw() ); assert_parse!( delimited_abc_def_ghi.parse_peek(Partial::new(&b"abcde"[..])), @@ -1135,6 +1184,7 @@ Err( ) "#]] + .raw() ); assert_parse!( delimited_abc_def_ghi.parse_peek(Partial::new(&b"abcdefgh"[..])), @@ -1148,6 +1198,7 @@ Err( ) "#]] + .raw() ); assert_parse!( delimited_abc_def_ghi.parse_peek(Partial::new(&b"xxx"[..])), @@ -1169,6 +1220,7 @@ Err( ) "#]] + .raw() ); assert_parse!( delimited_abc_def_ghi.parse_peek(Partial::new(&b"xxxdefghi"[..])), @@ -1196,6 +1248,7 @@ Err( ) "#]] + .raw() ); assert_parse!( delimited_abc_def_ghi.parse_peek(Partial::new(&b"abcxxxghi"[..])), @@ -1220,6 +1273,7 @@ Err( ) "#]] + .raw() ); assert_parse!( delimited_abc_def_ghi.parse_peek(Partial::new(&b"abcdefxxx"[..])), @@ -1241,6 +1295,7 @@ Err( ) "#]] + .raw() ); } @@ -1340,6 +1395,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( alt4.parse_peek(b), @@ -1357,6 +1413,7 @@ Ok( ) "#]] + .raw() ); } @@ -1379,6 +1436,7 @@ Err( ) "#]] + .raw() ); let a = &b"b"[..]; assert_parse!( @@ -1393,6 +1451,7 @@ Err( ) "#]] + .raw() ); let a = &b"bcd"[..]; assert_parse!( @@ -1414,6 +1473,7 @@ Ok( ) "#]] + .raw() ); let a = &b"cde"[..]; assert_parse!( @@ -1436,6 +1496,7 @@ Err( ) "#]] + .raw() ); let a = &b"de"[..]; assert_parse!( @@ -1450,6 +1511,7 @@ Err( ) "#]] + .raw() ); let a = &b"defg"[..]; assert_parse!( @@ -1472,6 +1534,7 @@ Ok( ) "#]] + .raw() ); } @@ -1495,6 +1558,7 @@ Ok( ) "#]] + .raw() ); let i = &b"bc"[..]; @@ -1512,6 +1576,7 @@ Ok( ) "#]] + .raw() ); let i = &b"defg"[..]; @@ -1532,6 +1597,7 @@ Ok( ) "#]] + .raw() ); let i = &b"z"[..]; @@ -1550,6 +1616,7 @@ Err( ) "#]] + .raw() ); } @@ -1573,6 +1640,7 @@ Ok( ) "#]] + .raw() ); let bc = &b"bc"[..]; @@ -1590,6 +1658,7 @@ Ok( ) "#]] + .raw() ); let defg = &b"defg"[..]; @@ -1610,6 +1679,7 @@ Ok( ) "#]] + .raw() ); } @@ -1656,6 +1726,7 @@ Ok( ) "#]] + .raw() ); let b = &b"efgabcdhijk"[..]; assert_parse!( @@ -1691,6 +1762,7 @@ Ok( ) "#]] + .raw() ); let c = &b"hiefgabcdjk"[..]; assert_parse!( @@ -1726,6 +1798,7 @@ Ok( ) "#]] + .raw() ); let d = &b"efgxyzabcdefghi"[..]; @@ -1758,6 +1831,7 @@ Err( ) "#]] + .raw() ); let e = &b"efgabc"[..]; @@ -1773,6 +1847,7 @@ Err( ) "#]] + .raw() ); } @@ -1824,6 +1899,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(b)), @@ -1855,6 +1931,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(c)), @@ -1877,6 +1954,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi_empty.parse_peek(Partial::new(d)), @@ -1900,6 +1978,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(e)), @@ -1932,6 +2011,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( @@ -1946,6 +2026,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi_longsep.parse_peek(Partial::new(g)), @@ -1959,6 +2040,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(h)), @@ -1972,6 +2054,7 @@ Err( ) "#]] + .raw() ); } @@ -2033,6 +2116,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(b)), @@ -2064,6 +2148,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(c)), @@ -2088,6 +2173,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(d)), @@ -2120,6 +2206,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( @@ -2134,6 +2221,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi_longsep.parse_peek(Partial::new(g)), @@ -2147,6 +2235,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(h)), @@ -2160,6 +2249,7 @@ Err( ) "#]] + .raw() ); } @@ -2195,6 +2285,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(b)), @@ -2229,6 +2320,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(c)), @@ -2275,6 +2367,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(d)), @@ -2326,6 +2419,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(e)), @@ -2339,6 +2433,7 @@ Err( ) "#]] + .raw() ); } @@ -2373,6 +2468,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(&b"abcdabcdefgh"[..])), @@ -2406,6 +2502,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(&b"azerty"[..])), @@ -2428,6 +2525,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(&b"abcdab"[..])), @@ -2441,6 +2539,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(&b"abcd"[..])), @@ -2454,6 +2553,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(&b""[..])), @@ -2467,6 +2567,7 @@ Err( ) "#]] + .raw() ); } @@ -2517,6 +2618,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(b)), @@ -2550,6 +2652,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(c)), @@ -2574,6 +2677,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(d)), @@ -2587,6 +2691,7 @@ Err( ) "#]] + .raw() ); } @@ -2639,6 +2744,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(&b[..]), @@ -2664,6 +2770,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(&c[..]), @@ -2685,6 +2792,7 @@ Err( ) "#]] + .raw() ); } @@ -2709,6 +2817,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi.parse_peek("abcd"), @@ -2723,6 +2832,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi.parse_peek("ababcd"), @@ -2741,6 +2851,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek("abababcd"), @@ -2760,6 +2871,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek("ababababcd"), @@ -2780,6 +2892,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek("abababababcd"), @@ -2794,6 +2907,7 @@ Err( ) "#]] + .raw() ); } @@ -2828,6 +2942,7 @@ Ok( ) "#]] + .raw() ); fn multi1<'i>(i: &mut &'i [u8]) -> TestResult<&'i [u8], Vec<&'i [u8]>> { @@ -2854,6 +2969,7 @@ Err( ) "#]] + .raw() ); } @@ -2889,6 +3005,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(b)), @@ -2922,6 +3039,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(c)), @@ -2967,6 +3085,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(d)), @@ -3016,6 +3135,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(e)), @@ -3029,6 +3149,7 @@ Err( ) "#]] + .raw() ); } @@ -3072,6 +3193,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( cnt_2.parse_peek(Partial::new(&b"ab"[..])), @@ -3085,6 +3207,7 @@ Err( ) "#]] + .raw() ); assert_parse!( cnt_2.parse_peek(Partial::new(&b"abcab"[..])), @@ -3098,6 +3221,7 @@ Err( ) "#]] + .raw() ); assert_parse!( cnt_2.parse_peek(Partial::new(&b"xxx"[..])), @@ -3119,6 +3243,7 @@ Err( ) "#]] + .raw() ); assert_parse!( cnt_2.parse_peek(Partial::new(&b"xxxabcabcdef"[..])), @@ -3149,6 +3274,7 @@ Err( ) "#]] + .raw() ); assert_parse!( cnt_2.parse_peek(Partial::new(&b"abcxxxabcdef"[..])), @@ -3176,6 +3302,7 @@ Err( ) "#]] + .raw() ); } @@ -3218,6 +3345,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( counter_2.parse_peek(incomplete_1), @@ -3233,6 +3361,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( counter_2.parse_peek(incomplete_2), @@ -3251,6 +3380,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( counter_2.parse_peek(error), @@ -3267,6 +3397,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( counter_2.parse_peek(error_1), @@ -3292,6 +3423,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( counter_2.parse_peek(error_2), @@ -3317,6 +3449,7 @@ Ok( ) "#]] + .raw() ); } @@ -3375,6 +3508,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(&b"abcdabcdefgh"[..])), @@ -3408,6 +3542,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(&b"azerty"[..])), @@ -3430,6 +3565,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(&b"abcdab"[..])), @@ -3443,6 +3579,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(&b"abcd"[..])), @@ -3456,6 +3593,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(&b""[..])), @@ -3469,6 +3607,7 @@ Err( ) "#]] + .raw() ); } @@ -3529,6 +3668,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(b)), @@ -3562,6 +3702,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(c)), @@ -3586,6 +3727,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(d)), @@ -3599,6 +3741,7 @@ Err( ) "#]] + .raw() ); } @@ -3640,6 +3783,7 @@ Err( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(b)), @@ -3673,6 +3817,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(c)), @@ -3718,6 +3863,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(d)), @@ -3767,6 +3913,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( multi.parse_peek(Partial::new(e)), @@ -3780,6 +3927,7 @@ Err( ) "#]] + .raw() ); } @@ -3805,6 +3953,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( @@ -3823,6 +3972,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( @@ -3841,6 +3991,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( @@ -3860,6 +4011,7 @@ Ok( ) "#]] + .raw() ); } @@ -3885,6 +4037,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( @@ -3903,6 +4056,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( @@ -3924,5 +4078,6 @@ Err( ) "#]] + .raw() ); } diff --git a/src/macros/tests.rs b/src/macros/tests.rs index 410e8bf9..480dcf06 100644 --- a/src/macros/tests.rs +++ b/src/macros/tests.rs @@ -1,3 +1,4 @@ +use snapbox::prelude::*; use snapbox::str; use crate::ascii::dec_uint; @@ -30,11 +31,12 @@ fn dispatch_basics() { Ok( ( "123", - '/u{8}', + '\u{8}', ), ) "#]] + .raw() ); assert_parse!( escape_seq_char.parse_peek("error"), @@ -49,6 +51,7 @@ Err( ) "#]] + .raw() ); assert_parse!( escape_seq_char.parse_peek(""), @@ -63,6 +66,7 @@ Err( ) "#]] + .raw() ); } @@ -98,6 +102,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( parser.parse_peek("123, remaining"), @@ -112,6 +117,7 @@ Err( ) "#]] + .raw() ); assert_parse!( parser.parse_peek(""), @@ -126,6 +132,7 @@ Err( ) "#]] + .raw() ); } @@ -164,6 +171,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( parser.parse_peek("123, remaining"), @@ -178,6 +186,7 @@ Err( ) "#]] + .raw() ); assert_parse!( parser.parse_peek(""), @@ -192,6 +201,7 @@ Err( ) "#]] + .raw() ); } @@ -303,6 +313,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( @@ -319,6 +330,7 @@ Ok( ) "#]] + .raw() ); } @@ -375,6 +387,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( parser.parse_peek("123, remaining"), @@ -389,6 +402,7 @@ Err( ) "#]] + .raw() ); assert_parse!( parser.parse_peek(""), @@ -403,6 +417,7 @@ Err( ) "#]] + .raw() ); } @@ -491,6 +506,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( parser.parse_peek("123, remaining"), @@ -505,6 +521,7 @@ Err( ) "#]] + .raw() ); assert_parse!( parser.parse_peek(""), @@ -519,6 +536,7 @@ Err( ) "#]] + .raw() ); } diff --git a/src/parser.rs b/src/parser.rs index db2675ea..e70aedd0 100644 --- a/src/parser.rs +++ b/src/parser.rs @@ -1303,6 +1303,7 @@ where mod tests { use super::*; + use snapbox::prelude::*; use snapbox::str; use crate::binary::be_u16; @@ -1355,6 +1356,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( parser.parse_peek("123def"), @@ -1369,6 +1371,7 @@ Err( ) "#]] + .raw() ); } @@ -1408,6 +1411,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( tuple_3.parse_peek(Partial::new(&b"abcd"[..])), @@ -1421,6 +1425,7 @@ Err( ) "#]] + .raw() ); assert_parse!( tuple_3.parse_peek(Partial::new(&b"abcde"[..])), @@ -1434,6 +1439,7 @@ Err( ) "#]] + .raw() ); assert_parse!( tuple_3.parse_peek(Partial::new(&b"abcdejk"[..])), @@ -1454,6 +1460,7 @@ Err( ) "#]] + .raw() ); } @@ -1473,6 +1480,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( parser.parse_peek("sdfjakdsas"), @@ -1485,6 +1493,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( parser.parse_peek(""), @@ -1497,6 +1506,7 @@ Ok( ) "#]] + .raw() ); } } diff --git a/src/token/tests.rs b/src/token/tests.rs index 41eba7d3..4c6f91b2 100644 --- a/src/token/tests.rs +++ b/src/token/tests.rs @@ -2,6 +2,7 @@ use super::*; #[cfg(feature = "std")] use proptest::prelude::*; +use snapbox::prelude::*; use snapbox::str; use crate::ascii::Caseless; @@ -27,6 +28,7 @@ Ok( ) "#]] + .raw() ); } @@ -44,6 +46,7 @@ Ok( ) "#]] + .raw() ); } @@ -103,6 +106,7 @@ Err( ) "#]] + .raw() ); assert_parse!( take_until_5_10.parse_peek("1234end"), @@ -117,6 +121,7 @@ Err( ) "#]] + .raw() ); assert_parse!( take_until_5_10.parse_peek("12345end"), @@ -129,6 +134,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( take_until_5_10.parse_peek("123456end"), @@ -141,6 +147,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( take_until_5_10.parse_peek("12345678end"), @@ -153,6 +160,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( take_until_5_10.parse_peek("123456789end"), @@ -167,6 +175,7 @@ Err( ) "#]] + .raw() ); } @@ -186,6 +195,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( take_until_empty.parse_peek("end"), @@ -198,6 +208,7 @@ Ok( ) "#]] + .raw() ); } @@ -227,6 +238,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( caseless_bytes.parse_peek(&b"abcdefgh"[..]), @@ -249,6 +261,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( caseless_bytes.parse_peek(&b"ABCDefgh"[..]), @@ -271,6 +284,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( caseless_bytes.parse_peek(&b"ab"[..]), @@ -288,6 +302,7 @@ Err( ) "#]] + .raw() ); assert_parse!( caseless_bytes.parse_peek(&b"Hello"[..]), @@ -308,6 +323,7 @@ Err( ) "#]] + .raw() ); assert_parse!( caseless_bytes.parse_peek(&b"Hel"[..]), @@ -326,6 +342,7 @@ Err( ) "#]] + .raw() ); fn caseless_str<'i>(i: &mut &'i str) -> TestResult<&'i str, &'i str> { @@ -342,6 +359,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( caseless_str.parse_peek("abcdefgh"), @@ -354,6 +372,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( caseless_str.parse_peek("ABCDefgh"), @@ -366,6 +385,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( caseless_str.parse_peek("ab"), @@ -380,6 +400,7 @@ Err( ) "#]] + .raw() ); assert_parse!( caseless_str.parse_peek("Hello"), @@ -394,6 +415,7 @@ Err( ) "#]] + .raw() ); assert_parse!( caseless_str.parse_peek("Hel"), @@ -408,6 +430,7 @@ Err( ) "#]] + .raw() ); fn matches_kelvin<'i>(i: &mut &'i str) -> TestResult<&'i str, &'i str> { @@ -426,6 +449,7 @@ Err( ) "#]] + .raw() ); fn is_kelvin<'i>(i: &mut &'i str) -> TestResult<&'i str, &'i str> { @@ -444,6 +468,7 @@ Err( ) "#]] + .raw() ); } @@ -472,6 +497,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( test2.parse_peek(input), @@ -488,6 +514,7 @@ Ok( ) "#]] + .raw() ); } @@ -511,6 +538,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( test.parse_peek(&[b'A', b'\0'][..]), @@ -528,6 +556,7 @@ Err( ) "#]] + .raw() ); } @@ -551,6 +580,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( test.parse_peek(&[b'A', b'\0'][..]), @@ -568,6 +598,7 @@ Err( ) "#]] + .raw() ); } @@ -588,6 +619,7 @@ Ok( ) "#]] + .raw() ); } @@ -616,6 +648,7 @@ Ok( ) "#]] + .raw() ); let b = &b"cde"[..]; @@ -639,6 +672,7 @@ Err( ) "#]] + .raw() ); fn utf8<'i>(i: &mut Partial<&'i str>) -> TestResult, char> { @@ -677,6 +711,7 @@ Err( ) "#]] + .raw() ); let b = &b"cde"[..]; @@ -697,6 +732,7 @@ Ok( ) "#]] + .raw() ); } @@ -723,6 +759,7 @@ Err( ) "#]] + .raw() ); let b = "cde"; @@ -740,6 +777,7 @@ Ok( ) "#]] + .raw() ); } @@ -771,6 +809,7 @@ Err( ) "#]] + .raw() ); let b = &b"cde"[..]; @@ -791,6 +830,7 @@ Ok( ) "#]] + .raw() ); } @@ -821,6 +861,7 @@ Ok( ) "#]] + .raw() ); let b = Partial::new(&b"bcde"[..]); @@ -844,6 +885,7 @@ Ok( ) "#]] + .raw() ); let c = Partial::new(&b"cdef"[..]); @@ -868,6 +910,7 @@ Err( ) "#]] + .raw() ); let d = Partial::new(&b"bacdef"[..]); @@ -893,6 +936,7 @@ Ok( ) "#]] + .raw() ); } @@ -923,6 +967,7 @@ Ok( ) "#]] + .raw() ); let b = Partial::new(&b"cbde"[..]); @@ -946,6 +991,7 @@ Ok( ) "#]] + .raw() ); let c = Partial::new(&b"abab"[..]); @@ -970,6 +1016,7 @@ Err( ) "#]] + .raw() ); let d = Partial::new(&b"cdefba"[..]); @@ -995,6 +1042,7 @@ Ok( ) "#]] + .raw() ); let e = Partial::new(&b"e"[..]); @@ -1010,6 +1058,7 @@ Err( ) "#]] + .raw() ); } @@ -1028,6 +1077,7 @@ Err( ) "#]] + .raw() ); assert_parse!( y.parse_peek(Partial::new(&b"123"[..])), @@ -1039,6 +1089,7 @@ Err( ) "#]] + .raw() ); assert_parse!( y.parse_peek(Partial::new(&b"123en"[..])), @@ -1050,6 +1101,7 @@ Err( ) "#]] + .raw() ); } @@ -1068,6 +1120,7 @@ Err( ) "#]] + .raw() ); } @@ -1114,6 +1167,7 @@ Ok( ) "#]] + .raw() ); fn ya<'i>(i: &mut Partial<&'i [u8]>) -> TestResult, &'i [u8]> { @@ -1140,6 +1194,7 @@ Ok( ) "#]] + .raw() ); fn yd<'i>(i: &mut Partial<&'i [u8]>) -> TestResult, &'i [u8]> { @@ -1166,6 +1221,7 @@ Ok( ) "#]] + .raw() ); fn yhd<'i>(i: &mut Partial<&'i [u8]>) -> TestResult, &'i [u8]> { @@ -1198,6 +1254,7 @@ Ok( ) "#]] + .raw() ); fn yod<'i>(i: &mut Partial<&'i [u8]>) -> TestResult, &'i [u8]> { @@ -1228,6 +1285,7 @@ Ok( ) "#]] + .raw() ); fn yan<'i>(i: &mut Partial<&'i [u8]>) -> TestResult, &'i [u8]> { @@ -1257,6 +1315,7 @@ Ok( ) "#]] + .raw() ); fn ys<'i>(i: &mut Partial<&'i [u8]>) -> TestResult, &'i [u8]> { @@ -1282,6 +1341,7 @@ Ok( ) "#]] + .raw() ); fn yms<'i>(i: &mut Partial<&'i [u8]>) -> TestResult, &'i [u8]> { @@ -1309,6 +1369,7 @@ Ok( ) "#]] + .raw() ); } @@ -1334,6 +1395,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(b)), @@ -1347,6 +1409,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(c)), @@ -1371,6 +1434,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(d)), @@ -1390,6 +1454,7 @@ Ok( ) "#]] + .raw() ); } @@ -1415,6 +1480,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(b)), @@ -1428,6 +1494,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(c)), @@ -1452,6 +1519,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(d)), @@ -1473,6 +1541,7 @@ Err( ) "#]] + .raw() ); } @@ -1500,6 +1569,7 @@ Err( ) "#]] + .raw() ); assert_parse!( x.parse_peek(Partial::new(b)), @@ -1513,6 +1583,7 @@ Err( ) "#]] + .raw() ); assert_parse!( x.parse_peek(Partial::new(c)), @@ -1526,6 +1597,7 @@ Err( ) "#]] + .raw() ); assert_parse!( x.parse_peek(Partial::new(d)), @@ -1549,6 +1621,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( x.parse_peek(Partial::new(e)), @@ -1571,6 +1644,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( x.parse_peek(Partial::new(f)), @@ -1592,6 +1666,7 @@ Err( ) "#]] + .raw() ); } @@ -1617,6 +1692,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(b)), @@ -1637,6 +1713,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(c)), @@ -1661,6 +1738,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(d)), @@ -1674,6 +1752,7 @@ Err( ) "#]] + .raw() ); } @@ -1699,6 +1778,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(b)), @@ -1721,6 +1801,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(c)), @@ -1745,6 +1826,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(d)), @@ -1758,6 +1840,7 @@ Err( ) "#]] + .raw() ); } @@ -1779,6 +1862,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new("abcd")), @@ -1792,6 +1876,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new("abcd點")), @@ -1807,6 +1892,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new("abcd點a")), @@ -1822,6 +1908,7 @@ Ok( ) "#]] + .raw() ); fn g<'i>(i: &mut Partial<&'i str>) -> TestResult, &'i str> { @@ -1840,6 +1927,7 @@ Err( ) "#]] + .raw() ); assert_parse!( g.parse_peek(Partial::new("點abcd")), @@ -1855,6 +1943,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( g.parse_peek(Partial::new("點點點a")), @@ -1870,6 +1959,7 @@ Ok( ) "#]] + .raw() ); } @@ -1891,6 +1981,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new("abcd")), @@ -1904,6 +1995,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new("abcd點")), @@ -1919,6 +2011,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new("abcd點a")), @@ -1934,6 +2027,7 @@ Ok( ) "#]] + .raw() ); fn g<'i>(i: &mut Partial<&'i str>) -> TestResult, &'i str> { @@ -1952,6 +2046,7 @@ Err( ) "#]] + .raw() ); assert_parse!( g.parse_peek(Partial::new("點abcd")), @@ -1967,6 +2062,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( g.parse_peek(Partial::new("點點點a")), @@ -1982,6 +2078,7 @@ Ok( ) "#]] + .raw() ); } @@ -2001,6 +2098,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new("ab")), @@ -2012,6 +2110,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new("點")), @@ -2023,6 +2122,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new("ab點cd")), @@ -2038,6 +2138,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new("a點bcd")), @@ -2053,6 +2154,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new("a點b")), @@ -2068,6 +2170,7 @@ Ok( ) "#]] + .raw() ); fn g<'i>(i: &mut Partial<&'i str>) -> TestResult, &'i str> { @@ -2086,6 +2189,7 @@ Err( ) "#]] + .raw() ); assert_parse!( g.parse_peek(Partial::new("點abcd")), @@ -2101,6 +2205,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( g.parse_peek(Partial::new("點點點a")), @@ -2116,6 +2221,7 @@ Ok( ) "#]] + .raw() ); } @@ -2138,6 +2244,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( parser.parse_peek(Partial::new("😃!")), @@ -2153,6 +2260,7 @@ Ok( ) "#]] + .raw() ); } @@ -2175,6 +2283,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( parser.parse_peek(Partial::new("😃!")), @@ -2190,6 +2299,7 @@ Ok( ) "#]] + .raw() ); } @@ -2212,6 +2322,7 @@ Ok( ) "#]] + .raw() ); } @@ -2234,6 +2345,7 @@ Ok( ) "#]] + .raw() ); } @@ -2265,6 +2377,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( y.parse_peek(Partial::new(&b"ab."[..])), @@ -2285,6 +2398,7 @@ Ok( ) "#]] + .raw() ); } @@ -2317,6 +2431,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( caseless_bytes.parse_peek(Partial::new(&b"abcdefgh"[..])), @@ -2342,6 +2457,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( caseless_bytes.parse_peek(Partial::new(&b"ABCDefgh"[..])), @@ -2367,6 +2483,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( caseless_bytes.parse_peek(Partial::new(&b"ab"[..])), @@ -2380,6 +2497,7 @@ Err( ) "#]] + .raw() ); assert_parse!( caseless_bytes.parse_peek(Partial::new(&b"Hello"[..])), @@ -2403,6 +2521,7 @@ Err( ) "#]] + .raw() ); assert_parse!( caseless_bytes.parse_peek(Partial::new(&b"Hel"[..])), @@ -2424,6 +2543,7 @@ Err( ) "#]] + .raw() ); fn caseless_str<'i>(i: &mut Partial<&'i str>) -> TestResult, &'i str> { @@ -2443,6 +2563,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( caseless_str.parse_peek(Partial::new("abcdefgh")), @@ -2458,6 +2579,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( caseless_str.parse_peek(Partial::new("ABCDefgh")), @@ -2473,6 +2595,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( caseless_str.parse_peek(Partial::new("ab")), @@ -2486,6 +2609,7 @@ Err( ) "#]] + .raw() ); assert_parse!( caseless_str.parse_peek(Partial::new("Hello")), @@ -2503,6 +2627,7 @@ Err( ) "#]] + .raw() ); assert_parse!( caseless_str.parse_peek(Partial::new("Hel")), @@ -2520,6 +2645,7 @@ Err( ) "#]] + .raw() ); fn matches_kelvin<'i>(i: &mut Partial<&'i str>) -> TestResult, &'i str> { @@ -2541,6 +2667,7 @@ Err( ) "#]] + .raw() ); fn is_kelvin<'i>(i: &mut Partial<&'i str>) -> TestResult, &'i str> { @@ -2562,6 +2689,7 @@ Err( ) "#]] + .raw() ); } @@ -2592,6 +2720,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( test2.parse_peek(input), @@ -2611,6 +2740,7 @@ Ok( ) "#]] + .raw() ); } @@ -2642,6 +2772,7 @@ Ok( ) "#]] + .raw() ); } @@ -2659,6 +2790,7 @@ Ok( ) "#]] + .raw() ); } @@ -2690,5 +2822,6 @@ Ok( ) "#]] + .raw() ); } diff --git a/tests/testsuite/float.rs b/tests/testsuite/float.rs index 1f2c3333..faa347e1 100644 --- a/tests/testsuite/float.rs +++ b/tests/testsuite/float.rs @@ -1,6 +1,7 @@ use std::str; use std::str::FromStr; +use snapbox::prelude::*; use snapbox::str; use winnow::ascii::digit1 as digit; @@ -46,6 +47,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( unsigned_float.parse_peek(&b"0.123;"[..]), @@ -60,6 +62,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( unsigned_float.parse_peek(&b"123.0;"[..]), @@ -74,6 +77,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( unsigned_float.parse_peek(&b"123.;"[..]), @@ -88,6 +92,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( unsigned_float.parse_peek(&b".123;"[..]), @@ -102,6 +107,7 @@ Ok( ) "#]] + .raw() ); } @@ -120,6 +126,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( float.parse_peek(&b"+123.456;"[..]), @@ -134,6 +141,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( float.parse_peek(&b"-123.456;"[..]), @@ -148,5 +156,6 @@ Ok( ) "#]] + .raw() ); } diff --git a/tests/testsuite/issues.rs b/tests/testsuite/issues.rs index 71b26f68..4b986d31 100644 --- a/tests/testsuite/issues.rs +++ b/tests/testsuite/issues.rs @@ -2,6 +2,7 @@ #![allow(dead_code)] #![allow(clippy::redundant_closure)] +use snapbox::prelude::*; use snapbox::str; use winnow::prelude::*; @@ -27,6 +28,7 @@ pub(crate) fn take_char(input: &mut &[u8]) -> PResult { #[cfg(feature = "std")] mod parse_int { use crate::TestResult; + use snapbox::prelude::*; use snapbox::str; use std::str; use winnow::prelude::*; @@ -83,6 +85,7 @@ Ok( ) "#]] + .raw() ); let subject = parse_ints.parse_peek(Partial::new(&b"12 34 5689 "[..])); @@ -106,6 +109,7 @@ Ok( ) "#]] + .raw() ); } } @@ -138,6 +142,7 @@ Err( ) "#]] + .raw() ); assert_parse!( nothing.parse_peek(Partial::new(b"abc")), @@ -157,6 +162,7 @@ Ok( ) "#]] + .raw() ); } @@ -191,6 +197,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( twolines.parse_peek(Partial::new("féo\nbar\n")), @@ -209,6 +216,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( twolines.parse_peek(Partial::new("foé\nbar\n")), @@ -227,6 +235,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( twolines.parse_peek(Partial::new("foé\r\nbar\n")), @@ -245,6 +254,7 @@ Ok( ) "#]] + .raw() ); } @@ -314,6 +324,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( parser.parse_peek("bbb"), @@ -328,6 +339,7 @@ Err( ) "#]] + .raw() ); } @@ -346,6 +358,7 @@ Ok( ) "#]] + .raw() ); } @@ -369,6 +382,7 @@ Ok( ) "#]] + .raw() ); } @@ -387,6 +401,7 @@ Ok( ) "#]] + .raw() ); } @@ -422,6 +437,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( fill_pair.parse_peek(b"123,456,789"), @@ -449,6 +465,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( fill_pair.parse_peek(b"123,,"), @@ -465,6 +482,7 @@ Err( ) "#]] + .raw() ); } @@ -503,5 +521,6 @@ Ok( ) "#]] + .raw() ); } diff --git a/tests/testsuite/overflow.rs b/tests/testsuite/overflow.rs index a96d7b3a..0d69a333 100644 --- a/tests/testsuite/overflow.rs +++ b/tests/testsuite/overflow.rs @@ -1,6 +1,7 @@ #![allow(clippy::unreadable_literal)] #![cfg(target_pointer_width = "64")] +use snapbox::prelude::*; use snapbox::str; #[cfg(feature = "alloc")] @@ -39,6 +40,7 @@ Err( ) "#]] + .raw() ); } @@ -64,6 +66,7 @@ Err( ) "#]] + .raw() ); } @@ -89,6 +92,7 @@ Err( ) "#]] + .raw() ); } @@ -116,6 +120,7 @@ Err( ) "#]] + .raw() ); } @@ -146,6 +151,7 @@ Err( ) "#]] + .raw() ); } @@ -173,6 +179,7 @@ Err( ) "#]] + .raw() ); } @@ -197,6 +204,7 @@ Err( ) "#]] + .raw() ); } @@ -224,6 +232,7 @@ Err( ) "#]] + .raw() ); } @@ -248,5 +257,6 @@ Err( ) "#]] + .raw() ); } diff --git a/tests/testsuite/utf8.rs b/tests/testsuite/utf8.rs index 7d6a2312..e0a52f8c 100644 --- a/tests/testsuite/utf8.rs +++ b/tests/testsuite/utf8.rs @@ -1,3 +1,4 @@ +use snapbox::prelude::*; use snapbox::str; use winnow::ascii::Caseless; @@ -27,6 +28,7 @@ Ok( ) "#]] + .raw() ); } @@ -47,6 +49,7 @@ Err( ) "#]] + .raw() ); } @@ -67,6 +70,7 @@ Err( ) "#]] + .raw() ); } @@ -87,6 +91,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( test.parse_peek("abcdefgh"), @@ -99,6 +104,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( test.parse_peek("ABCDefgh"), @@ -111,6 +117,7 @@ Ok( ) "#]] + .raw() ); } @@ -129,6 +136,7 @@ Ok( ) "#]] + .raw() ); } @@ -148,6 +156,7 @@ Err( ) "#]] + .raw() ); } @@ -167,6 +176,7 @@ Ok( ) "#]] + .raw() ); } @@ -187,6 +197,7 @@ Err( ) "#]] + .raw() ); } @@ -207,6 +218,7 @@ Err( ) "#]] + .raw() ); } @@ -238,6 +250,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(b)), @@ -251,6 +264,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(c)), @@ -266,6 +280,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(d)), @@ -281,6 +296,7 @@ Ok( ) "#]] + .raw() ); } @@ -306,6 +322,7 @@ Ok( ) "#]] + .raw() ); } @@ -331,6 +348,7 @@ Ok( ) "#]] + .raw() ); } @@ -356,6 +374,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(b)), @@ -369,6 +388,7 @@ Err( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(c)), @@ -384,6 +404,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( f.parse_peek(Partial::new(d)), @@ -401,6 +422,7 @@ Err( ) "#]] + .raw() ); } @@ -426,6 +448,7 @@ Ok( ) "#]] + .raw() ); } @@ -447,6 +470,7 @@ Ok( ) "#]] + .raw() ); } @@ -474,6 +498,7 @@ Err( ) "#]] + .raw() ); } @@ -497,6 +522,7 @@ Err( ) "#]] + .raw() ); } @@ -520,6 +546,7 @@ Ok( ) "#]] + .raw() ); } @@ -541,6 +568,7 @@ Ok( ) "#]] + .raw() ); } @@ -564,6 +592,7 @@ Err( ) "#]] + .raw() ); } @@ -592,6 +621,7 @@ Ok( ) "#]] + .raw() ); assert_parse!( f.parse_peek(b), @@ -604,6 +634,7 @@ Ok( ) "#]] + .raw() ); } From d36f11eb41c0f57030b61860551d4b14bf9cc1fc Mon Sep 17 00:00:00 2001 From: Ed Page Date: Tue, 21 Jan 2025 16:54:16 -0600 Subject: [PATCH 2/2] chore: Update snapbox --- Cargo.lock | 12 ++++++------ Cargo.toml | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5c7dc199..a483d1e1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -430,9 +430,9 @@ dependencies = [ [[package]] name = "escargot" -version = "0.5.7" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5584ba17d7ab26a8a7284f13e5bd196294dd2f2d79773cff29b9e9edef601a6" +checksum = "05a3ac187a16b5382fef8c69fd1bad123c67b7cf3932240a2d43dcdd32cded88" dependencies = [ "log", "once_cell", @@ -1068,9 +1068,9 @@ checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf" [[package]] name = "snapbox" -version = "0.6.5" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ad8c7be18cc9ec7f4d7948ad6b9df0e04fc649663e3c0ed59f304ed17ca69e9" +checksum = "96dcfc4581e3355d70ac2ee14cfdf81dce3d85c85f1ed9e2c1d3013f53b3436b" dependencies = [ "anstream 0.6.14", "anstyle", @@ -1082,9 +1082,9 @@ dependencies = [ [[package]] name = "snapbox-macros" -version = "0.3.9" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f4c14672714436c09254801c934b203196a51182a5107fb76591c7cc56424d" +checksum = "16569f53ca23a41bb6f62e0a5084aa1661f4814a67fa33696a79073e03a664af" dependencies = [ "anstream 0.6.14", ] diff --git a/Cargo.toml b/Cargo.toml index 97ffad1e..de21f822 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -136,7 +136,7 @@ proptest = "1.2.0" criterion = "0.5.1" lexopt = "0.3.0" term-transcript = "0.2.0" -snapbox = { version = "0.6.0", features = ["examples"] } +snapbox = { version = "0.6.21", features = ["examples"] } circular = "0.3.0" rustc-hash = "1.1.0" automod = "1.0.14"