Files
Ben Langmuir 41cf3a3764 [test] Put shared test projects INPUTS into bundle resources
This avoids depending on the absolute path to the INPUTS and allows
looking it up at run time even if the tests have moved.
2020-10-01 15:19:21 -07:00

101 lines
3.1 KiB
Python
Executable File

#!/usr/bin/env python
import json
import sys
while True:
line = sys.stdin.readline()
if len(line) == 0:
break
assert line.startswith('Content-Length:')
length = int(line[len('Content-Length:'):])
sys.stdin.readline()
message = json.loads(sys.stdin.read(length))
response = None
if message["method"] == "build/initialize":
response = {
"jsonrpc": "2.0",
"id": message["id"],
"result": {
"displayName": "test server",
"version": "0.1",
"bspVersion": "2.0",
"rootUri": "blah",
"capabilities": {"languageIds": ["a", "b"]},
"data": {
"indexStorePath": "some/index/store/path"
}
}
}
elif message["method"] == "build/initialized":
continue
elif message["method"] == "build/shutdown":
response = {
"jsonrpc": "2.0",
"id": message["id"],
"result": None
}
elif message["method"] == "build/exit":
break
elif message["method"] == "buildTarget/sources":
response = {
"jsonrpc": "2.0",
"id": message["id"],
"result": {
"items": [
{
"target": {"uri": "build://target/a"},
"sources": [
{
"uri": "file:///path/to/a/file",
"kind": 1,
"generated": False
},
{
"uri": "file:///path/to/a/folder/",
"kind": 2,
"generated": False
}
]
},
{
"target": {"uri": "build://target/b"},
"sources": [
{
"uri": "file:///path/to/b/file",
"kind": 1,
"generated": False
},
{
"uri": "file:///path/to/b/folder/",
"kind": 2,
"generated": False
}
]
}
]
}
}
# ignore other notifications
elif "id" in message:
response = {
"jsonrpc": "2.0",
"id": message["id"],
"error": {
"code": 123,
"message": "unhandled method {}".format(message["method"]),
}
}
if response:
responseStr = json.dumps(response)
try:
sys.stdout.write("Content-Length: {}\r\n\r\n{}".format(len(responseStr), responseStr))
sys.stdout.flush()
except IOError:
# stdout closed, time to quit
break