Commit b018ac1 1 parent 2c6d411 commit b018ac1 Copy full SHA for b018ac1
File tree 2 files changed +27
-1
lines changed
2 files changed +27
-1
lines changed Original file line number Diff line number Diff line change @@ -162,7 +162,7 @@ impl TryFrom<&Opt> for FastOpt {
162
162
type Error = & ' static str ;
163
163
164
164
fn try_from ( value : & Opt ) -> Result < Self , Self :: Error > {
165
- if ! value. delimiter . as_bytes ( ) . len ( ) = = 1 {
165
+ if value. delimiter . as_bytes ( ) . len ( ) ! = 1 {
166
166
return Err ( "Delimiter must be 1 byte wide for FastOpt" ) ;
167
167
}
168
168
@@ -307,6 +307,20 @@ mod tests {
307
307
assert_eq ! ( output, b"foo\n " . as_slice( ) ) ;
308
308
}
309
309
310
+ #[ test]
311
+ fn fail_to_convert_opt_with_long_delimiter_to_fastopt ( ) {
312
+ let opt = Opt {
313
+ delimiter : "foo" . to_owned ( ) ,
314
+ ..Default :: default ( )
315
+ } ;
316
+
317
+ assert ! ( FastOpt :: try_from( & opt) . is_err( ) ) ;
318
+ assert_eq ! (
319
+ FastOpt :: try_from( & opt) . unwrap_err( ) ,
320
+ "Delimiter must be 1 byte wide for FastOpt"
321
+ ) ;
322
+ }
323
+
310
324
fn make_cut_str_buffers ( ) -> ( Vec < u8 > , Vec < Range < usize > > ) {
311
325
let output = Vec :: new ( ) ;
312
326
let fields = Vec :: new ( ) ;
Original file line number Diff line number Diff line change @@ -42,6 +42,18 @@ fn it_cut_consecutive_delimiters() {
42
42
assert. success ( ) . stdout ( "foobar\n " ) ;
43
43
}
44
44
45
+ #[ test]
46
+ fn it_cut_using_multibyte_delimiters ( ) {
47
+ let mut cmd = Command :: cargo_bin ( env ! ( "CARGO_PKG_NAME" ) ) . unwrap ( ) ;
48
+
49
+ let assert = cmd
50
+ . args ( [ "-d" , "..." , "-f" , "2" ] )
51
+ . write_stdin ( "foo...bar" )
52
+ . assert ( ) ;
53
+
54
+ assert. success ( ) . stdout ( "bar\n " ) ;
55
+ }
56
+
45
57
#[ test]
46
58
fn it_works_on_multiple_lines ( ) {
47
59
let mut cmd = Command :: cargo_bin ( env ! ( "CARGO_PKG_NAME" ) ) . unwrap ( ) ;
You can’t perform that action at this time.
0 commit comments