diff options
author | Oliver Reiche <oliver.reiche@huawei.com> | 2022-12-12 11:47:52 +0100 |
---|---|---|
committer | Oliver Reiche <oliver.reiche@huawei.com> | 2022-12-12 11:47:52 +0100 |
commit | 6e10ee13df0b83511d7fe94bb755ac53f993c0ec (patch) | |
tree | 64615ddb751a207ae8da42a620f085795cf1c035 /rules/CC/test/test_runner.py | |
parent | 247e09b1ba01deb5649c6a73a7f272e1f72178fe (diff) | |
parent | d44be66f2a916168e0f5a7055e49f12c252b2cd2 (diff) | |
download | rules-cc-6e10ee13df0b83511d7fe94bb755ac53f993c0ec.tar.gz |
Add 'rules/' from commit 'd44be66f2a916168e0f5a7055e49f12c252b2cd2'
git-subtree-dir: rules
git-subtree-mainline: 247e09b1ba01deb5649c6a73a7f272e1f72178fe
git-subtree-split: d44be66f2a916168e0f5a7055e49f12c252b2cd2
Diffstat (limited to 'rules/CC/test/test_runner.py')
-rwxr-xr-x | rules/CC/test/test_runner.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/rules/CC/test/test_runner.py b/rules/CC/test/test_runner.py new file mode 100755 index 0000000..0647621 --- /dev/null +++ b/rules/CC/test/test_runner.py @@ -0,0 +1,69 @@ +#!/usr/bin/env python3 +# Copyright 2022 Huawei Cloud Computing Technology Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import json +import os +import subprocess +import time + +time_start = time.time() +time_stop = 0 +result = "UNKNOWN" +stderr = "" +stdout = "" + + +def dump_results(): + with open("result", "w") as f: + f.write("%s\n" % (result, )) + with open("time-start", "w") as f: + f.write("%d\n" % (time_start, )) + with open("time-stop", "w") as f: + f.write("%d\n" % (time_stop, )) + with open("stdout", "w") as f: + f.write("%s\n" % (stdout, )) + with open("stderr", "w") as f: + f.write("%s\n" % (stderr, )) + + +dump_results() + +TEMP_DIR = os.path.realpath("scratch") +os.makedirs(TEMP_DIR, exist_ok=True) + +WORK_DIR = os.path.realpath("work") +os.makedirs(WORK_DIR, exist_ok=True) + +ENV = dict(os.environ, TEST_TMPDIR=TEMP_DIR) + +with open('test-launcher.json') as f: + test_launcher = json.load(f) + +with open('test-args.json') as f: + test_args = json.load(f) + +ret = subprocess.run(test_launcher + ["../test"] + test_args, + cwd=WORK_DIR, + env=ENV, + capture_output=True) + +time_stop = time.time() +result = "PASS" if ret.returncode == 0 else "FAIL" +stdout = ret.stdout.decode("utf-8") +stderr = ret.stderr.decode("utf-8") + +dump_results() + +if result != "PASS": exit(1) |