Tests: Added rootfs tests.
This commit is contained in:
@@ -19,26 +19,36 @@ class TestApplicationGo(TestApplicationProto):
|
||||
|
||||
return unit if not complete_check else unit.complete()
|
||||
|
||||
def prepare_env(self, script, name):
|
||||
def prepare_env(self, script, name, static=False):
|
||||
if not os.path.exists(self.testdir + '/go'):
|
||||
os.mkdir(self.testdir + '/go')
|
||||
|
||||
env = os.environ.copy()
|
||||
env['GOPATH'] = self.pardir + '/build/go'
|
||||
|
||||
try:
|
||||
process = subprocess.Popen(
|
||||
[
|
||||
'go',
|
||||
'build',
|
||||
'-o',
|
||||
self.testdir + '/go/' + name,
|
||||
self.current_dir + '/go/' + script + '/' + name + '.go',
|
||||
],
|
||||
env=env,
|
||||
stderr=subprocess.STDOUT,
|
||||
)
|
||||
if static:
|
||||
args = [
|
||||
'go',
|
||||
'build',
|
||||
'-tags',
|
||||
'netgo',
|
||||
'-ldflags',
|
||||
'-extldflags "-static"',
|
||||
'-o',
|
||||
self.testdir + '/go/' + name,
|
||||
self.current_dir + '/go/' + script + '/' + name + '.go',
|
||||
]
|
||||
else:
|
||||
args = [
|
||||
'go',
|
||||
'build',
|
||||
'-o',
|
||||
self.testdir + '/go/' + name,
|
||||
self.current_dir + '/go/' + script + '/' + name + '.go',
|
||||
]
|
||||
|
||||
try:
|
||||
process = subprocess.Popen(args, env=env)
|
||||
process.communicate()
|
||||
|
||||
except:
|
||||
@@ -47,21 +57,28 @@ class TestApplicationGo(TestApplicationProto):
|
||||
return process
|
||||
|
||||
def load(self, script, name='app', **kwargs):
|
||||
self.prepare_env(script, name)
|
||||
static_build = False
|
||||
|
||||
self._load_conf(
|
||||
{
|
||||
"listeners": {"*:7080": {"pass": "applications/" + script}},
|
||||
"applications": {
|
||||
script: {
|
||||
"type": "external",
|
||||
"processes": {"spare": 0},
|
||||
"working_directory": self.current_dir
|
||||
+ "/go/"
|
||||
+ script,
|
||||
"executable": self.testdir + "/go/" + name,
|
||||
}
|
||||
wdir = self.current_dir + "/go/" + script
|
||||
executable = self.testdir + "/go/" + name
|
||||
|
||||
if 'isolation' in kwargs and 'rootfs' in kwargs['isolation']:
|
||||
wdir = "/go/"
|
||||
executable = "/go/" + name
|
||||
static_build = True
|
||||
|
||||
self.prepare_env(script, name, static=static_build)
|
||||
|
||||
conf = {
|
||||
"listeners": {"*:7080": {"pass": "applications/" + script}},
|
||||
"applications": {
|
||||
script: {
|
||||
"type": "external",
|
||||
"processes": {"spare": 0},
|
||||
"working_directory": wdir,
|
||||
"executable": executable,
|
||||
},
|
||||
},
|
||||
**kwargs
|
||||
)
|
||||
}
|
||||
|
||||
self._load_conf(conf, **kwargs)
|
||||
|
||||
Reference in New Issue
Block a user