xref: /unit/test/unit/check/go.py (revision 1621)
1*1621Szelenkov@nginx.comimport os
2*1621Szelenkov@nginx.comimport subprocess
3*1621Szelenkov@nginx.com
4*1621Szelenkov@nginx.com
5*1621Szelenkov@nginx.comdef check_go(current_dir, temp_dir, test_dir):
6*1621Szelenkov@nginx.com    if not os.path.exists(temp_dir + '/go'):
7*1621Szelenkov@nginx.com        os.mkdir(temp_dir + '/go')
8*1621Szelenkov@nginx.com
9*1621Szelenkov@nginx.com    env = os.environ.copy()
10*1621Szelenkov@nginx.com    env['GOPATH'] = current_dir + '/build/go'
11*1621Szelenkov@nginx.com
12*1621Szelenkov@nginx.com    try:
13*1621Szelenkov@nginx.com        process = subprocess.Popen(
14*1621Szelenkov@nginx.com            [
15*1621Szelenkov@nginx.com                'go',
16*1621Szelenkov@nginx.com                'build',
17*1621Szelenkov@nginx.com                '-o',
18*1621Szelenkov@nginx.com                temp_dir + '/go/app',
19*1621Szelenkov@nginx.com                test_dir + '/go/empty/app.go',
20*1621Szelenkov@nginx.com            ],
21*1621Szelenkov@nginx.com            env=env,
22*1621Szelenkov@nginx.com        )
23*1621Szelenkov@nginx.com        process.communicate()
24*1621Szelenkov@nginx.com
25*1621Szelenkov@nginx.com        if process.returncode == 0:
26*1621Szelenkov@nginx.com            return True
27*1621Szelenkov@nginx.com
28*1621Szelenkov@nginx.com    except:
29*1621Szelenkov@nginx.com        return None
30