docker_test.py 2.71 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
print("Starting containerb test")
kladko's avatar
kladko committed
35 36 37
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
DOCKER_FILE_NAME = sys.argv[2];
IMAGE_NAME = sys.argv[3];
41
COMMIT_HASH = sys.argv[4]
kladko's avatar
kladko committed
42

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

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

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

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

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

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

kladko's avatar
kladko committed
61 62


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

svetaro's avatar
svetaro committed
68 69
time.sleep(5);

kladko's avatar
kladko committed
70
assert os.path.isdir(topDir + '/sgx_data/sgxwallet.db')
kladko's avatar
kladko committed
71 72 73 74 75 76 77
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
78

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

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