1
+ use curl:: Version ;
1
2
use std:: time:: Duration ;
2
3
3
4
macro_rules! t {
@@ -23,23 +24,35 @@ fn handle() -> Easy {
23
24
e
24
25
}
25
26
27
+ fn multipart_boundary_size ( ) -> usize {
28
+ // Versions before 8.4.0 used a smaller multipart mime boundary, so the
29
+ // exact content-length will differ between versions.
30
+ if Version :: get ( ) . version_num ( ) >= 0x80400 {
31
+ 148
32
+ } else {
33
+ 136
34
+ }
35
+ }
36
+
26
37
#[ test]
27
38
fn custom ( ) {
39
+ multipart_boundary_size ( ) ;
28
40
let s = Server :: new ( ) ;
29
- s. receive (
41
+ s. receive ( & format ! (
30
42
"\
31
43
POST / HTTP/1.1\r \n \
32
44
Host: 127.0.0.1:$PORT\r \n \
33
45
Accept: */*\r \n \
34
- Content-Length: 142 \r \n \
46
+ Content-Length: {} \r \n \
35
47
Content-Type: multipart/form-data; boundary=--[..]\r \n \
36
48
\r \n \
37
49
--[..]\r \n \
38
50
Content-Disposition: form-data; name=\" foo\" \r \n \
39
51
\r \n \
40
52
1234\r \n \
41
53
--[..]\r \n ",
42
- ) ;
54
+ multipart_boundary_size( ) + 6
55
+ ) ) ;
43
56
s. send ( "HTTP/1.1 200 OK\r \n \r \n " ) ;
44
57
45
58
let mut handle = handle ( ) ;
@@ -50,15 +63,16 @@ fn custom() {
50
63
t ! ( handle. perform( ) ) ;
51
64
}
52
65
66
+ #[ cfg( feature = "static-curl" ) ]
53
67
#[ test]
54
68
fn buffer ( ) {
55
69
let s = Server :: new ( ) ;
56
- s. receive (
70
+ s. receive ( & format ! (
57
71
"\
58
72
POST / HTTP/1.1\r \n \
59
73
Host: 127.0.0.1:$PORT\r \n \
60
74
Accept: */*\r \n \
61
- Content-Length: 181 \r \n \
75
+ Content-Length: {} \r \n \
62
76
Content-Type: multipart/form-data; boundary=--[..]\r \n \
63
77
\r \n \
64
78
--[..]\r \n \
@@ -67,7 +81,8 @@ fn buffer() {
67
81
\r \n \
68
82
1234\r \n \
69
83
--[..]\r \n ",
70
- ) ;
84
+ multipart_boundary_size( ) + 45
85
+ ) ) ;
71
86
s. send ( "HTTP/1.1 200 OK\r \n \r \n " ) ;
72
87
73
88
let mut handle = handle ( ) ;
@@ -82,6 +97,7 @@ fn buffer() {
82
97
t ! ( handle. perform( ) ) ;
83
98
}
84
99
100
+ #[ cfg( feature = "static-curl" ) ]
85
101
#[ test]
86
102
fn file ( ) {
87
103
let s = Server :: new ( ) ;
@@ -102,7 +118,7 @@ fn file() {
102
118
{}\
103
119
\r \n \
104
120
--[..]\r \n ",
105
- 199 + formdata. len( ) ,
121
+ multipart_boundary_size ( ) + 63 + formdata. len( ) ,
106
122
formdata
107
123
)
108
124
. as_str ( ) ,
0 commit comments