diff options
author | Brad King <brad.king@kitware.com> | 2016-09-19 13:36:34 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2016-09-19 13:36:34 (GMT) |
commit | 5c87b92b1b7888ee032e3c2a75f35f1f94f4dfa5 (patch) | |
tree | ab19ef186570cb3637eab19d19bef17207a1b748 /Tests/Server/server-test.py | |
parent | 419ad0510193eb2b2e227095a4dd167cd9b3df80 (diff) | |
parent | 7263667c24cecf4bb155fc0cbf687dee8b57f5f7 (diff) | |
download | CMake-5c87b92b1b7888ee032e3c2a75f35f1f94f4dfa5.zip CMake-5c87b92b1b7888ee032e3c2a75f35f1f94f4dfa5.tar.gz CMake-5c87b92b1b7888ee032e3c2a75f35f1f94f4dfa5.tar.bz2 |
Merge topic 'cmake-server-basic'
7263667c Help: Add notes for topic 'cmake-server-basic'
5adde4e7 cmake-server: Add documentation
b63c1f6c cmake-server: Add unit test
d341d077 cmake-server: Implement ServerProtocol 1.0
b13d3e0d cmake-server: Bare-bones server implementation
cd049f01 cmake-server: Report server mode availablitily in Capabilities
Diffstat (limited to 'Tests/Server/server-test.py')
-rw-r--r-- | Tests/Server/server-test.py | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/Tests/Server/server-test.py b/Tests/Server/server-test.py new file mode 100644 index 0000000..e0a3b3b --- /dev/null +++ b/Tests/Server/server-test.py @@ -0,0 +1,82 @@ +import sys, cmakelib, json + +debug = True + +cmakeCommand = sys.argv[1] +testFile = sys.argv[2] +sourceDir = sys.argv[3] +buildDir = sys.argv[4] + +print("SourceDir: ", sourceDir, " -- BuildDir: ", buildDir) + +proc = cmakelib.initProc(cmakeCommand) + +with open(testFile) as f: + testText = f.read() + testText = testText.replace('%BUILDDIR%', buildDir) + testText = testText.replace('%SOURCEDIR%', sourceDir) + testData = json.loads(testText) + +buildDir = sys.argv[3] +sourceDir = sys.argv[4] + +for obj in testData: + if 'sendRaw' in obj: + data = obj['sendRaw'] + if debug: print("Sending raw:", data) + cmakelib.writeRawData(proc, data) + elif 'send' in obj: + data = obj['send'] + if debug: print("Sending:", json.dumps(data)) + cmakelib.writePayload(proc, data) + elif 'recv' in obj: + data = obj['recv'] + if debug: print("Waiting for:", json.dumps(data)) + cmakelib.waitForMessage(proc, data) + elif 'reply' in obj: + data = obj['reply'] + if debug: print("Waiting for reply:", json.dumps(data)) + originalType = "" + cookie = "" + if 'cookie' in data: cookie = data['cookie'] + if 'type' in data: originalType = data['type'] + cmakelib.waitForReply(proc, originalType, cookie) + elif 'error' in obj: + data = obj['error'] + if debug: print("Waiting for error:", json.dumps(data)) + originalType = "" + cookie = "" + message = "" + if 'cookie' in data: cookie = data['cookie'] + if 'type' in data: originalType = data['type'] + if 'message' in data: message = data['message'] + cmakelib.waitForError(proc, originalType, cookie, message) + elif 'progress' in obj: + data = obj['progress'] + if debug: print("Waiting for progress:", json.dumps(data)) + originalType = '' + cookie = "" + current = 0 + message = "" + if 'cookie' in data: cookie = data['cookie'] + if 'type' in data: originalType = data['type'] + if 'current' in data: current = data['current'] + if 'message' in data: message = data['message'] + cmakelib.waitForProgress(proc, originalType, cookie, current, message) + elif 'handshake' in obj: + data = obj['handshake'] + if debug: print("Doing handshake:", json.dumps(data)) + major = -1 + minor = -1 + if 'major' in data: major = data['major'] + if 'minor' in data: minor = data['minor'] + cmakelib.handshake(proc, major, minor) + elif 'message' in obj: + print("MESSAGE:", obj["message"]) + else: + print("Unknown command:", json.dumps(obj)) + sys.exit(2) + + print("Completed") + +sys.exit(0) |