mirror of https://github.com/XTLS/Xray-core
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.0 KiB
63 lines
1.0 KiB
package serial_test |
|
|
|
import ( |
|
"bytes" |
|
"strings" |
|
"testing" |
|
|
|
"github.com/xtls/xray-core/infra/conf/serial" |
|
) |
|
|
|
func TestLoaderError(t *testing.T) { |
|
testCases := []struct { |
|
Input string |
|
Output string |
|
}{ |
|
{ |
|
Input: `{ |
|
"log": { |
|
// abcd |
|
0, |
|
"loglevel": "info" |
|
} |
|
}`, |
|
Output: "line 4 char 6", |
|
}, |
|
{ |
|
Input: `{ |
|
"log": { |
|
// abcd |
|
"loglevel": "info", |
|
} |
|
}`, |
|
Output: "line 5 char 5", |
|
}, |
|
{ |
|
Input: `{ |
|
"port": 1, |
|
"inbounds": [{ |
|
"protocol": "test" |
|
}] |
|
}`, |
|
Output: "parse json config", |
|
}, |
|
{ |
|
Input: `{ |
|
"inbounds": [{ |
|
"port": 1, |
|
"listen": 0, |
|
"protocol": "test" |
|
}] |
|
}`, |
|
Output: "line 1 char 1", |
|
}, |
|
} |
|
for _, testCase := range testCases { |
|
reader := bytes.NewReader([]byte(testCase.Input)) |
|
_, err := serial.LoadJSONConfig(reader) |
|
errString := err.Error() |
|
if !strings.Contains(errString, testCase.Output) { |
|
t.Error("unexpected output from json: ", testCase.Input, ". expected ", testCase.Output, ", but actually ", errString) |
|
} |
|
} |
|
}
|
|
|