[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [clazy/1.4] /: Make test_build_on_distros.sh configurable via a json file
From:       Sergio Martins <null () kde ! org>
Date:       2018-09-22 14:09:42
Message-ID: E1g3ibO-0000bX-4z () code ! kde ! org
[Download RAW message or body]

Git commit 446988de8e9053ec241ec86fb567c469cecaab04 by Sergio Martins.
Committed on 22/09/2018 at 14:09.
Pushed by smartins into branch '1.4'.

Make test_build_on_distros.sh configurable via a json file

By rewriting it in python.

"iamsergio/clazy-" is not hardcoded in the script anymore. It can
be replaced in the json file.

D  +0    -21   dev-scripts/test_build_on_distros.sh
A  +16   -0    tests/docker/conf.json
A  +61   -0    tests/docker/test_docker.py

https://commits.kde.org/clazy/446988de8e9053ec241ec86fb567c469cecaab04

diff --git a/dev-scripts/test_build_on_distros.sh b/dev-scripts/test_build_on_distros.sh
deleted file mode 100755
index 6d7424d..0000000
--- a/dev-scripts/test_build_on_distros.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-BRANCH=$1
-J_FLAG=$2
-BUILD_SCRIPT=/usr/bin/build-clazy.sh
-
-if [ -z "$1" ]
-then
-    BRANCH="master"
-fi
-
-function run_test
-{
-    echo "Testing $1..."
-    docker run -i -t iamsergio/clazy-$1 sh $BUILD_SCRIPT $BRANCH $J_FLAG &> $1.log
-    echo $?
-}
-
-run_test ubuntu-17.04
-run_test ubuntu-16.04
-run_test opensuse-tumbleweed
-run_test archlinux
-run_test fedora-25
diff --git a/tests/docker/conf.json b/tests/docker/conf.json
new file mode 100644
index 0000000..de9b2ed
--- /dev/null
+++ b/tests/docker/conf.json
@@ -0,0 +1,16 @@
+{
+    "tests" : [
+        {
+            "name" : "iamsergio/clazy-ubuntu-17.04"
+        },
+        {
+            "name" : "iamsergio/clazy-ubuntu-16.04"
+        },
+        {
+            "name" : "iamsergio/clazy-opensuse-tumbleweed"
+        },
+        {
+            "name" : "iamsergio/clazy-archlinux"
+        }
+    ]
+}
diff --git a/tests/docker/test_docker.py b/tests/docker/test_docker.py
new file mode 100755
index 0000000..00019a0
--- /dev/null
+++ b/tests/docker/test_docker.py
@@ -0,0 +1,61 @@
+#!/usr/bin/env python2
+
+import sys, os, json
+
+JSON_CONFIG_FILENAME = os.path.dirname(sys.argv[0]) + '/conf.json'
+MAKEFLAGS = "-j12"
+BRANCH = 'master'
+BUILD_SCRIPT = '/usr/bin/build-clazy.sh'
+
+class DockerTest:
+    def __init__(self, name):
+        self.name = name
+
+
+def read_json_config():
+    dockerTests = []
+
+    if not os.path.exists(JSON_CONFIG_FILENAME):
+        print "File doesn't exist %s" % (JSON_CONFIG_FILENAME)
+        return []
+
+    f = open(JSON_CONFIG_FILENAME, 'r')
+    contents = f.read()
+    f.close()
+    decoded = json.loads(contents)
+    if 'tests' in decoded:
+        tests = decoded['tests']
+        for test in tests:
+            if 'name' in test:
+                dockerTest = DockerTest(test['name'])
+                dockerTests.append(dockerTest)
+    return dockerTests
+
+
+
+def run_test(dockerTest):
+    cmd = 'docker run -i -t %s sh %s %s %s' % (dockerTest.name, BUILD_SCRIPT, BRANCH, MAKEFLAGS)
+    print cmd
+    return os.system(cmd) == 0
+
+
+dockerTests = read_json_config()
+
+if len(sys.argv) > 1:
+    BRANCH = sys.argv[1]
+
+
+results = {}
+success = True
+for test in dockerTests:
+    results[test.name] = run_test(test)
+    success = success and results[test.name]
+
+if success:
+    print "Success!"
+else:
+    for testname in results.keys():
+        if not results[testname]:
+            print "Test %s failed!" % testname
+
+sys.exit(0 if success else 1)
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic