aboutsummaryrefslogtreecommitdiff
path: root/tests/test_prepare_build_config.py
blob: ff504f743ded3bdb426caa588aab6866a7b9be42 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
import sys
import os
import base64
import tempfile
sys.path.append(os.path.dirname(__file__) + "/../node")
import prepare_build_config


def test_validate_config():
    os.environ["JOB_NAME"] = "user_job"
    config = {}
    prepare_build_config.validate_config(config, "")

    os.environ["JOB_NAME"] = "linaro-android-private_job"
    config = {}
    try:
        prepare_build_config.validate_config(config, "")
        assert False, "Mismatch wasn't caught"
    except prepare_build_config.BuildConfigMismatchException:
        pass

    os.environ["JOB_NAME"] = "linaro-android-private_job"
    config = {"BUILD_TYPE": "build-android-restricted"}
    try:
        prepare_build_config.validate_config(config, "")
        assert False, "Mismatch wasn't caught"
    except prepare_build_config.BuildConfigMismatchException:
        pass

    os.environ["JOB_NAME"] = "linaro-android-private_job"
    config = {"BUILD_TYPE": "build-android-restricted"}
    prepare_build_config.validate_config(config, prepare_build_config.SLAVE_TYPE_RESTRICTED)

    os.environ["JOB_NAME"] = "linaro-android-private_job"
    config = {}
    try:
        prepare_build_config.validate_config(config, prepare_build_config.SLAVE_TYPE_RESTRICTED)
        assert False, "Mismatch wasn't caught"
    except prepare_build_config.BuildConfigMismatchException:
        pass

    del os.environ["JOB_NAME"]

def test_convert_config_to_shell():
    config_base64 = """\
TUFOSUZFU1RfUkVQTz1naXQ6Ly9hbmRyb2lkLmdpdC5saW5hcm8ub3JnL3BsYXRmb3JtL21hbmlm
ZXN0LmdpdApNQU5JRkVTVF9CUkFOQ0g9bGluYXJvX2FuZHJvaWRfMi4zLjUKTUFOSUZFU1RfRklM
RU5BTUU9c3RhZ2luZy1vbWFwNDQ2MC54bWwKVEFSR0VUX1BST0RVQ1Q9cGFuZGFib2FyZApUQVJH
RVRfU0lNVUxBVE9SPWZhbHNlClRPT0xDSEFJTl9VUkw9aHR0cHM6Ly9hbmRyb2lkLWJ1aWxkLmxp
bmFyby5vcmcvamVua2lucy9qb2IvbGluYXJvLWFuZHJvaWRfdG9vbGNoYWluLTQuNi1ienIvbGFz
dFN1Y2Nlc3NmdWxCdWlsZC9hcnRpZmFjdC9idWlsZC9vdXQvYW5kcm9pZC10b29sY2hhaW4tZWFi
aS00LjYtZGFpbHktbGludXgteDg2LnRhci5iejIKTEFWQV9TVUJNSVQ9MQ==
"""
    config_dict = {
        'TARGET_SIMULATOR': 'false',
        'TARGET_PRODUCT': 'pandaboard',
        'TOOLCHAIN_URL': 'https://android-build.linaro.org/jenkins/job/linaro-android_toolchain-4.6-bzr/lastSuccessfulBuild/artifact/build/out/android-toolchain-eabi-4.6-daily-linux-x86.tar.bz2',
        'MANIFEST_BRANCH': 'linaro_android_2.3.5',
        'MANIFEST_FILENAME': 'staging-omap4460.xml', 'LAVA_SUBMIT': '1',
        'MANIFEST_REPO': 'git://android.git.linaro.org/platform/manifest.git'
    }

    config_text = base64.b64decode(config_base64)
    out_fd, out_filename = tempfile.mkstemp()
    os.close(out_fd)
    dict = prepare_build_config.convert_config_to_shell(config_text, out_filename)
    assert dict == config_dict

def test_main():
    config_base64 = """\
TUFOSUZFU1RfUkVQTz1naXQ6Ly9hbmRyb2lkLmdpdC5saW5hcm8ub3JnL3BsYXRmb3JtL21hbmlm
ZXN0LmdpdApNQU5JRkVTVF9CUkFOQ0g9bGluYXJvX2FuZHJvaWRfMi4zLjUKTUFOSUZFU1RfRklM
RU5BTUU9c3RhZ2luZy1vbWFwNDQ2MC54bWwKVEFSR0VUX1BST0RVQ1Q9cGFuZGFib2FyZApUQVJH
RVRfU0lNVUxBVE9SPWZhbHNlClRPT0xDSEFJTl9VUkw9aHR0cHM6Ly9hbmRyb2lkLWJ1aWxkLmxp
bmFyby5vcmcvamVua2lucy9qb2IvbGluYXJvLWFuZHJvaWRfdG9vbGNoYWluLTQuNi1ienIvbGFz
dFN1Y2Nlc3NmdWxCdWlsZC9hcnRpZmFjdC9idWlsZC9vdXQvYW5kcm9pZC10b29sY2hhaW4tZWFi
aS00LjYtZGFpbHktbGludXgteDg2LnRhci5iejIKTEFWQV9TVUJNSVQ9MQ==
"""
    config_dict = {
        'TARGET_SIMULATOR': 'false',
        'TARGET_PRODUCT': 'pandaboard',
        'TOOLCHAIN_URL': 'https://android-build.linaro.org/jenkins/job/linaro-android_toolchain-4.6-bzr/lastSuccessfulBuild/artifact/build/out/android-toolchain-eabi-4.6-daily-linux-x86.tar.bz2',
        'MANIFEST_BRANCH': 'linaro_android_2.3.5',
        'MANIFEST_FILENAME': 'staging-omap4460.xml', 'LAVA_SUBMIT': '1',
        'MANIFEST_REPO': 'git://android.git.linaro.org/platform/manifest.git'
    }

    out_fd, out_filename = tempfile.mkstemp()
    prepare_build_config.BUILD_CONFIG_FILE = out_filename
    os.environ["JOB_NAME"] = "foo_bar"
    prepare_build_config.main(config_base64, True)
    dict = {}
    for l in open(out_filename):
        var, val = l.rstrip().split("=", 1)
        dict[var] = val
    assert dict == config_dict