docker_test.py 2.64 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

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

kladko's avatar
kladko committed
55 56 57 58
print(dockerRun.stdout)
print(dockerRun.stderr)
assert dockerRun.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()