|
|
@@ -31,6 +31,13 @@ func TestSocketConfig(t *testing.T) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // test "tcpFastOpen": true, queue length 256 is expected. other parameters are tested here too
|
|
|
+ expectedOutput := &internet.SocketConfig{
|
|
|
+ Mark: 1,
|
|
|
+ Tfo: 256,
|
|
|
+ DomainStrategy: internet.DomainStrategy_USE_IP,
|
|
|
+ DialerProxy: "tag",
|
|
|
+ }
|
|
|
runMultiTestCase(t, []TestCase{
|
|
|
{
|
|
|
Input: `{
|
|
|
@@ -40,38 +47,118 @@ func TestSocketConfig(t *testing.T) {
|
|
|
"dialerProxy": "tag"
|
|
|
}`,
|
|
|
Parser: createParser(),
|
|
|
- Output: &internet.SocketConfig{
|
|
|
- Mark: 1,
|
|
|
- Tfo: 256,
|
|
|
- DomainStrategy: internet.DomainStrategy_USE_IP,
|
|
|
- DialerProxy: "tag",
|
|
|
- },
|
|
|
+ Output: expectedOutput,
|
|
|
},
|
|
|
})
|
|
|
+ if expectedOutput.ParseTFOValue() != 256 {
|
|
|
+ t.Fatalf("unexpected parsed TFO value, which should be 256")
|
|
|
+ }
|
|
|
+
|
|
|
+ // test "tcpFastOpen": false, disabled TFO is expected
|
|
|
+ expectedOutput = &internet.SocketConfig{
|
|
|
+ Mark: 0,
|
|
|
+ Tfo: -1,
|
|
|
+ }
|
|
|
runMultiTestCase(t, []TestCase{
|
|
|
{
|
|
|
Input: `{
|
|
|
"tcpFastOpen": false
|
|
|
}`,
|
|
|
Parser: createParser(),
|
|
|
- Output: &internet.SocketConfig{
|
|
|
- Mark: 0,
|
|
|
- Tfo: 0,
|
|
|
- },
|
|
|
+ Output: expectedOutput,
|
|
|
},
|
|
|
})
|
|
|
+ if expectedOutput.ParseTFOValue() != 0 {
|
|
|
+ t.Fatalf("unexpected parsed TFO value, which should be 0")
|
|
|
+ }
|
|
|
+
|
|
|
+ // test "tcpFastOpen": 65535, queue length 65535 is expected
|
|
|
+ expectedOutput = &internet.SocketConfig{
|
|
|
+ Mark: 0,
|
|
|
+ Tfo: 65535,
|
|
|
+ }
|
|
|
runMultiTestCase(t, []TestCase{
|
|
|
{
|
|
|
Input: `{
|
|
|
"tcpFastOpen": 65535
|
|
|
}`,
|
|
|
Parser: createParser(),
|
|
|
- Output: &internet.SocketConfig{
|
|
|
- Mark: 0,
|
|
|
- Tfo: 65535,
|
|
|
- },
|
|
|
+ Output: expectedOutput,
|
|
|
},
|
|
|
})
|
|
|
+ if expectedOutput.ParseTFOValue() != 65535 {
|
|
|
+ t.Fatalf("unexpected parsed TFO value, which should be 65535")
|
|
|
+ }
|
|
|
+
|
|
|
+ // test "tcpFastOpen": -65535, disable TFO is expected
|
|
|
+ expectedOutput = &internet.SocketConfig{
|
|
|
+ Mark: 0,
|
|
|
+ Tfo: -65535,
|
|
|
+ }
|
|
|
+ runMultiTestCase(t, []TestCase{
|
|
|
+ {
|
|
|
+ Input: `{
|
|
|
+ "tcpFastOpen": -65535
|
|
|
+ }`,
|
|
|
+ Parser: createParser(),
|
|
|
+ Output: expectedOutput,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ if expectedOutput.ParseTFOValue() != 0 {
|
|
|
+ t.Fatalf("unexpected parsed TFO value, which should be 0")
|
|
|
+ }
|
|
|
+
|
|
|
+ // test "tcpFastOpen": 0, no operation is expected
|
|
|
+ expectedOutput = &internet.SocketConfig{
|
|
|
+ Mark: 0,
|
|
|
+ Tfo: 0,
|
|
|
+ }
|
|
|
+ runMultiTestCase(t, []TestCase{
|
|
|
+ {
|
|
|
+ Input: `{
|
|
|
+ "tcpFastOpen": 0
|
|
|
+ }`,
|
|
|
+ Parser: createParser(),
|
|
|
+ Output: expectedOutput,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ if expectedOutput.ParseTFOValue() != -1 {
|
|
|
+ t.Fatalf("unexpected parsed TFO value, which should be -1")
|
|
|
+ }
|
|
|
+
|
|
|
+ // test omit "tcpFastOpen", no operation is expected
|
|
|
+ expectedOutput = &internet.SocketConfig{
|
|
|
+ Mark: 0,
|
|
|
+ Tfo: 0,
|
|
|
+ }
|
|
|
+ runMultiTestCase(t, []TestCase{
|
|
|
+ {
|
|
|
+ Input: `{}`,
|
|
|
+ Parser: createParser(),
|
|
|
+ Output: expectedOutput,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ if expectedOutput.ParseTFOValue() != -1 {
|
|
|
+ t.Fatalf("unexpected parsed TFO value, which should be -1")
|
|
|
+ }
|
|
|
+
|
|
|
+ // test "tcpFastOpen": null, no operation is expected
|
|
|
+ expectedOutput = &internet.SocketConfig{
|
|
|
+ Mark: 0,
|
|
|
+ Tfo: 0,
|
|
|
+ }
|
|
|
+ runMultiTestCase(t, []TestCase{
|
|
|
+ {
|
|
|
+ Input: `{
|
|
|
+ "tcpFastOpen": null
|
|
|
+ }`,
|
|
|
+ Parser: createParser(),
|
|
|
+ Output: expectedOutput,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ if expectedOutput.ParseTFOValue() != -1 {
|
|
|
+ t.Fatalf("unexpected parsed TFO value, which should be -1")
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
func TestTransportConfig(t *testing.T) {
|