docker_test.py 2.67 KB
Newer Older
kladko's avatar
kladko committed
1 2
#!/usr/bin/env python

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
# Copyright (C) 2019-Present SKALE Labs
#
# This file is part of sgxwallet.
#
# sgxwallet is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# sgxwallet is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with sgxwallet.  If not, see <https://www.gnu.org/licenses/>.
kladko's avatar
kladko committed
19 20 21 22 23 24
#
#    @file  docker_test.py
#    @author Stan Kladko
#    @date 2020
#

kladko's avatar
kladko committed
25
import sys, os, subprocess, socket, time
kladko's avatar
kladko committed
26 27 28 29 30





kladko's avatar
kladko committed
31

kladko's avatar
kladko committed
32
os.chdir("..")
kladko's avatar
kladko committed
33
topDir = os.getcwd() + "/sgxwallet"
kladko's avatar
kladko committed
34 35 36 37
print("Starting build push")
print("Top directory is:" + topDir)
SCRIPTS_DIR = topDir + "/scripts"

kladko's avatar
kladko committed
38
BRANCH = sys.argv[1];
kladko's avatar
kladko committed
39 40 41
DOCKER_FILE_NAME = sys.argv[2];
IMAGE_NAME = sys.argv[3];

kladko's avatar
kladko committed
42 43 44 45 46
if (BRANCH == "develop") :
    TAG_POSTFIX = "latest";
else :
    TAG_POSTFIX = "latest_commit"

kladko's avatar
kladko committed
47 48
FULL_IMAGE_NAME = "skalenetwork/" + IMAGE_NAME +":" + TAG_POSTFIX;

kladko's avatar
kladko committed
49
print("Running tests for branch " + BRANCH);
kladko's avatar
kladko committed
50 51 52

assert subprocess.call(["docker", "image", "inspect", FULL_IMAGE_NAME]) == 0;

kladko's avatar
kladko committed
53 54
completedProcess = subprocess.run(["docker", "run", "-v", topDir + "/sgx_data:/usr/src/sdk/sgx_data","-t",
                        "--name", "sgxwallet", "--network=host", "skalenetwork/" + IMAGE_NAME +":" + TAG_POSTFIX, "-t"])
kladko's avatar
kladko committed
55

kladko's avatar
kladko committed
56 57 58
print(completedProcess.stdout)
print(completedProcess.stderr)
assert completedProcess.returncode == 0;
kladko's avatar
kladko committed
59 60


kladko's avatar
kladko committed
61
assert subprocess.call(["docker", "rm", "sgxwallet"]) == 0
kladko's avatar
kladko committed
62
assert subprocess.call(["docker", "run", "-v", topDir + "/sgx_data:/usr/src/sdk/sgx_data","-d",
kladko's avatar
kladko committed
63
                        "--name", "sgxwallet",
kladko's avatar
kladko committed
64
                    "--network=host", "skalenetwork/" + IMAGE_NAME +":" + TAG_POSTFIX, "-y"]) == 0
65

svetaro's avatar
svetaro committed
66 67
time.sleep(5);

kladko's avatar
kladko committed
68
assert os.path.isdir(topDir + '/sgx_data/sgxwallet.db')
kladko's avatar
kladko committed
69 70 71 72 73 74 75
assert os.path.isdir(topDir + '/sgx_data/cert_data');
assert os.path.isdir(topDir + '/sgx_data/CSR_DB');
assert os.path.isdir(topDir + '/sgx_data/CSR_STATUS_DB');
assert os.path.isfile(topDir + '/sgx_data/cert_data/SGXServerCert.crt')
assert os.path.isfile(topDir + '/sgx_data/cert_data/SGXServerCert.key')
assert os.path.isfile(topDir + '/sgx_data/cert_data/rootCA.pem')
assert os.path.isfile(topDir + '/sgx_data/cert_data/rootCA.key')
kladko's avatar
kladko committed
76

kladko's avatar
kladko committed
77 78 79 80
s1 = socket.socket()
s2 = socket.socket()
s3 = socket.socket()
address = '127.0.0.1'
kladko's avatar
kladko committed
81 82 83
s1.connect((address, 1026))
s2.connect((address, 1027))
s3.connect((address, 1028))
kladko's avatar
kladko committed
84 85 86 87

s1.close()
s2.close()
s3.close()